Package: libc6
Version: 2.19, 2.24, 2.28
Severity: normal
--- Please enter the report below this line. ---
Initial condition of the problem representing is a program in the single
source code, built on-and for Debian 7, 8, 9, 10 with a result in the
Live disks.
The program represents a web-interface of several pages, where here used
only the first page.
In building the first page there used wide range of memory chunks: small
objects of the C++ classes (~100 bytes), resources of the image files
(~10 kbytes), GD memory blocks (~1 kbytes), so on
The live disks were started under VirtualBox 5.2, where the got data was
measured by *top*.
The data measuring under VirtualBox performed into the next stages:
1. Start the program and set the initial state, fixing the memory
allocation — *measuring the initial memory consumption value*
2. Perform the allocation-freeing iteration
2.1. Open the first Web-interface page from a Web-browser of the host system
2.2. Close the page on the Web-browser
2.3. Wait to close-freeing session of the first Web-interface page on
the program side, 1 minute — *measuring the iteration **memory
consumption value*
3. Return to the stage 2 and repeating 5 iterations
The stage 2.3 tested to real freeing all the allocated memory blocks
both by the objects counters and by *valgrind*!
In the result we have next data:
Environment Initially, MB Iter. 1, MB Iter. 2, MB Iter. 3, MB Iter.
4, MB Iter. 5, MB Resume
Debian 10 amd64, GLibC 2.28, GCC 8.3.0 182 191.5 199 206 212 212
Satiated on the iteration*4*, base consumption 9.5 MB, extra consumption
20 MB (*200* %), liboscada.so 3.5 MB, ui_WebVision.so 0.74 MB
Debian 9 amd64, GLibC 2.24, GCC 6.3.0 160 170 178 179 183 185
Satiated on the iteration*5*, base consumption 10 MB, extra consumption
15 MB (*150* %), liboscada.so 3.5 MB, ui_WebVision.so 0.72 MB
Debian 8 amd64, GLibC 2.19, GCC 4.9.2 125.5 133 139 139 139 139
Satiated on the iteration*2*, base consumption 7.5 MB, extra consumption
6 MB (*80* %), liboscada.so 3.8 MB, ui_WebVision.so 0.79 MB
Debian 7 amd64, GLibC 2.13, GCC 4.7.2 101 108 111 112 112 112
Satiated on the iteration*2*, base consumption 7 MB, extra consumption 4
MB (*57* %), liboscada.so 3.4 MB, ui_WebVision.so 0.85 MB
Debian 10 i386, GLibC 2.28, GCC 8.3.0 151 158 162.5 166 166 166
Satiated on the iteration*3*, base consumption 7 MB, extra consumption 8
MB (*114* %), liboscada.so 3.7 MB, ui_WebVision.so 0.9 MB
Debian 9 i386, GLibC 2.24, GCC 6.3.0 125 131 132 136 136 139
Satiated on the iteration*5*, base consumption 6 MB, extra consumption 8
MB (*133* %), liboscada.so 3.7 MB, ui_WebVision.so 0.9 MB
Debian 8 i386, GLibC 2.19, GCC 4.9.2 92.5 99 101.5 103 103.5 103.5
Satiated on the iteration*2*, base consumption 6.5 MB, extra
consumption 4.5 (*69* %), liboscada.so 3.6 MB, ui_WebVision.so 0.94 MB
Debian 7 i386, GLibC 2.13, GCC 4.7.2 70 76 76 76 77 77 Satiated
on the iteration*2*, base consumption 6 MB, extra consumption 1 MB
(*16* %), liboscada.so 3.6 MB, ui_WebVision.so 0.9 MB
ALTLinux 6 i386, GLibC 2.11.3, GCC 4.5.4 69 74 75 75 75 75
Satiated on the iteration*2*, base consumption 5 MB, extra consumption 1
MB (*20* %), liboscada.so 2.3 MB, ui_WebVision.so 0.9 MB
From the data we have the memory effectivity on AMD64 and I386 platform:
and the absolute initial size for the both platform:
I know about "the Memory Allocation Tunables"
(https://www.gnu.org/software/libc/manual/html_node/Memory-Allocation-Tunables.html)
and have tried them but:
- I have not got any effect from environments like to
"GLIBC_TUNABLES=glibc.malloc.trim_threshold=128" on Debian 10
- If the tunables real work, why their do not apply globally (on the
system level) to return the memory effectivity to the level of the
Debian 7 (GLibC 2.13)?
- If the new memory allocator (into GLibC 2.28) is so good, how can I
return its memory effectivity to the level of the Debian 7 (GLibC 2.13)?
The tested program and the analyse page provided on the page
http://oscada.org/wiki/Modules/WebVision#Efficiency
--- System information. ---
Architecture:
Kernel: Any for i386, amd64
Debian Release: 8, 9, 10
500 stable-updates ftp.ua.debian.org
500 stable security.debian.org
500 stable ftp.ua.debian.org
--- Package information. ---
Package's Depends field is empty.
Package's Recommends field is empty.
Package's Suggests field is empty.