Konu: Bunu dener misiniz. Ben de mi acaba hata. VFP9 SP1'de cok yavas.
1) BufSpeedTest.prg olarak saklayin
2) Unbuffered test, bu hizli olmali. 0.5 - 0.7 saniye filan. Bilemedin 3 sn olsun/
BufSpeedTest()
3) Buffered test. Sorun burada. Daha 3 bolumun ilki bile bende 225 sn altina dusemedi. Kesmek icin ESC kullanabilirsiniz.
BufSpeedTest(.T.)
Insallah hata bendedir (sanki o zaman sevinicem:). VFP SP1 ile denedim ben.
* BufSpeedTest.prg
Lparameters tlBuffered
Close Databases all
Clear
CreateTheCursor()
Set Multilocks On
Set Escape On && if it takes very long a way to bail out
* Pass .T. if you dare and try again
If m.tlBuffered
CursorSetProp("Buffering", 5, 'test')
endif
Local ix, start
start = Seconds()
For ix = 1 To 3
*** Insert 100,000 dummy rows
InsertDummyRows(100000)
*** Do a replacement on this inserted set
UpdateRows((m.ix-1)*100000+1, m.ix)
EndFor
? 'Total time', Seconds()-m.start, 'You should be doing unbuffered if got to here'
Procedure UpdateRows(tnStartRow, tnMultiplier)
Go m.tnStartRow
Local start
start = Seconds()
* Replace Rest F01 With F01 + m.tnMultiplier * 1000000
Replace Rest F02 With Ltrim(Str(F01 + m.tnMultiplier * 1000000))
? 'Replaced', _Tally, 'Time', Seconds() - m.start
Endproc
Procedure InsertDummyRows(tnRowCount)
Local ix, Start
Start = Seconds()
For ix = 1 To m.tnRowCount
Insert Into test (F01) Values (m.ix)
Endfor
? 'Inserted dummy rows', m.tnRowCount, 'Time', Seconds()-m.start
Endproc
Procedure CreateTheCursor
Create Cursor test (;
F01 I (4,0), ;
F02 C (20,0) ;
)
Endproc
Procedure CreateTheCursor2
Create Cursor test (;
F01 I (4,0), ;
F02 C (20,0), ;
F03 C (15,0), ;
F04 C (10,0), ;
F05 C (20,0), ;
F06 L (1,0), ;
F07 L (1,0), ;
F08 L (1,0), ;
F09 C (30,0), ;
F10 T (8,0), ;
F11 C (13,0), ;
F12 C (40,0), ;
F13 C (35,0), ;
F14 C (15,0), ;
F15 C (2,0), ;
F16 C (10,0), ;
F17 I (4,0), ;
F18 I (4,0), ;
F19 I (4,0), ;
F20 I (4,0), ;
F21 I (4,0), ;
F22 I (4,0), ;
F23 I (4,0), ;
F24 I (4,0), ;
F25 I (4,0), ;
F26 I (4,0), ;
F27 T (8,0), ;
F28 C (10,0), ;
F29 C (15,0), ;
F30 L (1,0), ;
F31 T (8,0), ;
F32 C (20,0), ;
F33 D (8,0), ;
F34 I (4,0), ;
F35 C (40,0), ;
F36 C (13,0), ;
F37 C (13,0), ;
F38 C (25,0), ;
F39 C (25,0), ;
F40 C (25,0), ;
F41 C (15,0), ;
F42 C (2,0), ;
F43 C (10,0) ;
)
Endproc