Each time you press "Test" button, consumption of memory is increased by approx 600 KB.
Code: Select all
// Press 'Test: HMG_Upper()' and observe memory usage at status bar
#include 'hmg.ch'
FUNCTION Main()
SET FONT TO 'MS Shell Dlg', 8
DEFINE WINDOW MUT_WA;
COL 200;
ROW 100;
WIDTH 340;
HEIGHT 120;
TITLE 'Memory usage test';
MAIN
DEFINE BUTTON Test_BU
COL 10
ROW 20
WIDTH 150
HEIGHT 25
CAPTION 'Test: HMG_Upper()'
ACTION DoTest()
END BUTTON
DEFINE BUTTON Exit_BU
COL 170
ROW 20
WIDTH 150
HEIGHT 25
CAPTION 'Exit'
ACTION MUT_WA.RELEASE
END BUTTON
DEFINE STATUSBAR
STATUSITEM ''
END STATUSBAR
DEFINE TIMER MUT_WA_TI;
INTERVAL 1000;
ACTION UpdateStatus()
ON KEY ESCAPE ACTION MUT_WA.RELEASE
END WINDOW //MUT_WA
UpdateStatus()
MUT_WA.ACTIVATE
RETURN NIL
FUNCTION DoTest()
LOCAL n
LOCAL cString := 'abcdefgh'
FOR n := 1 TO 10000
HMG_Upper(cString)
//HMG_Lower(cString)
//Upper(cString)
//Lower(cString)
//HMG_CallDLL('User32.dll', 0, 'CharUpper', cString)
NEXT
UpdateStatus()
RETURN NIL
FUNCTION UpdateStatus()
MUT_WA.STATUSBAR.Item(1) := 'Memory usage: ' + LTrim(Str(GetProcessMemoryInfo()[3] / 1024, 10, 0) + ' KB')
//RELEASE MEMORY does not work in Win-XP, in Win-7 works
//RELEASE MEMORY
RETURN NIL