Re: [fpc-pascal] Best practice for getting heap usage summary

2012-01-19 Thread Jonas Maebe


On 19 Jan 2012, at 10:38, Mark Morgan Lloyd wrote:


Mattias Gaertner wrote:


Maybe you mean GetFPCHeapStatus
http://lazarus-ccr.sourceforge.net/docs/rtl/system/getfpcheapstatus.html
There is also the Delphi compatible GetHeapStatus, but only for  
32bit.


Yes, I was assuming that was necessary to get the THeapStatus block.  
I take it that you're confirming that this is the way to get the  
info, and that there aren't direct RTL calls.


The above is a direct RTL call. But note that
a) it is buggy in case of multi-threaded programs: 
http://bugs.freepascal.org/bug_view_advanced_page.php?bug_id=14315
b) it won't contain any information at all if you use cmem or another  
memory manager that does not keep track of allocation information.



Jonas___
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Re: [fpc-pascal] Best practice for getting heap usage summary

2012-01-19 Thread Mark Morgan Lloyd

Mattias Gaertner wrote:

On Thu, 19 Jan 2012 09:06:46 +
Mark Morgan Lloyd  wrote:

What is considered "best practice" for getting a summary of heap usage, 
in a single-threaded program which doesn't need to be Delphi-compatible?


In Delphi programs that have had to run for an extended period I've used 
  AllocMemCOunt() and AllocMemSize(). What's the best way of getting 
something comparable for FPC- THeapStatus.TotalAllocated etc.?


Maybe you mean GetFPCHeapStatus

http://lazarus-ccr.sourceforge.net/docs/rtl/system/getfpcheapstatus.html

There is also the Delphi compatible GetHeapStatus, but only for 32bit.


Yes, I was assuming that was necessary to get the THeapStatus block. I 
take it that you're confirming that this is the way to get the info, and 
that there aren't direct RTL calls.


--
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk

[Opinions above are the author's, not those of his employers or colleagues]
___
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal


Re: [fpc-pascal] Best practice for getting heap usage summary

2012-01-19 Thread Mattias Gaertner
On Thu, 19 Jan 2012 09:06:46 +
Mark Morgan Lloyd  wrote:

> What is considered "best practice" for getting a summary of heap usage, 
> in a single-threaded program which doesn't need to be Delphi-compatible?
> 
> In Delphi programs that have had to run for an extended period I've used 
>   AllocMemCOunt() and AllocMemSize(). What's the best way of getting 
> something comparable for FPC- THeapStatus.TotalAllocated etc.?

Maybe you mean GetFPCHeapStatus

http://lazarus-ccr.sourceforge.net/docs/rtl/system/getfpcheapstatus.html

There is also the Delphi compatible GetHeapStatus, but only for 32bit.

Mattias
 
___
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal