Exportfile for AOT version 1.0 or later Formatversion: 1 ***Element: CLS ; Microsoft Dynamics Class: MethodCallTiming verwijderd ; -------------------------------------------------------------------------------- CLSVERSION 1 CLASS #MethodCallTiming PROPERTIES Name #MethodCallTiming Extends # RunOn #Called from ENDPROPERTIES METHODS Version: 3 SOURCE #methodObject #public void methodObject() #{ #} ENDSOURCE SOURCE #classDeclaration #class MethodCallTiming #{ #} ENDSOURCE SOURCE #methodClient #client static void methodClient() #{ #} ENDSOURCE SOURCE #methodServer #server static void methodServer() #{ #} ENDSOURCE SOURCE #main #client static void main(Args _args) #{ # AsciiIo outFile = new AsciiIo(@'c:\temp\method_calls.csv', 'w'); # # Timer timer = new Timer(); # int i, maxLoop = 100000; # int j, runs = 20; # # MethodCallTiming methodCallTiming; # Object object; # SysDictClass sysDictClass; # # int total; # ; # # outFile.outRecordDelimiter('\r\n'); # outFile.outFieldDelimiter(';'); # # outFile.write(['ID', 'Name', 'Time (ms)']); # # for(j=1; j<=runs; ++j) # { # timer.clearAll(); # # timer.start(1); # for (i=1; i<=maxLoop; ++i) # { # } # timer.stop(1); # outFile.write([1, 'No method', timer.time(1)]); # # timer.start(2); # for (i=1; i<=maxLoop; ++i) # { # MethodCallTiming::methodClient(); # } # timer.stop(2); # outFile.write([2, 'Static method client', timer.time(2)]); # # timer.start(3); # for (i=1; i<=maxLoop; ++i) # { # MethodCallTiming::methodServer(); # } # timer.stop(3); # outFile.write([3, 'Static method server', timer.time(3)]); # # methodCallTiming = MethodCallTiming::newOnClient(); # timer.start(4); # for (i=1; i<=maxLoop; ++i) # { # methodCallTiming.methodObject(); # } # timer.stop(4); # outFile.write([4, 'Instance method client', timer.time(4)]); # # methodCallTiming = MethodCallTiming::newOnServer(); # timer.start(5); # for (i=1; i<=maxLoop; ++i) # { # methodCallTiming.methodObject(); # } # timer.stop(5); # outFile.write([5, 'Instance method server', timer.time(5)]); # # sysDictClass = new SysDictClass(classNum(MethodCallTiming)); # object = sysDictClass.makeObject(); # timer.start(6); # for (i=1; i<=maxLoop; ++i) # { # sysDictClass.callObject('methodObject', object); # } # timer.stop(6); # outFile.write([6, 'SysDictClass', timer.time(6)]); # # object = MethodCallTiming::newOnClient(); # timer.start(7); # for (i=1; i<=maxLoop; ++i) # { # object.methodObject(); # } # timer.stop(7); # outFile.write([7, 'Type Object', timer.time(7)]); # # sleep(1000); # } # # info('Done'); #} ENDSOURCE SOURCE #newOnClient #client static MethodCallTiming newOnClient() #{ # return new MethodCallTiming(); #} ENDSOURCE SOURCE #newOnServer #server static MethodCallTiming newOnServer() #{ # return new MethodCallTiming(); #} ENDSOURCE ENDMETHODS ENDCLASS ***Element: END