very slow sample program xbrbckg1.prg
- MarcoBoschi
- Posts: 1077
- Joined: Thu Nov 17, 2005 11:08 am
- Location: Padova - Italy
- Contact:
very slow sample program xbrbckg1.prg
Hi everybody
I've tried it it's very very slow I don't understand why. Could someone else test it please?
It seems that at every key pressed it performs a lot of things.
I know very little xbrowse class so I ask it in the group
Many thanks
to all
marco
I've tried it it's very very slow I don't understand why. Could someone else test it please?
It seems that at every key pressed it performs a lot of things.
I know very little xbrowse class so I ask it in the group
Many thanks
to all
marco
Marco Boschi
info@marcoboschi.it
info@marcoboschi.it
Re: very slow sample program xbrbckg1.prg
Ciao Marco...
Use this image: https://imagizer.imageshack.com/img923/276/DFYUs0.jpg
Is a quite faster... olga1.jpg is resized and is slow
regards, Euclides
Use this image: https://imagizer.imageshack.com/img923/276/DFYUs0.jpg
Is a quite faster... olga1.jpg is resized and is slow
regards, Euclides
- nageswaragunupudi
- Posts: 10733
- Joined: Sun Nov 19, 2006 5:22 am
- Location: India
- Been thanked: 11 times
- Contact:
Re: very slow sample program xbrbckg1.prg
Having a background image slows down.
Every cell movement results in full refresh of the browse.
This is suitable for small browses and data that is already in memory.
Every cell movement results in full refresh of the browse.
This is suitable for small browses and data that is already in memory.
Regards
G. N. Rao.
Hyderabad, India
G. N. Rao.
Hyderabad, India
- MarcoBoschi
- Posts: 1077
- Joined: Thu Nov 17, 2005 11:08 am
- Location: Padova - Italy
- Contact:
Re: very slow sample program xbrbckg1.prg
Hi,
I took away what seems superfluous to me.
- RIGHT very slow
- LEFT slow
- UP and DOWN normal but I see flicker across the entire line
- PG UP and PG DOWN not fast but not really bad
take it as a report not as a criticism thanks
Have a nice day
Marco
I took away what seems superfluous to me.
- RIGHT very slow
- LEFT slow
- UP and DOWN normal but I see flicker across the entire line
- PG UP and PG DOWN not fast but not really bad
take it as a report not as a criticism thanks
Have a nice day
Marco
Code: Select all | Expand
#include 'fivewin.ch'#include 'ord.ch'#include 'xbrowse.ch'REQUEST DBFCDXfunction Main() local oWnd, oBrw USE CUSTOMER SHARED DEFINE WINDOW oWnd TITLE 'XBrowse without BackGrounds' @ 0, 0 XBROWSE oBrw OF oWnd ; ALIAS 'CUSTOMER' AUTOCOLS ; CELL LINES ; COLOR CLR_BLUE, CLR_WHITE SET MESSAGE OF oWnd TO FWVERSION 2007 oBrw:CreateFromCode() oWnd:oClient := oBrw ACTIVATE WINDOW oWnd MAXIMIZEDreturn nil
Marco Boschi
info@marcoboschi.it
info@marcoboschi.it
- MarcoBoschi
- Posts: 1077
- Joined: Thu Nov 17, 2005 11:08 am
- Location: Padova - Italy
- Contact:
Re: very slow sample program xbrbckg1.prg
In method METHOD Paint() CLASS TXBrowse
if I rem DispBegin() and DispEnd()
// local aInfo := ::DispBegin()
and at the end of method I rem
if ::nLen == 0
::EraseData( nFirstRow )
// ::DispEnd( aInfo )
return nil
endif
// ::DispEnd( aInfo )
the problem is even more evident
I use also a dbf of 400 fields and 100 records
I've noticed this method is evocated every time I press VK_RIGHT instead for other key pressed no only in particular conditions
The question is: Is it possible to insert some conditions in the method to make the paint run only when needed?
Have a nice day
Marco
if I rem DispBegin() and DispEnd()
// local aInfo := ::DispBegin()
and at the end of method I rem
if ::nLen == 0
::EraseData( nFirstRow )
// ::DispEnd( aInfo )
return nil
endif
// ::DispEnd( aInfo )
the problem is even more evident
I use also a dbf of 400 fields and 100 records
I've noticed this method is evocated every time I press VK_RIGHT instead for other key pressed no only in particular conditions
The question is: Is it possible to insert some conditions in the method to make the paint run only when needed?
Have a nice day
Marco
Marco Boschi
info@marcoboschi.it
info@marcoboschi.it
- nageswaragunupudi
- Posts: 10733
- Joined: Sun Nov 19, 2006 5:22 am
- Location: India
- Been thanked: 11 times
- Contact:
Re: very slow sample program xbrbckg1.prg
Commenting out DispBegin() and DispEnd() is not the right thing to do.
Please also see
viewtopic.php?f=20&t=38740
WBrowse is the fastest browse. XBrowse is not created to provide a faster alternative, but a feature-rich browse. Still with oBrw:lFastDraw set to .t., speeds are closer to wbrowse though not faster.
It is worth testing xbrowse's performance with a very large table. In this following sample, we create a DBF with One Million Records, 81 fields and recordsize of 1061 bytes and try to browse it.

