i thought 32 Bit App run "better" under 64 Bit OS ... but "something" have change
now i need about 0.40 Sec. under 32 Bit OS but 1.00 Sec. under 64 Bit OS using same 32 Bit App (and same Hardware)
what do i missWindows 32 Bit 10.0.19044.2075 0.39 - 0.41 Sec
Windows 64 Bit 10.0.19044.2075 1.03 - 1.06 Sec
Windows 64 Bit 10.0.22000.1042 1.06 - 1.14 Sec
here my CODE
Code: Select all
#IFDEF __XPP__
#ELSE
#include "HMG.CH"
#ENDIF
PROCEDURE MAIN
LOCAL i, nStartCreate, nStopCreate , nStartShow , nStopshow , nStartDestroy , nStopdestroy
LOCAL cSLE
#IFDEF __XPP__
LOCAL nEvent, mp1, mp2, oXbp
LOCAL oDlg1
oDlg1 := XbpDialog():new(AppDesktop() ,, {0,0}, {1024,768} )
oDlg1:title := "1000 SLE Test"
oDlg1:taskList := .T.
oDlg1:create()
oDlg1:Hide()
CenterControl(oDlg1)
nStartCreate := SECONDS()
FOR i := 1 TO 1000
oXbp := XbpSLE():new(oDlg1:DrawingArea, ,{i,i/4*3}, {100,30})
oXbp:create()
NEXT
nStopCreate := SECONDS()
nStartshow := seconds()
oDlg1:Show()
nStopShow := seconds()
nStartDestroy := SECONDS()
oDlg1:Destroy()
nStopDestroy := SECONDS()
Msgbox("Create: "+STR(nStopCreate-nStartCreate,9,2)+" Sec."+chr(13)+chr(10)+"Show: "+STR(nStopshow-nStartshow,9,2)+" Sec."+chr(13)+chr(10)+"Destroy: "+STR(nStopdestroy-nStartDestroy,9,2)+" Sec.")
RETURN
#ELSE
nStartshow := seconds()
DEFINE WINDOW InkMain ;
AT 0, 0 ;
WIDTH 1024 ;
HEIGHT 768 ;
NOSHOW ;
ON INIT DoInit(nStartCreate, nStopCreate , nStartShow , nStopshow , nStartDestroy , nStopdestroy) ;
TITLE "1000 SLE Test"
nStartCreate := SECONDS()
FOR i := 1 TO 1000
cSLE := "TEXT_"+STRZERO(i,4)
DEFINE TEXTBOX &cSLE
ROW i
COL i/4*3
WIDTH 100
HEIGHT 30
FONTNAME "Arial"
FONTSIZE 10
TABSTOP .T.
VISIBLE .T.
VALUE ""
END TEXTBOX
NEXT
nStopCreate := SECONDS()
END WINDOW
InkMain.Show()
nStopShow := seconds()
nStartDestroy := SECONDS()
nStopDestroy := SECONDS()
CENTER WINDOW InkMain
ACTIVATE WINDOW InkMain
RETURN
PROCEDURE DoInit(nStartCreate, nStopCreate , nStartShow , nStopshow , nStartDestroy , nStopdestroy)
MsgInfo("Create: "+STR(nStopCreate-nStartCreate,9,2)+" Sec."+chr(13)+chr(10)+"Show: "+STR(nStopshow-nStartshow,9,2)+" Sec."+chr(13)+chr(10)+"Destroy: "+STR(nStopdestroy-nStartDestroy,9,2)+" Sec.")
RETURN
#ENDIF