1

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/

Visual Fox Pro
BufSpeedTest()


3) Buffered test. Sorun burada. Daha 3 bolumun ilki bile bende 225 sn altina dusemedi. Kesmek icin ESC kullanabilirsiniz.

Visual Fox Pro
BufSpeedTest(.T.)

Insallah hata bendedir (sanki o zaman sevinicem:). VFP SP1 ile denedim ben.

Visual Fox Pro
* 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

2 Son düzenleyen, ugurlu2001 (02.03.2012 13:50:55)

Re: Bunu dener misiniz. Ben de mi acaba hata. VFP9 SP1'de cok yavas.

Üstat, ben sana sorun İşletim Sistemindedir demiştim dimi smile

Toplam 0,477 sn ye...

Benim Versiyonum VFP 9 SP2 - Sub Ver: 7423

İleti eklentileri

Cetin_Basoz_Test_20120302.png
Cetin_Basoz_Test_20120302.png 45.89 kb, 2 kez indirildi, 2012-03-02 tarihinden itibaren 

Bu iletideki eklenti/leri indirmeye yetkiniz yok.
Uğur
-------------------------------------------------------------------------------------------------------------
Hayat bir bisiklete binmek gibidir. Pedalı çevirmeye devam ettiğiniz sürece düşmezsiniz. Claude Peppeer
Kusuru söylenmeyen adam, ayıbını hüner sanır.  Türk Atasözü

3

Re: Bunu dener misiniz. Ben de mi acaba hata. VFP9 SP1'de cok yavas.

Düzeltme ;


BufSpeedTest(.T.)

ile bende de takıldı ...

Uğur
-------------------------------------------------------------------------------------------------------------
Hayat bir bisiklete binmek gibidir. Pedalı çevirmeye devam ettiğiniz sürece düşmezsiniz. Claude Peppeer
Kusuru söylenmeyen adam, ayıbını hüner sanır.  Türk Atasözü

4

Re: Bunu dener misiniz. Ben de mi acaba hata. VFP9 SP1'de cok yavas.

Ah Ugur, ilk mesaji okuyunca sevinmistim:) Simdi aslinda daha cok sevindim, SP2 dertleriyle ugrasmaktansa buna cozum bulmak daha kolay benim icin (umarim).

5

Re: Bunu dener misiniz. Ben de mi acaba hata. VFP9 SP1'de cok yavas.

Üstat, ben hiç buffering data kullanmıyorum. Mecbur kalmadıkça da dosyaları açık bırakmıyorum. Temel olarak yaptığım;

Aç; kullan; kapat ....

Ama anlamadığım; ortada öyle devasa bir data yok. Bir Buffering 5 ile bu kadar çuvallamak bana pek normal gelmedi.

Deneme olsun diye; indexleri düzgün bir örnekte ( Dün akşam sana gösterdiğim ) Sadece Buffering 5 yapıp bir deneme yaptım; İşlem süresi 2,5 kat uzadı. Ve hemen iptal etttim...

Uğur
-------------------------------------------------------------------------------------------------------------
Hayat bir bisiklete binmek gibidir. Pedalı çevirmeye devam ettiğiniz sürece düşmezsiniz. Claude Peppeer
Kusuru söylenmeyen adam, ayıbını hüner sanır.  Türk Atasözü

6

Re: Bunu dener misiniz. Ben de mi acaba hata. VFP9 SP1'de cok yavas.

unbuffered

İleti eklentileri

unbuffered.jpg
unbuffered.jpg 29.87 kb, 4 kez indirildi, 2012-03-02 tarihinden itibaren 

Bu iletideki eklenti/leri indirmeye yetkiniz yok.
http://www.soykansoft.com/images/twitter.jpghttp://www.soykansoft.com/images/wp.jpg

7

Re: Bunu dener misiniz. Ben de mi acaba hata. VFP9 SP1'de cok yavas.

buffered ve bir sure sonra kestim

İleti eklentileri

buffered.jpg
buffered.jpg 30.36 kb, dosya hiç indirilmedi. 

Bu iletideki eklenti/leri indirmeye yetkiniz yok.
http://www.soykansoft.com/images/twitter.jpghttp://www.soykansoft.com/images/wp.jpg

8

Re: Bunu dener misiniz. Ben de mi acaba hata. VFP9 SP1'de cok yavas.

Hizli yanit secenegim yoktu:(  Neden acaba. Neyse 'cevap yaz'i da denemis oluyorum:)

Foxite'da Pete Sass buffersiz 2 sn, bufferli 3 sn demis 300,000 kayit icin. Kodu yoktu. Acaba ben mi yanlis kod yaziyorum.

9

Re: Bunu dener misiniz. Ben de mi acaba hata. VFP9 SP1'de cok yavas.

cetinbasoz yazdı:

Hizli yanit secenegim yoktu:(  Neden acaba. Neyse 'cevap yaz'i da denemis oluyorum:)

Foxite'da Pete Sass buffersiz 2 sn, bufferli 3 sn demis 300,000 kayit icin. Kodu yoktu. Acaba ben mi yanlis kod yaziyorum.

hizli yanit biraz once kaldirildi smile cevap yaza aliskanlik olsun diye smile
ayrica button+text destekli olacak o kısımlar

http://www.soykansoft.com/images/twitter.jpghttp://www.soykansoft.com/images/wp.jpg

10

Re: Bunu dener misiniz. Ben de mi acaba hata. VFP9 SP1'de cok yavas.