Please also see
viewtopic.php?f=20&t=38740
WBrowse is the fastest browse. XBrowse is not created to provide a faster alternative, but a feature-rich browse. Still with oBrw:lFastDraw set to .t., speeds are closer to wbrowse though not faster.
It is worth testing xbrowse's performance with a very large table. In this following sample, we create a DBF with One Million Records, 81 fields and recordsize of 1061 bytes and try to browse it.
Code: Select all | Expand
#include "fivewin.ch"REQUEST DBFCDXfunction Main() field FIRST,LAST,STREET,CITY,STATE,ZIP,HIREDATE,MARRIED,AGE,SALARY field FIRST2,LAST2,STREET2,CITY2,STATE2,ZIP2,HIREDATE2,MARRIED2,AGE2,SALARY2 field FIRST3,LAST3,STREET3,CITY3,STATE3,ZIP3,HIREDATE3,MARRIED3,AGE3,SALARY3 field FIRST4,LAST4,STREET4,CITY4,STATE4,ZIP4,HIREDATE4,MARRIED4,AGE4,SALARY4 field FIRST5,LAST5,STREET5,CITY5,STATE5,ZIP5,HIREDATE5,MARRIED5,AGE5,SALARY5 field FIRST6,LAST6,STREET6,CITY6,STATE6,ZIP6,HIREDATE6,MARRIED6,AGE6,SALARY6 field FIRST7,LAST7,STREET7,CITY7,STATE7,ZIP7,HIREDATE7,MARRIED7,AGE7,SALARY7 field FIRST8,LAST8,STREET8,CITY8,STATE8,ZIP8,HIREDATE8,MARRIED8,AGE8,SALARY8 local aStruct, cCust, cmiln, n, nLen, a, i, c cCust := "c:\fwh\samples\customer.dbf" cmiln := "c:\fwh\samples\custmiln.dbf" if File( cmiln ) USE ( cmiln ) NEW ALIAS "CUST" VIA "DBFCDX" else aStruct := FW_DBFSTRUCT( cCust ) ASize( aStruct, Len( aStruct ) - 1 ) nLen := Len( aStruct ) for i := 2 to 8 c := Str( i, 1, 0 ) for n := 2 to nLen a := AClone( aStruct[ n ] ) a[ 1 ] += c AAdd( aStruct, a ) next next XBROWSER aStruct SHOW SLNUM DBCREATE( cmiln, aStruct, "DBFCDX", .t., "CUST" ) for n := 1 to 2000 APPEND FROM c:\fwh\samples\customer.dbf ; FIELDS FIRST,LAST,STREET,CITY,STATE,ZIP,HIREDATE,MARRIED,AGE,SALARY next GO TOP REPLACE ALL FIRST2 WITH FIRST, LAST2 WITH LAST, CITY2 WITH CITY, STATE2 WITH STATE, ; ZIP2 WITH ZIP, HIREDATE2 WITH HIREDATE, MARRIED2 WITH MARRIED, ; AGE2 WITH AGE, SALARY2 WITH SALARY REPLACE ALL FIRST3 WITH FIRST, LAST3 WITH LAST, CITY3 WITH CITY, STATE3 WITH STATE, ; ZIP3 WITH ZIP, HIREDATE3 WITH HIREDATE, MARRIED3 WITH MARRIED, ; AGE3 WITH AGE, SALARY3 WITH SALARY REPLACE ALL FIRST4 WITH FIRST, LAST4 WITH LAST, CITY4 WITH CITY, STATE4 WITH STATE, ; ZIP4 WITH ZIP, HIREDATE4 WITH HIREDATE, MARRIED4 WITH MARRIED, ; AGE4 WITH AGE, SALARY4 WITH SALARY REPLACE ALL FIRST5 WITH FIRST, LAST5 WITH LAST, CITY5 WITH CITY, STATE5 WITH STATE, ; ZIP5 WITH ZIP, HIREDATE5 WITH HIREDATE, MARRIED5 WITH MARRIED, ; AGE5 WITH AGE, SALARY5 WITH SALARY REPLACE ALL FIRST6 WITH FIRST, LAST6 WITH LAST, CITY6 WITH CITY, STATE6 WITH STATE, ; ZIP6 WITH ZIP, HIREDATE6 WITH HIREDATE, MARRIED6 WITH MARRIED, ; AGE6 WITH AGE, SALARY6 WITH SALARY REPLACE ALL FIRST7 WITH FIRST, LAST7 WITH LAST, CITY7 WITH CITY, STATE7 WITH STATE, ; ZIP7 WITH ZIP, HIREDATE7 WITH HIREDATE, MARRIED7 WITH MARRIED, ; AGE7 WITH AGE, SALARY7 WITH SALARY REPLACE ALL FIRST8 WITH FIRST, LAST8 WITH LAST, CITY8 WITH CITY, STATE8 WITH STATE, ; ZIP8 WITH ZIP, HIREDATE8 WITH HIREDATE, MARRIED8 WITH MARRIED, ; AGE8 WITH AGE, SALARY8 WITH SALARY GO TOP FW_CdxCreate( "ID,FIRST,LAST,STREET,CITY,STATE,ZIP,HIREDATE,MARRIED,AGE,SALARY" ) GO TOP endif XBROWSER ALIAS() TITLE "One Million Records: 81 Fields: Record Len: 1061" ; SETUP ( oBrw:aCols[ 1 ]:cEditPicture := "99,999,999", oBrw:lFastDraw := .t., ; oBrw:lVThumbTrack := .t., oBrw:lAutosort := .t. )return nil

