*** test 1 : using class function with loTest FOR klm = 1 TO 1000000 .ReadLxTables(cFile) ENDFOR endwithThat will make it ran faster, but still slower than test 2
>**** speedtest >LOCAL loTest as ActSymbolen >cFile = "C:\Actuariaat\Input\gbmgbv.dbf" >loTest = CREATEOBJECT("ActSymbols" ) > >time1 = SECONDS() > > >*** test 1 : using class function > >FOR klm = 1 TO 1000000 > >loTest.ReadLxTables(cFile) >ENDFOR >? "using class function ",SECONDS() - time1 && 15 seconds > >SET dataSESSION TO 2 >CLOSE DATABASES ALL > > >time2 = SECONDS() > >*** test 2: without using class function >FOR klm = 1 TO 1000000 >IF !USED("Gbmgbv") THEN > USE (cFile) IN 0 > SELECT "gbmgbv" > >ELSE > SELECT "gbmgbv" >ENDIF >ENDFOR >? "without using class function" ,SECONDS() - time2 && 2 seconds > > > > >DEFINE CLASS actSymbols as Session > > >FUNCTION ReadLxTables >LPARAMETERS cFile > >IF !USED("Gbmgbv") THEN > USE (cFile) IN 0 > SELECT "gbmgbv" > >ELSE > SELECT "gbmgbv" >ENDIF > >ENDFUNC > > > >ENDDEFINE >