Re: [ANN]ProDelphi 18.3 released (runtime measurement)



The problem with Sampling Profilers is that they don't give accurate
information, since they check the app periodicaly, if there are a number of
small routines executed sporadicaly, they will miss most of the hits, while
they concentrate on long-running routines. One other example is my AppServer
demo test, which I just run using 300 clients, processing 60.000 requests.

Here is the Info that came out for the Server ...

Modules (% global time)
---------------------------------------
85,19% ntdll.dll => called from
- 21,94% SyncObjs.TEvent.WaitFor
- 14,71% ComObj.Finalization
- 12,11% System.SysGetMem
- 11,51% ???
- 5,04% Controls.TWinControl.DefaultHandler
- 3,96% Forms.TApplication.ProcessMessages
- 3,78% Controls.TWinControl.PaintHandler

11,09% AppServer.exe => units
- 6,06% Classes (5,94% FreeDeviceContext)
- 2,16% System (0,60% TObject.Dispatch)
- 1,38% Controls
- 0,72% Graphics
- 0,42% Forms
- 0,18% memBinList
- 0,06% Windows
- 0,06% Types
- 0,06% rtcConn (rtc unit)
------------------------------------------------

Interesting thing about this information is that SyncObjs.TEvent.WaitFor
actually takes as good as no CPU time, while it is displayed here as one of
the worst time-consumers, Forms.TApplication.ProcessMessages is irrelevant
and there is practicaly no drawing done by the server (only a simple count
of open connections), but still Controls.TWinControl.PaintHandler takes
almost 4% of total time.

Well, if you ask me, this information is highly inaccurate and gives me
wrong data about possible bottlenecks in my application. One thing I know
for sure is that the biggest "bottleneck" is the automatic
compression/decompression, which reduces overall performance by more than
100% when turned on. Also, there's some "undefined ???" which took 11,51% of
total time spent in "ntdll.dll".

Bottom line is, I don't see any use for the Sampling Profiler. It is nice to
see how it can produce some results without making any modifications to my
app, but it doesn't give me any information I could use to improve my
applications performance.

--
Danijel Tkalcec
http://www.deltasoft.hr/rtc/author.htm

RealThinClient components
-------------------------------------------
* The Easiest way to build Internet-enabled applications
- Clients, Stand-alone Servers, ISAPI extensions -
> Write and Call Remote Functions
> Download and Upload Files
> Single- and Multi-Threaded mode
> Firewall friendly - all over HTTP
> Stress-tested for highest stability

http://www.realthinclient.com
or www.deltasoft.hr/rtc


.



Relevant Pages