Regards
G. N. Rao.
Hyderabad, India
G. N. Rao.
Hyderabad, India
- nageswaragunupudi
- Posts: 10733
- Joined: Sun Nov 19, 2006 5:22 am
- Location: India
- Been thanked: 11 times
- Contact:
Re: very slow sample program xbrbckg1.prg
Next, we will create a 100 record table with 400 fields and see the horizontal scrolling performance.

Code: Select all | Expand
#include "fivewin.ch"REQUEST DBFCDXfunction Main() local cDbf := "c:\fwh\samples\customer.dbf" local cNew := "c:\fwh\samples\cust400f.dbf" local i,j,n,c,aCol, aData, aRow, aCols, aNew := {} if File( cNew ) USE ( cNew ) NEW ALIAS C400 VIA "DBFCDX" ? "Open" else USE ( cDbf ) aCols := DBSTRUCT( cDbf ) AAdd( aNew, aCols[ 1 ] ) for i := 1 to 40 c := StrZero( i, 2, 0 ) for n := 2 to 11 aCol := AClone( aCols[ n ] ) aCol[ 1 ] += c AAdd( aNew, aCol ) next next aData := FW_DbfToArray( nil, nil, { || RECNO() <= 100 } ) CLOSE DATA DBCREATE( cNew, aNew, "DBFCDX", .T., "C400" ) for each aRow in aData DBAPPEND() n := 2 for i := 1 to 40 for j := 2 to 11 FieldPut( n, aRow[ j ] ) n++ next next next GO TOP endif XBROWSER ALIAS() SETUP ( oBrw:nMarqueeStyle := 3, oBrw:lFastDraw := .t. )return nil

