Page 1 of 1

1000 TEXTBOX under 32 vs. 64 Bit

Posted: Sat Sep 24, 2022 7:40 am
by AUGE_OHR
hi,

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)
Windows 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
what do i miss :?:

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