Çetin Hocam,
ikincisinin sonucunu sabırla bekledim, her iki sonuç ta şöyle :
1. :  0,330
2. :  1825,841

win 7 64 bit
vfp9 sp2 7423

İleti eklentileri

1.jpg 79.24 kb, dosya hiç indirilmedi. 

2.jpg 79.92 kb, dosya hiç indirilmedi. 

Bu iletideki eklenti/leri indirmeye yetkiniz yok.

11

Re: Bunu dener misiniz. Ben de mi acaba hata. VFP9 SP1'de cok yavas.

Merhaba Çetin


BufSpeedTest(.F.):   4,26 sec
BufSpeedTest(.T.):  4,61 sec

Senin kodunu ama biras değiştirdim:

Visual Fox Pro
PROCEDURE CreateTheCursor

  CREATE CURSOR test (;
  F01 I (4,0), ;
  F02 C (20,0) ;
  )
  INDEX on F02 TAG f_idx
ENDPROC
Bir projenin bitmesi için 3 seçenek vardır: hızlı, ucuz, iyi. Bu seçeneklerden iki tanesini seçiniz.

12

Re: Bunu dener misiniz. Ben de mi acaba hata. VFP9 SP1'de cok yavas.

Mehmet Bey'in koduyla kütük indexlendiğinde 3,52 ile 3.77 oldu.

13 Son düzenleyen, ugurlu2001 (02.03.2012 17:08:52)

Re: Bunu dener misiniz. Ben de mi acaba hata. VFP9 SP1'de cok yavas.

Index oluşturduktan sonra;

BufSpeedTest() && Hızlı, önceki gibi

BufSpeedTest(.T.) && Çok yavaş. Sonlandırdım, Önceki gibi

Uğur
-------------------------------------------------------------------------------------------------------------
Hayat bir bisiklete binmek gibidir. Pedalı çevirmeye devam ettiğiniz sürece düşmezsiniz. Claude Peppeer
Kusuru söylenmeyen adam, ayıbını hüner sanır.  Türk Atasözü

14

Re: Bunu dener misiniz. Ben de mi acaba hata. VFP9 SP1'de cok yavas.

Mehmet K yazdı:

Merhaba Çetin


BufSpeedTest(.F.):   4,26 sec
BufSpeedTest(.T.):  4,61 sec

Senin kodunu ama biras değiştirdim:

Visual Fox Pro
PROCEDURE CreateTheCursor

  CREATE CURSOR test (;
  F01 I (4,0), ;
  F02 C (20,0) ;
  )
  INDEX on F02 TAG f_idx
ENDPROC

Indexten sonra

Set order to 0

unutmussun:) Aslinda orijinalinde index vardi, daha da yavaslattigi icin indexleri kaldiriyorum. Normalde index ihtiyacim var.

Insert sonrasi tableupdate(2,.t.,'test') ile hizlaniyor. Simdi benim bulmam gereken nasil hem insert edip hem de etmemis gibi yaparim:) Herhalde disarida bir cursorda buffersiz calisip, bir flagla filan insert edileceklere karar verip, onlari insert digerlerini update yapacagim gibi geliyor (bu arada asil calisma setim 1 milyon uzerinde, ben 10, 100 binde takildim).

15

Re: Bunu dener misiniz. Ben de mi acaba hata. VFP9 SP1'de cok yavas.

Selam,

Mehmet' in yazdığını şöyle değiştirirsek

  Create Cursor test (;
    f00 int autoinc,;
    F01 I (4,0), ;
    F02 C (20,0) ;
    )
   Index on  f00 Tag RecNumber

ilave olarak

Procedure UpdateRows(tnStartRow, tnMultiplier)

  Go m.tnStartRow
  Set Key To range m.tnStartRow ,m.tnStartRow+100000 && eklersek

sonuçlar
=bufspeedtest(.t.)  9.413

16 Son düzenleyen, foxman (02.03.2012 23:48:19)

Re: Bunu dener misiniz. Ben de mi acaba hata. VFP9 SP1'de cok yavas.

Replace kaldırılıp F01 ve F02 insert ile aynı anda update edilirse.

BufSpeedTest(.T.)

2.007 saniye.



Visual Fox Pro
* 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,ix)
  *** 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,tnMultiplier)
  Local ix, Start
  Start = Seconds()
  For ix = 1 To m.tnRowCount
    Insert Into test (F01,F02) Values (m.ix,   Ltrim(Str(m.ix + m.tnMultiplier* 1000000))   )
  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

17

Re: Bunu dener misiniz. Ben de mi acaba hata. VFP9 SP1'de cok yavas.

Evet ama benim derdim diger sekliyle yapabilmekti. Olmayinca yolu uzatip ben de bu sekilde yaptim. Kod burada cok basitlerstirlmis halinde. Asil kod bir takim kayitlarin disaridan alinmasi, degerlendirilip bazilarinin update vs seklindeydi. Neyse ugrasmam gerekti ve hala bitmedi ama bununla ugrasmaktan iyidir.

18

Re: Bunu dener misiniz. Ben de mi acaba hata. VFP9 SP1'de cok yavas.

merhaba arkadaşlar benim deneme ve sonuçlarım aşagıda oldugu gibi

   BufSpeedTest(.T.) oldugunda
   cursorSetProp("Buffering", 5, 'test')  ise takılıyor cursorSetProp("Buffering", 2, 'test') olursa 0.580 cıkıyor sonuç

BufSpeedTest(.f.)
   cursorSetProp("Buffering", 5, 'test')  0.489 cıkıyor sonuç

sevgi ve saygıyla ;