In the end all I could do was filter the results.
libc++ and libstdc++ allocate different sizes of stuff for their own usr.
That means that when we get to allocating aligned blocks there is some
slop (up to the alignment size) that gets counted. And the amount of
that slop depends on the prior (internal) allocations.
are not entered into bugzilla tend to get forgotten about or ignored.
476320 Build failure with GCC
+476535 Difference in allocation size for massif/tests/overloaded-new between clang++/libc++ and g++/libstdc++
To see details of a given bug, visit
https://bugs.kde.org/show_bug.cgi?id=XXXXXX
include $(top_srcdir)/Makefile.tool-tests.am
-dist_noinst_SCRIPTS = filter_stderr filter_verbose
+dist_noinst_SCRIPTS = filter_stderr filter_verbose filer_new_aligned
EXTRA_DIST = \
alloc-fns-A.post.exp alloc-fns-A.stderr.exp alloc-fns-A.vgtest \
null.post.exp null.stderr.exp null.vgtest \
one.post.exp one.post.exp2 one.stderr.exp one.vgtest \
overloaded-new.post.exp overloaded-new.post.exp-mips32 \
- overloaded-new.post.exp-libstdc++ \
overloaded-new.stderr.exp overloaded-new.vgtest \
pages_as_heap.stderr.exp pages_as_heap.vgtest \
peak.post.exp peak.stderr.exp peak.vgtest \
--- /dev/null
+#! /bin/sh
+
+../../tests/filter_addresses |
+
+sed 's/98\.[0-9][0-9]\^/98.XX^/' |
+sed 's/0 19[0-9].[0-9]/0 19X.X/' |
+awk '/ 5 .* 16,000 /{print " 5 16,XXX 16,XXX 16,000 XXX 0";next}{print}' |
+awk '/ 6 .* 56,000 /{print " 6 56,XXX 56,XXX 56,000 XXX 0";next}{print}' |
+awk '/ 7 .* 60,000 /{print " 7 60,XXX 60,XXX 60,000 XXX 0";next}{print}' |
+awk '/ 8 .* 100,000 /{print " 8 100,XXX 100,XXX 100,000 XXX 0";next}{print}' |
+awk '/ 9 .* 100,000 /{print " 9 100,XXX 100,XXX 100,000 XXX 0";next}{print}' |
+awk '/ 10 .* 96,000 /{print " 10 104,XXX 96,XXX 96,000 XXX 0";next}{print}' |
+awk '/ 11 .* 92,000 /{print " 11 108,XXX 92,XXX 92,000 XXX 0";next}{print}' |
+awk '/ 12 .* 90,000 /{print " 12 110,XXX 90,XXX 90,000 XXX 0";next}{print}' |
+awk '/ 13 .* 88,000 /{print " 13 112,XXX 88,XXX 88,000 XXX 0";next}{print}' |
+awk '/ 14 .* 84,000 /{print " 14 116,XXX 84,XXX 84,000 XXX 0";next}{print}' |
+awk '/ 15 .* 44,000 /{print " 15 157,XXX 44,XXX 44,000 XXX 0";next}{print}' |
+awk '/ 16 .* 40,000 /{print " 16 161,XXX 40,XXX 40,000 XXX 0";next}{print}' |
+awk '/ 17 .* 0 /{print " 17 201,XXX 0 0 0 0";next}{print}' |
+sed 's/^99\.[0-9][0-9]%/99.XX%/' |
+sed 's/^->39\.[0-9][0-9]%/->39.XX%/' |
+sed 's/^->03\.[0-9][0-9]%/->03.XX%/' |
+sed 's/^->01\.[0-9][0-9]%/->01.XX%/'
+
+
+
+
+
KB
-98.28^ #
+98.XX^ #
| #:
| #:::
| #::::
| :: :: #::::: ::
| :::: :: #::::: ::
0 +----------------------------------------------------------------------->KB
- 0 196.6
+ 0 19X.X
Number of snapshots: 18
Detailed snapshots: [9 (peak)]
2 8,016 8,016 8,000 16 0
3 10,024 10,024 10,000 24 0
4 12,032 12,032 12,000 32 0
- 5 16,216 16,216 16,000 216 0
- 6 56,368 56,368 56,000 368 0
- 7 60,392 60,392 60,000 392 0
- 8 100,640 100,640 100,000 640 0
- 9 100,640 100,640 100,000 640 0
-99.36% (100,000B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->39.75% (40,000B) 0x........: main (overloaded-new.cpp:84)
+ 5 16,XXX 16,XXX 16,000 XXX 0
+ 6 56,XXX 56,XXX 56,000 XXX 0
+ 7 60,XXX 60,XXX 60,000 XXX 0
+ 8 100,XXX 100,XXX 100,000 XXX 0
+ 9 100,XXX 100,XXX 100,000 XXX 0
+99.XX% (100,000B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
+->39.XX% (40,000B) 0x........: main (overloaded-new.cpp:84)
|
-->39.75% (40,000B) 0x........: main (overloaded-new.cpp:87)
+->39.XX% (40,000B) 0x........: main (overloaded-new.cpp:87)
|
-->03.97% (4,000B) 0x........: main (overloaded-new.cpp:79)
+->03.XX% (4,000B) 0x........: main (overloaded-new.cpp:79)
|
-->03.97% (4,000B) 0x........: main (overloaded-new.cpp:80)
+->03.XX% (4,000B) 0x........: main (overloaded-new.cpp:80)
|
-->03.97% (4,000B) 0x........: main (overloaded-new.cpp:83)
+->03.XX% (4,000B) 0x........: main (overloaded-new.cpp:83)
|
-->03.97% (4,000B) 0x........: main (overloaded-new.cpp:86)
+->03.XX% (4,000B) 0x........: main (overloaded-new.cpp:86)
|
-->01.99% (2,000B) 0x........: main (overloaded-new.cpp:81)
+->01.XX% (2,000B) 0x........: main (overloaded-new.cpp:81)
|
-->01.99% (2,000B) 0x........: main (overloaded-new.cpp:82)
+->01.XX% (2,000B) 0x........: main (overloaded-new.cpp:82)
--------------------------------------------------------------------------------
n time(B) total(B) useful-heap(B) extra-heap(B) stacks(B)
--------------------------------------------------------------------------------
- 10 104,648 96,632 96,000 632 0
- 11 108,656 92,624 92,000 624 0
- 12 110,664 90,616 90,000 616 0
- 13 112,672 88,608 88,000 608 0
- 14 116,856 84,424 84,000 424 0
- 15 157,008 44,272 44,000 272 0
- 16 161,032 40,248 40,000 248 0
- 17 201,280 0 0 0 0
+ 10 104,XXX 96,XXX 96,000 XXX 0
+ 11 108,XXX 92,XXX 92,000 XXX 0
+ 12 110,XXX 90,XXX 90,000 XXX 0
+ 13 112,XXX 88,XXX 88,000 XXX 0
+ 14 116,XXX 84,XXX 84,000 XXX 0
+ 15 157,XXX 44,XXX 44,000 XXX 0
+ 16 161,XXX 40,XXX 40,000 XXX 0
+ 17 201,XXX 0 0 0 0
+++ /dev/null
---------------------------------------------------------------------------------
-Command: ./overloaded-new
-Massif arguments: --stacks=no --time-unit=B --massif-out-file=massif.out --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element --ignore-fn=_GLOBAL__sub_I_eh_alloc.cc --ignore-fn=call_init.part.0 --ignore-fn=call_init --ignore-fn=pool
-ms_print arguments: massif.out
---------------------------------------------------------------------------------
-
-
- KB
-98.16^ #
- | #:
- | #:::
- | #::::
- | #:::::::::::::::::::
- | #:::::
- | #:::::
- | #:::::
- | :::::::::::::::#:::::
- | :: #:::::
- | :: #:::::
- | :: #:::::
- | :: #::::: :
- | :: #::::: :::::::::::::::
- | :: #::::: ::
- | :: #::::: ::
- | :: #::::: ::
- | ::::::::::::::::: #::::: ::
- | :: :: #::::: ::
- | :::: :: #::::: ::
- 0 +----------------------------------------------------------------------->KB
- 0 196.3
-
-Number of snapshots: 18
- Detailed snapshots: [9 (peak)]
-
---------------------------------------------------------------------------------
- n time(B) total(B) useful-heap(B) extra-heap(B) stacks(B)
---------------------------------------------------------------------------------
- 0 0 0 0 0 0
- 1 4,008 4,008 4,000 8 0
- 2 8,016 8,016 8,000 16 0
- 3 10,024 10,024 10,000 24 0
- 4 12,032 12,032 12,000 32 0
- 5 16,248 16,248 16,000 248 0
- 6 56,432 56,432 56,000 432 0
- 7 60,488 60,488 60,000 488 0
- 8 100,512 100,512 100,000 512 0
- 9 100,512 100,512 100,000 512 0
-99.49% (100,000B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->39.80% (40,000B) 0x........: main (overloaded-new.cpp:84)
-|
-->39.80% (40,000B) 0x........: main (overloaded-new.cpp:87)
-|
-->03.98% (4,000B) 0x........: main (overloaded-new.cpp:79)
-|
-->03.98% (4,000B) 0x........: main (overloaded-new.cpp:80)
-|
-->03.98% (4,000B) 0x........: main (overloaded-new.cpp:83)
-|
-->03.98% (4,000B) 0x........: main (overloaded-new.cpp:86)
-|
-->01.99% (2,000B) 0x........: main (overloaded-new.cpp:81)
-|
-->01.99% (2,000B) 0x........: main (overloaded-new.cpp:82)
-
---------------------------------------------------------------------------------
- n time(B) total(B) useful-heap(B) extra-heap(B) stacks(B)
---------------------------------------------------------------------------------
- 10 104,520 96,504 96,000 504 0
- 11 108,528 92,496 92,000 496 0
- 12 110,536 90,488 90,000 488 0
- 13 112,544 88,480 88,000 480 0
- 14 116,760 84,264 84,000 264 0
- 15 156,944 44,080 44,000 80 0
- 16 161,000 40,024 40,000 24 0
- 17 201,024 0 0 0 0
vgopts: --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook
vgopts: --ignore-fn=get_or_create_key_element --ignore-fn=_GLOBAL__sub_I_eh_alloc.cc --ignore-fn=call_init.part.0
vgopts: --ignore-fn=call_init --ignore-fn=pool
-post: perl ../../massif/ms_print massif.out | sed 's/gcc[0-9]*/gcc/' | ../../tests/filter_addresses
+post: perl ../../massif/ms_print massif.out | sed 's/gcc[0-9]*/gcc/' | ./filter_new_aligned
cleanup: rm massif.out