On Mon, 11 Feb 2013, Richard Lowe wrote:

I've never used the profiler you're using.

The 'spot' profiler comes with Sun Studio 12.3 compiler. It is written in Perl scripts around Solaris's normal profiling utilities. It seems to have bit-rotted and is not properly maintained even though it is delivered with the compiler. I will look into using the newer performance analyzer tools that come with the Studio compiler.

I would think if you're in vmem_hash_delete from there, you must be in
the umem implementation of it.

Are you sure it's burning cycles?  The way I'm reading the output
makes it appear almost negligible.

I agree that it does not look like it is burning cycles. I am mostly worried about latencies not attributed to the program (e.g. in the VM system) or to "system" time.

Program performance is virtually identical regardless of being compiled with GCC or the Studio compiler.

Do you have data from a profiler you _do_ trust?  Given the doubt that
the one you're using "is working correctly".

I will investigate further. Hopefully there is a profiler which still works properly on Illumos on modern hardware.

Are you using umem normally, or do you have any of the debugging
features enabled?

Umem is being used normally as an improved malloc and debugging is not enabled.

Are you making allocations that would bypass the quantum cache?
(large, I think memalign'd but am not sure, etc.), and would thus send
us legitimately down this path even if it _is_ a hog.

The program is using posix_memalign() (with 64-byte alignment) for many of its allocations in order to avoid cache-line thrashing. The allocation sizes are also rounded up to 64-byte alignment. It uses ordinary malloc/realloc for the largest data allocations.

This is what a Linux memory profiler says about how the program allocates memory:

Memory usage summary: heap total: 5095337925, heap peak: 5031841357, stack 
peak: 19680
         total calls   total memory   failed calls
 malloc|       8145     5095337669              0
realloc|          1            256              0  (nomove:0, dec:0, free:0)
 calloc|          0              0              0
   free|      10543     5095336997
Histogram for block sizes:
   16-31            244   2% ========
   32-47            725   8% =========================
   96-111             1  <1%
  112-127           725   8% =========================
  128-143           202   2% =======
  256-271           719   8% =========================
  544-559           241   2% ========
  560-575             2  <1%
  768-783           720   8% =========================
 2048-2063          718   8% =========================
 4096-4111         1434  17% ==================================================
 6864-6879          725   8% =========================
 8192-8207          717   8% =========================
 8528-8543          490   6% =================
   large            483   5% ================

Bob
--
Bob Friesenhahn
[email protected], http://www.simplesystems.org/users/bfriesen/
GraphicsMagick Maintainer,    http://www.GraphicsMagick.org/


-------------------------------------------
illumos-discuss
Archives: https://www.listbox.com/member/archive/182180/=now
RSS Feed: https://www.listbox.com/member/archive/rss/182180/21175430-2e6923be
Modify Your Subscription: 
https://www.listbox.com/member/?member_id=21175430&id_secret=21175430-6a77cda4
Powered by Listbox: http://www.listbox.com

Reply via email to