Regards
G. N. Rao.
Hyderabad, India
G. N. Rao.
Hyderabad, India
- Otto
- Posts: 6419
- Joined: Fri Oct 07, 2005 7:07 pm
- Has thanked: 43 times
- Been thanked: 3 times
- Contact:
Re: very slow sample program xbrbckg1.prg
Dear Mr. Rao,
Thank you for your sample.
Please show us how we can implement a column search; I mean that I enter a column name and browser repositions vertically.
Best regards,
Otto
Thank you for your sample.
Please show us how we can implement a column search; I mean that I enter a column name and browser repositions vertically.
Best regards,
Otto
********************************************************************
mod harbour - Vamos a la conquista de la Web
modharbour.org
https://www.facebook.com/groups/modharbour.club
********************************************************************
mod harbour - Vamos a la conquista de la Web
modharbour.org
https://www.facebook.com/groups/modharbour.club
********************************************************************
- nageswaragunupudi
- Posts: 10733
- Joined: Sun Nov 19, 2006 5:22 am
- Location: India
- Been thanked: 11 times
- Contact:
Re: very slow sample program xbrbckg1.prg
Code: Select all | Expand
oBrw:GoToCol( <column_name> )
Regards
G. N. Rao.
Hyderabad, India
G. N. Rao.
Hyderabad, India
- MarcoBoschi
- Posts: 1077
- Joined: Thu Nov 17, 2005 11:08 am
- Location: Padova - Italy
- Contact:
- Enrico Maria Giordano
- Posts: 8776
- Joined: Thu Oct 06, 2005 8:17 pm
- Location: Roma - Italia
- Has thanked: 1 time
- Been thanked: 8 times
- Contact:
Re: very slow sample program xbrbckg1.prg
Ok, but this sample is still slow:
EMG
Code: Select all | Expand
#include 'fivewin.ch'#include 'ord.ch'#include 'xbrowse.ch'REQUEST DBFCDXfunction Main() local oWnd, oBrw USE CUSTOMER SHARED DEFINE WINDOW oWnd TITLE 'XBrowse without BackGrounds' @ 0, 0 XBROWSE oBrw OF oWnd ; ALIAS 'CUSTOMER' AUTOCOLS ; CELL LINES ; COLOR CLR_BLUE, CLR_WHITE SET MESSAGE OF oWnd TO FWVERSION 2007 oBrw:CreateFromCode() oWnd:oClient := oBrw ACTIVATE WINDOW oWnd MAXIMIZEDreturn nil
EMG
- Enrico Maria Giordano
- Posts: 8776
- Joined: Thu Oct 06, 2005 8:17 pm
- Location: Roma - Italia
- Has thanked: 1 time
- Been thanked: 8 times
- Contact:
Re: very slow sample program xbrbckg1.prg
Ok, with lFastDraw set to .T. even that sample become fast. What is the advantage of setting lFastDraw to .F.?
EMG
EMG
- Enrico Maria Giordano
- Posts: 8776
- Joined: Thu Oct 06, 2005 8:17 pm
- Location: Roma - Italia
- Has thanked: 1 time
- Been thanked: 8 times
- Contact:
- nageswaragunupudi
- Posts: 10733
- Joined: Sun Nov 19, 2006 5:22 am
- Location: India
- Been thanked: 11 times
- Contact:
- Enrico Maria Giordano
- Posts: 8776
- Joined: Thu Oct 06, 2005 8:17 pm
- Location: Roma - Italia
- Has thanked: 1 time
- Been thanked: 8 times
- Contact:
Re: very slow sample program xbrbckg1.prg
The question was: what is the advantage of setting lFastDraw to .F.? And the answer is? 
EMG

EMG