Last active
October 24, 2025 07:13
-
-
Save MaskRay/5995d10b65e1e18b82931c5a8d97f55e to your computer and use it in GitHub Desktop.
Analyze .eh_frame section size distribution across executables and shared libraries on a Linux system
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| File | Total_VM_KB | EH_Frame_VM_KB | EH_Frame_Ratio | |
|---|---|---|---|---|
| /usr/bin/s390x-linux-gnu-lto-dump-14 | 26112.0 | 1863.68 | 7.1373 | |
| /usr/bin/pnmcrop | 18.7 | 0.34765625 | 1.8591 | |
| /usr/bin/uclampset | 17.9 | 1.23 | 6.8715 | |
| /usr/bin/atktopbm | 6.36 | 0.18359375 | 2.8867 | |
| /usr/bin/getent | 26.1 | 1.3 | 4.9808 | |
| /usr/bin/systemd-firstboot | 52.1 | 1.2 | 2.3033 | |
| /usr/bin/busctl | 82.9 | 1.79 | 2.1592 | |
| /usr/bin/arm-linux-gnueabi-g++ | 1853.44 | 113.0 | 6.0968 | |
| /usr/bin/loadunimap | 22.2 | 0.765625 | 3.4488 | |
| /usr/bin/pamlookup | 8.75 | 0.21484375 | 2.4554 | |
| /usr/bin/mt-gnu | 60.3 | 2.48 | 4.1128 | |
| /usr/bin/pgmhist | 8.46 | 0.328125 | 3.8785 | |
| /usr/bin/opencc_phrase_extract | 106.0 | 5.14 | 4.8491 | |
| /usr/bin/pamcat | 17.3 | 0.3125 | 1.8064 | |
| /usr/bin/grub-mklayout | 148.0 | 8.52 | 5.7568 | |
| /usr/bin/gtk-builder-tool | 24.5 | 0.60546875 | 2.4713 | |
| /usr/bin/mandb | 1167.36 | 3.53 | 0.3024 | |
| /usr/bin/sha384sum | 33.0 | 1.01 | 3.0606 | |
| /usr/bin/split | 50.3 | 1.45 | 2.8827 | |
| /usr/bin/colrm | 8.27 | 0.34375 | 4.1566 | |
| /usr/bin/pamarith | 15.4 | 0.328125 | 2.1307 | |
| /usr/bin/s390x-linux-gnu-ld.gold | 3850.24 | 372.0 | 9.6617 | |
| /usr/bin/rdma | 95.1 | 7.23 | 7.6025 | |
| /usr/bin/qemu-hexagon-static | 5416.96 | 344.0 | 6.3504 | |
| /usr/bin/pamsistoaglyph | 7.7 | 0.28125 | 3.6526 | |
| /usr/bin/s390x-linux-gnu-gprof | 101.0 | 4.32 | 4.2772 | |
| /usr/bin/arm-linux-gnueabi-ld | 793.0 | 18.6 | 2.3455 | |
| /usr/bin/pamtoavs | 5.29 | 0.18359375 | 3.4706 | |
| /usr/bin/mtr-packet | 26.1 | 0.953125 | 3.6518 | |
| /usr/bin/pamwipeout | 6.53 | 0.30078125 | 4.6061 | |
| /usr/bin/catman | 25.0 | 0.9296875 | 3.7188 | |
| /usr/bin/animate-im6 | 3.85 | 0.1796875 | 4.6672 | |
| /usr/bin/pgmtofs | 5.27 | 0.20703125 | 3.9285 | |
| /usr/bin/ppmtoppm | 4.07 | 0.16796875 | 4.127 | |
| /usr/bin/rls | 6727.68 | 343.0 | 5.0983 | |
| /usr/bin/rtstat | 18.1 | 0.4140625 | 2.2876 | |
| /usr/bin/pbmtogo | 6.75 | 0.203125 | 3.0093 | |
| /usr/bin/tac | 38.1 | 0.9609375 | 2.5221 | |
| /usr/bin/sanstats-19 | 17.1 | 0.61328125 | 3.5864 | |
| /usr/bin/s390x-linux-gnu-elfedit | 34.0 | 2.06 | 6.0588 | |
| /usr/bin/llvm-ifs-19 | 61.7 | 2.64 | 4.2788 | |
| /usr/bin/rgb3toppm | 4.64 | 0.171875 | 3.7042 | |
| /usr/bin/ppmcolormask | 7.52 | 0.21484375 | 2.857 | |
| /usr/bin/write | 14.0 | 0.5625 | 4.0179 | |
| /usr/bin/sort | 97.0 | 4.23 | 4.3608 | |
| /usr/bin/column | 29.9 | 1.07 | 3.5786 | |
| /usr/bin/msgfilter | 23.0 | 0.625 | 2.7174 | |
| /usr/bin/conmon | 155.0 | 2.24 | 1.4452 | |
| /usr/bin/factor | 54.9 | 1.82 | 3.3151 | |
| /usr/bin/g++-14 | 1167.36 | 64.2 | 5.4996 | |
| /usr/bin/llvm-cxxfilt-19 | 22.1 | 0.69140625 | 3.1285 | |
| /usr/bin/x86_64-linux-gnu-gcc-ranlib | 16.9 | 1.46 | 8.6391 | |
| /usr/bin/vmhgfs-fuse | 40.9 | 2.52 | 6.1614 | |
| /usr/bin/sg_readcap | 14.7 | 0.296875 | 2.0196 | |
| /usr/bin/jpeg2ktopam | 226.0 | 15.4 | 6.8142 | |
| /usr/bin/sg_verify | 13.1 | 0.18359375 | 1.4015 | |
| /usr/bin/ppmnorm | 12.6 | 0.21484375 | 1.7051 | |
| /usr/bin/delv | 39.2 | 0.6328125 | 1.6143 | |
| /usr/bin/merge-info | 136.0 | 12.1 | 8.8971 | |
| /usr/bin/msgunfmt | 27.5 | 0.6171875 | 2.2443 | |
| /usr/bin/ssh-add | 284.0 | 9.51 | 3.3486 | |
| /usr/bin/m68k-linux-gnu-gcc-ranlib-13 | 26.7 | 2.6 | 9.7378 | |
| /usr/bin/icuexportdata | 49.2 | 1.93 | 3.9228 | |
| /usr/bin/pbmtopk | 27.8 | 0.515625 | 1.8548 | |
| /usr/bin/ppmdither | 8.35 | 0.21484375 | 2.573 | |
| /usr/bin/pbmtoascii | 5.84 | 0.25 | 4.2808 | |
| /usr/bin/truncate | 28.3 | 0.7265625 | 2.5674 | |
| /usr/bin/gemtopnm | 7.55 | 0.17578125 | 2.3282 | |
| /usr/bin/gcc-ar-13 | 16.9 | 1.46 | 8.6391 | |
| /usr/bin/ppmhist | 9.76 | 0.2265625 | 2.3213 | |
| /usr/bin/qemu-nios2-static | 2754.56 | 167.0 | 6.0627 | |
| /usr/bin/pamsplit | 6.1 | 0.2578125 | 4.2264 | |
| /usr/bin/s390x-linux-gnu-ranlib | 62.0 | 4.13 | 6.6613 | |
| /usr/bin/faked-sysv | 97.9 | 1.05 | 1.0725 | |
| /usr/bin/macptopbm | 6.74 | 0.20703125 | 3.0717 | |
| /usr/bin/bmptoppm | 17.7 | 0.4609375 | 2.6042 | |
| /usr/bin/arm-linux-gnueabi-gcov-tool | 957.0 | 68.8 | 7.1891 | |
| /usr/bin/animate-im6.q16 | 3.85 | 0.1796875 | 4.6672 | |
| /usr/bin/lsmem | 31.6 | 1.56 | 4.9367 | |
| /usr/bin/btrfs-select-super | 509.0 | 33.6 | 6.6012 | |
| /usr/bin/sg_ses_microcode | 21.6 | 0.26953125 | 1.2478 | |
| /usr/bin/eyuvtoppm | 6.42 | 0.30078125 | 4.6851 | |
| /usr/bin/logger | 32.4 | 1.15 | 3.5494 | |
| /usr/bin/pbmtog3 | 12.4 | 0.34765625 | 2.8037 | |
| /usr/bin/gcc-ar-14 | 21.2 | 1.63 | 7.6887 | |
| /usr/bin/tnftp | 303.0 | 9.16 | 3.0231 | |
| /usr/bin/pnmindex | 12.4 | 0.21484375 | 1.7326 | |
| /usr/bin/chfn | 135.0 | 2.87 | 2.1259 | |
| /usr/bin/pgrep | 28.0 | 0.84375 | 3.0134 | |
| /usr/bin/stty | 68.2 | 1.3 | 1.9062 | |
| /usr/bin/sqfscat | 1679.36 | 6.39 | 0.3805 | |
| /usr/bin/sar | 154.0 | 5.55 | 3.6039 | |
| /usr/bin/tmux | 1095.68 | 52.8 | 4.8189 | |
| /usr/bin/hpftodit | 243.0 | 1.16 | 0.4774 | |
| /usr/bin/ppmtotga | 12.2 | 0.234375 | 1.9211 | |
| /usr/bin/convert-im6.q16 | 3.74 | 0.1796875 | 4.8045 | |
| /usr/bin/FileCheck-19 | 686.0 | 56.8 | 8.2799 | |
| /usr/bin/qemu-arm-static | 4198.4 | 309.0 | 7.3599 | |
| /usr/bin/ip | 1054.72 | 36.7 | 3.4796 | |
| /usr/bin/pgmtosbig | 5.02 | 0.2578125 | 5.1357 | |
| /usr/bin/grub-file | 795.0 | 59.2 | 7.4465 | |
| /usr/bin/llvm-opt-report-19 | 45.5 | 1.87 | 4.1099 | |
| /usr/bin/x86_64-linux-gnu-readelf | 774.0 | 19.8 | 2.5581 | |
| /usr/bin/llvm-link-19 | 66.2 | 3.41 | 5.1511 | |
| /usr/bin/showkey | 11.2 | 0.421875 | 3.7667 | |
| /usr/bin/mdatopbm | 7.58 | 0.265625 | 3.5043 | |
| /usr/bin/numfmt | 49.5 | 1.15 | 2.3232 | |
| /usr/bin/unshare | 33.8 | 1.23 | 3.6391 | |
| /usr/bin/btrfs-image | 544.0 | 34.7 | 6.3787 | |
| /usr/bin/pnmtopnm | 5.36 | 0.21484375 | 4.0083 | |
| /usr/bin/montage-im6.q16 | 3.74 | 0.1796875 | 4.8045 | |
| /usr/bin/ed | 49.3 | 2.27 | 4.6045 | |
| /usr/bin/pbmtoicon | 4.98 | 0.18359375 | 3.6866 | |
| /usr/bin/fgconsole | 7.7 | 0.29296875 | 3.8048 | |
| /usr/bin/gmake | 260.0 | 13.3 | 5.1154 | |
| /usr/bin/pamperspective | 20.7 | 0.47265625 | 2.2834 | |
| /usr/bin/mt | 60.3 | 2.48 | 4.1128 | |
| /usr/bin/base64 | 30.0 | 0.8515625 | 2.8385 | |
| /usr/bin/chacl | 9.9 | 0.26171875 | 2.6436 | |
| /usr/bin/x86_64-linux-gnu-objcopy | 159.0 | 8.81 | 5.5409 | |
| /usr/bin/llvm-stress-19 | 54.6 | 3.03 | 5.5495 | |
| /usr/bin/epsffit | 8.84 | 0.234375 | 2.6513 | |
| /usr/bin/psidtopgm | 5.35 | 0.234375 | 4.3808 | |
| /usr/bin/strace | 2191.36 | 65.3 | 2.9799 | |
| /usr/bin/manpath | 18.3 | 0.8125 | 4.4399 | |
| /usr/bin/basename | 23.5 | 0.71875 | 3.0585 | |
| /usr/bin/yuvtoppm | 5.82 | 0.21484375 | 3.6915 | |
| /usr/bin/pstree.x11 | 27.6 | 0.87109375 | 3.1561 | |
| /usr/bin/cut | 33.5 | 1.09 | 3.2537 | |
| /usr/bin/mokutil | 51.3 | 1.73 | 3.3723 | |
| /usr/bin/bear | 772.0 | 43.2 | 5.5959 | |
| /usr/bin/journalctl | 73.4 | 1.27 | 1.7302 | |
| /usr/bin/pnmtosgi | 8.37 | 0.46875 | 5.6004 | |
| /usr/bin/sg_timestamp | 14.3 | 0.2421875 | 1.6936 | |
| /usr/bin/gcov-tool-13 | 298.0 | 26.3 | 8.8255 | |
| /usr/bin/pgmmorphconv | 7.24 | 0.30859375 | 4.2623 | |
| /usr/bin/pgmbentley | 4.13 | 0.17578125 | 4.2562 | |
| /usr/bin/ntfsmove | 22.9 | 0.28125 | 1.2282 | |
| /usr/bin/xargs | 55.5 | 2.27 | 4.0901 | |
| /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 | 221.0 | 10.7 | 4.8416 | |
| /usr/lib/x86_64-linux-gnu/libBrokenLocale.so | 3.07 | 0.1484375 | 4.8351 | |
| /usr/lib/x86_64-linux-gnu/libBrokenLocale.so.1 | 3.07 | 0.1484375 | 4.8351 | |
| /usr/lib/x86_64-linux-gnu/libDeployPkg.so.0 | 36.0 | 1.66 | 4.6111 | |
| /usr/lib/x86_64-linux-gnu/libDeployPkg.so.0.0.0 | 36.0 | 1.66 | 4.6111 | |
| /usr/lib/x86_64-linux-gnu/libFLAC.so.12 | 387.0 | 12.9 | 3.3333 | |
| /usr/lib/x86_64-linux-gnu/libFLAC.so.12.1.0 | 387.0 | 12.9 | 3.3333 | |
| /usr/lib/x86_64-linux-gnu/libGL.so.1 | 529.0 | 5.61 | 1.0605 | |
| /usr/lib/x86_64-linux-gnu/libGL.so.1.7.0 | 529.0 | 5.61 | 1.0605 | |
| /usr/lib/x86_64-linux-gnu/libGLX.so.0 | 191.0 | 5.08 | 2.6597 | |
| /usr/lib/x86_64-linux-gnu/libGLX.so.0.0.0 | 191.0 | 5.08 | 2.6597 | |
| /usr/lib/x86_64-linux-gnu/libGLX_indirect.so.0 | 440.0 | 38.6 | 8.7727 | |
| /usr/lib/x86_64-linux-gnu/libGLX_mesa.so.0 | 440.0 | 38.6 | 8.7727 | |
| /usr/lib/x86_64-linux-gnu/libGLX_mesa.so.0.0.0 | 440.0 | 38.6 | 8.7727 | |
| /usr/lib/x86_64-linux-gnu/libGLdispatch.so.0 | 724.0 | 2.49 | 0.3439 | |
| /usr/lib/x86_64-linux-gnu/libGLdispatch.so.0.0.0 | 724.0 | 2.49 | 0.3439 | |
| /usr/lib/x86_64-linux-gnu/libICE.so.6 | 105.0 | 6.0 | 5.7143 | |
| /usr/lib/x86_64-linux-gnu/libICE.so.6.3.0 | 105.0 | 6.0 | 5.7143 | |
| /usr/lib/x86_64-linux-gnu/libIex-3_1.so.30 | 514.0 | 59.2 | 11.5175 | |
| /usr/lib/x86_64-linux-gnu/libIex-3_1.so.30.5.1 | 514.0 | 59.2 | 11.5175 | |
| /usr/lib/x86_64-linux-gnu/libIlmThread-3_1.so.30 | 24.7 | 2.46 | 9.9595 | |
| /usr/lib/x86_64-linux-gnu/libIlmThread-3_1.so.30.5.1 | 24.7 | 2.46 | 9.9595 | |
| /usr/lib/x86_64-linux-gnu/libImath-3_1.so.29 | 299.0 | 1.6 | 0.5351 | |
| /usr/lib/x86_64-linux-gnu/libImath-3_1.so.29.8.0 | 299.0 | 1.6 | 0.5351 | |
| /usr/lib/x86_64-linux-gnu/libLLVM-18.so | 120832.0 | 4771.84 | 3.9492 | |
| /usr/lib/x86_64-linux-gnu/libLLVM-19.so | 125952.0 | 4976.64 | 3.9512 | |
| /usr/lib/x86_64-linux-gnu/libLLVM.so.18.1 | 120832.0 | 4771.84 | 3.9492 | |
| /usr/lib/x86_64-linux-gnu/libLLVM.so.19.1 | 125952.0 | 4976.64 | 3.9512 | |
| /usr/lib/x86_64-linux-gnu/libLerc.so.4 | 528.0 | 17.7 | 3.3523 | |
| /usr/lib/x86_64-linux-gnu/libMagickCore-6.Q16.so.7 | 2867.2 | 82.8 | 2.8878 | |
| /usr/lib/x86_64-linux-gnu/libMagickCore-6.Q16.so.7.0.0 | 2867.2 | 82.8 | 2.8878 | |
| /usr/lib/x86_64-linux-gnu/libMagickWand-6.Q16.so.7 | 1218.56 | 30.7 | 2.5194 | |
| /usr/lib/x86_64-linux-gnu/libMagickWand-6.Q16.so.7.0.0 | 1218.56 | 30.7 | 2.5194 | |
| /usr/lib/x86_64-linux-gnu/libOpenEXR-3_1.so.30 | 3082.24 | 101.0 | 3.2768 | |
| /usr/lib/x86_64-linux-gnu/libOpenEXR-3_1.so.30.5.1 | 3082.24 | 101.0 | 3.2768 | |
| /usr/lib/x86_64-linux-gnu/libOpenEXRCore-3_1.so.30 | 481.0 | 15.6 | 3.2432 | |
| /usr/lib/x86_64-linux-gnu/libOpenEXRCore-3_1.so.30.5.1 | 481.0 | 15.6 | 3.2432 | |
| /usr/lib/x86_64-linux-gnu/libOpenEXRUtil-3_1.so.30 | 189.0 | 13.9 | 7.3545 | |
| /usr/lib/x86_64-linux-gnu/libOpenEXRUtil-3_1.so.30.5.1 | 189.0 | 13.9 | 7.3545 | |
| /usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0 | 1894.4 | 144.0 | 7.6014 | |
| /usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0.3000.0 | 1894.4 | 144.0 | 7.6014 | |
| /usr/lib/x86_64-linux-gnu/libSM.so.6 | 28.8 | 1.96 | 6.8056 | |
| /usr/lib/x86_64-linux-gnu/libSM.so.6.0.1 | 28.8 | 1.96 | 6.8056 | |
| /usr/lib/x86_64-linux-gnu/libVkLayer_INTEL_nullhw.so | 362.0 | 10.1 | 2.7901 | |
| /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so | 61.5 | 5.92 | 9.626 | |
| /usr/lib/x86_64-linux-gnu/libVkLayer_MESA_overlay.so | 887.0 | 40.9 | 4.611 | |
| /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1 | 2.14 | 0.12890625 | 6.0237 | |
| /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0 | 2.14 | 0.12890625 | 6.0237 | |
| /usr/lib/x86_64-linux-gnu/libX11.so.6 | 1259.52 | 70.3 | 5.5815 | |
| /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0 | 1259.52 | 70.3 | 5.5815 | |
| /usr/lib/x86_64-linux-gnu/libXau.so.6 | 8.71 | 0.640625 | 7.3551 | |
| /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0 | 8.71 | 0.640625 | 7.3551 | |
| /usr/lib/x86_64-linux-gnu/libXaw.so.7 | 460.0 | 31.4 | 6.8261 | |
| /usr/lib/x86_64-linux-gnu/libXaw7.so.7 | 460.0 | 31.4 | 6.8261 | |
| /usr/lib/x86_64-linux-gnu/libXaw7.so.7.0.0 | 460.0 | 31.4 | 6.8261 | |
| /usr/lib/x86_64-linux-gnu/libXcomposite.so.1 | 7.2 | 0.6796875 | 9.4401 | |
| /usr/lib/x86_64-linux-gnu/libXcomposite.so.1.0.0 | 7.2 | 0.6796875 | 9.4401 | |
| /usr/lib/x86_64-linux-gnu/libXcursor.so.1 | 36.4 | 3.48 | 9.5604 | |
| /usr/lib/x86_64-linux-gnu/libXcursor.so.1.0.2 | 36.4 | 3.48 | 9.5604 | |
| /usr/lib/x86_64-linux-gnu/libXdamage.so.1 | 6.88 | 0.5859375 | 8.5165 | |
| /usr/lib/x86_64-linux-gnu/libXdamage.so.1.1.0 | 6.88 | 0.5859375 | 8.5165 | |
| /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 | 17.4 | 1.65 | 9.4828 | |
| /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0 | 17.4 | 1.65 | 9.4828 | |
| /usr/lib/x86_64-linux-gnu/libXext.so.6 | 68.3 | 7.82 | 11.4495 | |
| /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0 | 68.3 | 7.82 | 11.4495 | |
| /usr/lib/x86_64-linux-gnu/libXfixes.so.3 | 18.9 | 2.14 | 11.3228 | |
| /usr/lib/x86_64-linux-gnu/libXfixes.so.3.1.0 | 18.9 | 2.14 | 11.3228 | |
| /usr/lib/x86_64-linux-gnu/libXi.so.6 | 63.8 | 4.89 | 7.6646 | |
| /usr/lib/x86_64-linux-gnu/libXi.so.6.1.0 | 63.8 | 4.89 | 7.6646 | |
| /usr/lib/x86_64-linux-gnu/libXinerama.so.1 | 6.81 | 0.56640625 | 8.3173 | |
| /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0 | 6.81 | 0.56640625 | 8.3173 | |
| /usr/lib/x86_64-linux-gnu/libXmu.so.6 | 100.0 | 6.38 | 6.38 | |
| /usr/lib/x86_64-linux-gnu/libXmu.so.6.2.0 | 100.0 | 6.38 | 6.38 | |
| /usr/lib/x86_64-linux-gnu/libXmuu.so.1 | 12.4 | 0.52734375 | 4.2528 | |
| /usr/lib/x86_64-linux-gnu/libXmuu.so.1.0.0 | 12.4 | 0.52734375 | 4.2528 | |
| /usr/lib/x86_64-linux-gnu/libXpm.so.4 | 69.8 | 3.31 | 4.7421 | |
| /usr/lib/x86_64-linux-gnu/libXpm.so.4.11.0 | 69.8 | 3.31 | 4.7421 | |
| /usr/lib/x86_64-linux-gnu/libXrandr.so.2 | 40.1 | 3.82 | 9.5262 | |
| /usr/lib/x86_64-linux-gnu/libXrandr.so.2.2.0 | 40.1 | 3.82 | 9.5262 | |
| /usr/lib/x86_64-linux-gnu/libXrender.so.1 | 36.2 | 2.62 | 7.2376 | |
| /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0 | 36.2 | 2.62 | 7.2376 | |
| /usr/lib/x86_64-linux-gnu/libXss.so.1 | 8.7 | 0.765625 | 8.8003 | |
| /usr/lib/x86_64-linux-gnu/libXss.so.1.0.0 | 8.7 | 0.765625 | 8.8003 | |
| /usr/lib/x86_64-linux-gnu/libXt.so.6 | 415.0 | 29.5 | 7.1084 | |
| /usr/lib/x86_64-linux-gnu/libXt.so.6.0.0 | 415.0 | 29.5 | 7.1084 | |
| /usr/lib/x86_64-linux-gnu/libXtst.so.6 | 19.7 | 1.84 | 9.3401 | |
| /usr/lib/x86_64-linux-gnu/libXtst.so.6.1.0 | 19.7 | 1.84 | 9.3401 | |
| /usr/lib/x86_64-linux-gnu/libXv.so.1 | 16.4 | 1.52 | 9.2683 | |
| /usr/lib/x86_64-linux-gnu/libXv.so.1.0.0 | 16.4 | 1.52 | 9.2683 | |
| /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1 | 16.7 | 1.31 | 7.8443 | |
| /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1.0.0 | 16.7 | 1.31 | 7.8443 | |
| /usr/lib/x86_64-linux-gnu/libaa.so.1 | 123.0 | 4.85 | 3.9431 | |
| /usr/lib/x86_64-linux-gnu/libaa.so.1.0.4 | 123.0 | 4.85 | 3.9431 | |
| /usr/lib/x86_64-linux-gnu/libabsl_bad_any_cast_impl.so.20220623 | 4.01 | 0.2109375 | 5.2603 | |
| /usr/lib/x86_64-linux-gnu/libabsl_bad_any_cast_impl.so.20220623.0.0 | 4.01 | 0.2109375 | 5.2603 | |
| /usr/lib/x86_64-linux-gnu/libabsl_bad_optional_access.so.20220623 | 4.11 | 0.2109375 | 5.1323 | |
| /usr/lib/x86_64-linux-gnu/libabsl_bad_optional_access.so.20220623.0.0 | 4.11 | 0.2109375 | 5.1323 | |
| /usr/lib/x86_64-linux-gnu/libabsl_bad_variant_access.so.20220623 | 4.31 | 0.23828125 | 5.5286 | |
| /usr/lib/x86_64-linux-gnu/libabsl_bad_variant_access.so.20220623.0.0 | 4.31 | 0.23828125 | 5.5286 | |
| /usr/lib/x86_64-linux-gnu/libabsl_base.so.20220623 | 12.6 | 0.9921875 | 7.8745 | |
| /usr/lib/x86_64-linux-gnu/libabsl_base.so.20220623.0.0 | 12.6 | 0.9921875 | 7.8745 | |
| /usr/lib/x86_64-linux-gnu/libabsl_city.so.20220623 | 4.73 | 0.2421875 | 5.1202 | |
| /usr/lib/x86_64-linux-gnu/libabsl_city.so.20220623.0.0 | 4.73 | 0.2421875 | 5.1202 | |
| /usr/lib/x86_64-linux-gnu/libabsl_civil_time.so.20220623 | 17.2 | 0.82421875 | 4.792 | |
| /usr/lib/x86_64-linux-gnu/libabsl_civil_time.so.20220623.0.0 | 17.2 | 0.82421875 | 4.792 | |
| /usr/lib/x86_64-linux-gnu/libabsl_cord.so.20220623 | 84.0 | 5.33 | 6.3452 | |
| /usr/lib/x86_64-linux-gnu/libabsl_cord.so.20220623.0.0 | 84.0 | 5.33 | 6.3452 | |
| /usr/lib/x86_64-linux-gnu/libabsl_cord_internal.so.20220623 | 96.9 | 5.73 | 5.9133 | |
| /usr/lib/x86_64-linux-gnu/libabsl_cord_internal.so.20220623.0.0 | 96.9 | 5.73 | 5.9133 | |
| /usr/lib/x86_64-linux-gnu/libabsl_cordz_functions.so.20220623 | 3.72 | 0.23046875 | 6.1954 | |
| /usr/lib/x86_64-linux-gnu/libabsl_cordz_functions.so.20220623.0.0 | 3.72 | 0.23046875 | 6.1954 | |
| /usr/lib/x86_64-linux-gnu/libabsl_cordz_handle.so.20220623 | 10.9 | 0.80859375 | 7.4183 | |
| /usr/lib/x86_64-linux-gnu/libabsl_cordz_handle.so.20220623.0.0 | 10.9 | 0.80859375 | 7.4183 | |
| /usr/lib/x86_64-linux-gnu/libabsl_cordz_info.so.20220623 | 21.2 | 1.24 | 5.8491 | |
| /usr/lib/x86_64-linux-gnu/libabsl_cordz_info.so.20220623.0.0 | 21.2 | 1.24 | 5.8491 | |
| /usr/lib/x86_64-linux-gnu/libabsl_cordz_sample_token.so.20220623 | 4.1 | 0.30078125 | 7.3361 | |
| /usr/lib/x86_64-linux-gnu/libabsl_cordz_sample_token.so.20220623.0.0 | 4.1 | 0.30078125 | 7.3361 | |
| /usr/lib/x86_64-linux-gnu/libabsl_debugging_internal.so.20220623 | 14.2 | 1.28 | 9.0141 | |
| /usr/lib/x86_64-linux-gnu/libabsl_debugging_internal.so.20220623.0.0 | 14.2 | 1.28 | 9.0141 | |
| /usr/lib/x86_64-linux-gnu/libabsl_demangle_internal.so.20220623 | 30.0 | 1.96 | 6.5333 | |
| /usr/lib/x86_64-linux-gnu/libabsl_demangle_internal.so.20220623.0.0 | 30.0 | 1.96 | 6.5333 | |
| /usr/lib/x86_64-linux-gnu/libabsl_examine_stack.so.20220623 | 5.62 | 0.3125 | 5.5605 | |
| /usr/lib/x86_64-linux-gnu/libabsl_examine_stack.so.20220623.0.0 | 5.62 | 0.3125 | 5.5605 | |
| /usr/lib/x86_64-linux-gnu/libabsl_exponential_biased.so.20220623 | 3.14 | 0.203125 | 6.4689 | |
| /usr/lib/x86_64-linux-gnu/libabsl_exponential_biased.so.20220623.0.0 | 3.14 | 0.203125 | 6.4689 | |
| /usr/lib/x86_64-linux-gnu/libabsl_failure_signal_handler.so.20220623 | 9.94 | 0.46875 | 4.7158 | |
| /usr/lib/x86_64-linux-gnu/libabsl_failure_signal_handler.so.20220623.0.0 | 9.94 | 0.46875 | 4.7158 | |
| /usr/lib/x86_64-linux-gnu/libabsl_flags_commandlineflag.so.20220623 | 3.6 | 0.12890625 | 3.5807 | |
| /usr/lib/x86_64-linux-gnu/libabsl_flags_commandlineflag.so.20220623.0.0 | 3.6 | 0.12890625 | 3.5807 | |
| /usr/lib/x86_64-linux-gnu/libabsl_flags_commandlineflag_internal.so.20220623 | 3.29 | 0.1640625 | 4.9867 | |
| /usr/lib/x86_64-linux-gnu/libabsl_flags_commandlineflag_internal.so.20220623.0.0 | 3.29 | 0.1640625 | 4.9867 | |
| /usr/lib/x86_64-linux-gnu/libabsl_flags_config.so.20220623 | 16.1 | 0.8984375 | 5.5804 | |
| /usr/lib/x86_64-linux-gnu/libabsl_flags_config.so.20220623.0.0 | 16.1 | 0.8984375 | 5.5804 | |
| /usr/lib/x86_64-linux-gnu/libabsl_flags_internal.so.20220623 | 29.6 | 2.21 | 7.4662 | |
| /usr/lib/x86_64-linux-gnu/libabsl_flags_internal.so.20220623.0.0 | 29.6 | 2.21 | 7.4662 | |
| /usr/lib/x86_64-linux-gnu/libabsl_flags_marshalling.so.20220623 | 24.4 | 1.71 | 7.0082 | |
| /usr/lib/x86_64-linux-gnu/libabsl_flags_marshalling.so.20220623.0.0 | 24.4 | 1.71 | 7.0082 | |
| /usr/lib/x86_64-linux-gnu/libabsl_flags_parse.so.20220623 | 54.0 | 1.8 | 3.3333 | |
| /usr/lib/x86_64-linux-gnu/libabsl_flags_parse.so.20220623.0.0 | 54.0 | 1.8 | 3.3333 | |
| /usr/lib/x86_64-linux-gnu/libabsl_flags_private_handle_accessor.so.20220623 | 3.86 | 0.24609375 | 6.3755 | |
| /usr/lib/x86_64-linux-gnu/libabsl_flags_private_handle_accessor.so.20220623.0.0 | 3.86 | 0.24609375 | 6.3755 | |
| /usr/lib/x86_64-linux-gnu/libabsl_flags_program_name.so.20220623 | 6.71 | 0.4453125 | 6.6365 | |
| /usr/lib/x86_64-linux-gnu/libabsl_flags_program_name.so.20220623.0.0 | 6.71 | 0.4453125 | 6.6365 | |
| /usr/lib/x86_64-linux-gnu/libabsl_flags_reflection.so.20220623 | 47.3 | 2.51 | 5.3066 | |
| /usr/lib/x86_64-linux-gnu/libabsl_flags_reflection.so.20220623.0.0 | 47.3 | 2.51 | 5.3066 | |
| /usr/lib/x86_64-linux-gnu/libabsl_flags_usage.so.20220623 | 5.94 | 0.3359375 | 5.6555 | |
| /usr/lib/x86_64-linux-gnu/libabsl_flags_usage.so.20220623.0.0 | 5.94 | 0.3359375 | 5.6555 | |
| /usr/lib/x86_64-linux-gnu/libabsl_flags_usage_internal.so.20220623 | 38.2 | 2.16 | 5.6545 | |
| /usr/lib/x86_64-linux-gnu/libabsl_flags_usage_internal.so.20220623.0.0 | 38.2 | 2.16 | 5.6545 | |
| /usr/lib/x86_64-linux-gnu/libabsl_graphcycles_internal.so.20220623 | 16.7 | 1.14 | 6.8263 | |
| /usr/lib/x86_64-linux-gnu/libabsl_graphcycles_internal.so.20220623.0.0 | 16.7 | 1.14 | 6.8263 | |
| /usr/lib/x86_64-linux-gnu/libabsl_hash.so.20220623 | 4.1 | 0.2265625 | 5.5259 | |
| /usr/lib/x86_64-linux-gnu/libabsl_hash.so.20220623.0.0 | 4.1 | 0.2265625 | 5.5259 | |
| /usr/lib/x86_64-linux-gnu/libabsl_hashtablez_sampler.so.20220623 | 9.47 | 0.7890625 | 8.3322 | |
| /usr/lib/x86_64-linux-gnu/libabsl_hashtablez_sampler.so.20220623.0.0 | 9.47 | 0.7890625 | 8.3322 | |
| /usr/lib/x86_64-linux-gnu/libabsl_int128.so.20220623 | 14.6 | 0.64453125 | 4.4146 | |
| /usr/lib/x86_64-linux-gnu/libabsl_int128.so.20220623.0.0 | 14.6 | 0.64453125 | 4.4146 | |
| /usr/lib/x86_64-linux-gnu/libabsl_leak_check.so.20220623 | 2.9 | 0.2265625 | 7.8125 | |
| /usr/lib/x86_64-linux-gnu/libabsl_leak_check.so.20220623.0.0 | 2.9 | 0.2265625 | 7.8125 | |
| /usr/lib/x86_64-linux-gnu/libabsl_log_severity.so.20220623 | 3.33 | 0.2421875 | 7.2729 | |
| /usr/lib/x86_64-linux-gnu/libabsl_log_severity.so.20220623.0.0 | 3.33 | 0.2421875 | 7.2729 | |
| /usr/lib/x86_64-linux-gnu/libabsl_low_level_hash.so.20220623 | 2.7 | 0.13671875 | 5.0637 | |
| /usr/lib/x86_64-linux-gnu/libabsl_low_level_hash.so.20220623.0.0 | 2.7 | 0.13671875 | 5.0637 | |
| /usr/lib/x86_64-linux-gnu/libabsl_malloc_internal.so.20220623 | 14.4 | 0.84765625 | 5.8865 | |
| /usr/lib/x86_64-linux-gnu/libabsl_malloc_internal.so.20220623.0.0 | 14.4 | 0.84765625 | 5.8865 | |
| /usr/lib/x86_64-linux-gnu/libabsl_periodic_sampler.so.20220623 | 3.77 | 0.22265625 | 5.906 | |
| /usr/lib/x86_64-linux-gnu/libabsl_periodic_sampler.so.20220623.0.0 | 3.77 | 0.22265625 | 5.906 | |
| /usr/lib/x86_64-linux-gnu/libabsl_random_distributions.so.20220623 | 9.94 | 0.40234375 | 4.0477 | |
| /usr/lib/x86_64-linux-gnu/libabsl_random_distributions.so.20220623.0.0 | 9.94 | 0.40234375 | 4.0477 | |
| /usr/lib/x86_64-linux-gnu/libabsl_random_internal_distribution_test_util.so.20220623 | 17.2 | 0.875 | 5.0872 | |
| /usr/lib/x86_64-linux-gnu/libabsl_random_internal_distribution_test_util.so.20220623.0.0 | 17.2 | 0.875 | 5.0872 | |
| /usr/lib/x86_64-linux-gnu/libabsl_random_internal_pool_urbg.so.20220623 | 12.5 | 1.05 | 8.4 | |
| /usr/lib/x86_64-linux-gnu/libabsl_random_internal_pool_urbg.so.20220623.0.0 | 12.5 | 1.05 | 8.4 | |
| /usr/lib/x86_64-linux-gnu/libabsl_random_internal_randen.so.20220623 | 4.15 | 0.21875 | 5.2711 | |
| /usr/lib/x86_64-linux-gnu/libabsl_random_internal_randen.so.20220623.0.0 | 4.15 | 0.21875 | 5.2711 | |
| /usr/lib/x86_64-linux-gnu/libabsl_random_internal_randen_hwaes.so.20220623 | 2.26 | 0.12109375 | 5.3581 | |
| /usr/lib/x86_64-linux-gnu/libabsl_random_internal_randen_hwaes.so.20220623.0.0 | 2.26 | 0.12109375 | 5.3581 | |
| /usr/lib/x86_64-linux-gnu/libabsl_random_internal_randen_hwaes_impl.so.20220623 | 3.56 | 0.1796875 | 5.0474 | |
| /usr/lib/x86_64-linux-gnu/libabsl_random_internal_randen_hwaes_impl.so.20220623.0.0 | 3.56 | 0.1796875 | 5.0474 | |
| /usr/lib/x86_64-linux-gnu/libabsl_random_internal_randen_slow.so.20220623 | 8.09 | 0.171875 | 2.1245 | |
| /usr/lib/x86_64-linux-gnu/libabsl_random_internal_randen_slow.so.20220623.0.0 | 8.09 | 0.171875 | 2.1245 | |
| /usr/lib/x86_64-linux-gnu/libabsl_random_internal_seed_material.so.20220623 | 5.22 | 0.28125 | 5.3879 | |
| /usr/lib/x86_64-linux-gnu/libabsl_random_internal_seed_material.so.20220623.0.0 | 5.22 | 0.28125 | 5.3879 | |
| /usr/lib/x86_64-linux-gnu/libabsl_random_seed_gen_exception.so.20220623 | 4.54 | 0.2421875 | 5.3345 | |
| /usr/lib/x86_64-linux-gnu/libabsl_random_seed_gen_exception.so.20220623.0.0 | 4.54 | 0.2421875 | 5.3345 | |
| /usr/lib/x86_64-linux-gnu/libabsl_random_seed_sequences.so.20220623 | 4.96 | 0.2734375 | 5.5129 | |
| /usr/lib/x86_64-linux-gnu/libabsl_random_seed_sequences.so.20220623.0.0 | 4.96 | 0.2734375 | 5.5129 | |
| /usr/lib/x86_64-linux-gnu/libabsl_raw_hash_set.so.20220623 | 5.08 | 0.234375 | 4.6137 | |
| /usr/lib/x86_64-linux-gnu/libabsl_raw_hash_set.so.20220623.0.0 | 5.08 | 0.234375 | 4.6137 | |
| /usr/lib/x86_64-linux-gnu/libabsl_raw_logging_internal.so.20220623 | 7.81 | 0.45703125 | 5.8519 | |
| /usr/lib/x86_64-linux-gnu/libabsl_raw_logging_internal.so.20220623.0.0 | 7.81 | 0.45703125 | 5.8519 | |
| /usr/lib/x86_64-linux-gnu/libabsl_scoped_set_env.so.20220623 | 5.13 | 0.2734375 | 5.3302 | |
| /usr/lib/x86_64-linux-gnu/libabsl_scoped_set_env.so.20220623.0.0 | 5.13 | 0.2734375 | 5.3302 | |
| /usr/lib/x86_64-linux-gnu/libabsl_spinlock_wait.so.20220623 | 3.3 | 0.23828125 | 7.2206 | |
| /usr/lib/x86_64-linux-gnu/libabsl_spinlock_wait.so.20220623.0.0 | 3.3 | 0.23828125 | 7.2206 | |
| /usr/lib/x86_64-linux-gnu/libabsl_stacktrace.so.20220623 | 5.98 | 0.50390625 | 8.4265 | |
| /usr/lib/x86_64-linux-gnu/libabsl_stacktrace.so.20220623.0.0 | 5.98 | 0.50390625 | 8.4265 | |
| /usr/lib/x86_64-linux-gnu/libabsl_status.so.20220623 | 33.2 | 3.02 | 9.0964 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/usr/bin/env ruby | |
| require 'open3' | |
| # Configuration | |
| BLOATY_PATH = File.expand_path("~/Dev/bloaty/out/release/bloaty") | |
| EXECUTABLE_DIR = "/usr/bin" | |
| SHARED_LIB_DIR = "/usr/lib/x86_64-linux-gnu" | |
| def analyze_file(file_path) | |
| return nil unless File.readable?(file_path) | |
| begin | |
| stdout, stderr, status = Open3.capture3(BLOATY_PATH, file_path) | |
| return nil unless status.success? && !stdout.empty? | |
| # Parse total VM size | |
| total_line = stdout.lines.find { |line| line.include?("TOTAL") } | |
| return nil unless total_line | |
| total_parts = total_line.strip.split | |
| total_vm_str = total_parts[-2] # Second to last column should be VM size | |
| total_vm_kb = parse_size_to_kb(total_vm_str) | |
| return nil unless total_vm_kb && total_vm_kb > 0 | |
| # Parse .eh_frame VM size (avoid matching .eh_frame_hdr) | |
| eh_frame_line = stdout.lines.find { |line| line.match(/\s+\.eh_frame\s+/) } | |
| return nil unless eh_frame_line | |
| eh_frame_parts = eh_frame_line.strip.split | |
| eh_frame_vm_str = eh_frame_parts[-2] # Second to last column should be VM size | |
| eh_frame_vm_kb = parse_size_to_kb(eh_frame_vm_str) | |
| return nil unless eh_frame_vm_kb | |
| ratio = (eh_frame_vm_kb / total_vm_kb * 100).round(4) | |
| { | |
| file: file_path, | |
| total_vm_kb: total_vm_kb, | |
| eh_frame_vm_kb: eh_frame_vm_kb, | |
| ratio: ratio | |
| } | |
| rescue => e | |
| nil | |
| end | |
| end | |
| def parse_size_to_kb(size_str) | |
| return nil if size_str.nil? || size_str.empty? | |
| case size_str | |
| when /^(\d+\.?\d*)Ki$/ | |
| $1.to_f | |
| when /^(\d+\.?\d*)Mi$/ | |
| $1.to_f * 1024 | |
| when /^(\d+\.?\d*)Gi$/ | |
| $1.to_f * 1024 * 1024 | |
| when /^(\d+\.?\d*)$/ | |
| $1.to_f / 1024 # Assume bytes, convert to KB | |
| else | |
| nil | |
| end | |
| end | |
| def scan_directory(dir, pattern = nil, max_files = 200) | |
| return [] unless Dir.exist?(dir) | |
| files = if pattern | |
| Dir.glob(File.join(dir, pattern)).select { |f| File.file?(f) } | |
| else | |
| Dir.entries(dir).reject { |f| f.start_with?('.') }.map { |f| File.join(dir, f) }.select { |f| File.file?(f) && File.executable?(f) } | |
| end | |
| files.first(max_files) | |
| rescue => e | |
| STDERR.puts "Error scanning #{dir}: #{e.message}" | |
| [] | |
| end | |
| def process_files(files, description) | |
| STDERR.puts "Scanning #{description}..." | |
| STDERR.puts "Found #{files.length} #{description}" | |
| results = [] | |
| files.each do |file| | |
| STDERR.puts "Analyzing: #{file}" | |
| result = analyze_file(file) | |
| if result | |
| results << result | |
| puts "#{result[:file]},#{result[:total_vm_kb]},#{result[:eh_frame_vm_kb]},#{result[:ratio]}" | |
| else | |
| STDERR.puts " No .eh_frame found or error" | |
| end | |
| end | |
| results | |
| end | |
| # Main execution | |
| puts "Scanning .eh_frame VM size distribution..." | |
| puts "File,Total_VM_KB,EH_Frame_VM_KB,EH_Frame_Ratio" | |
| results = [] | |
| # Scan executables in /usr/bin | |
| executables = scan_directory(EXECUTABLE_DIR) | |
| results.concat(process_files(executables, "executables in #{EXECUTABLE_DIR}")) | |
| # Scan shared objects in /usr/lib/x86_64-linux-gnu | |
| shared_objects = scan_directory(SHARED_LIB_DIR, "*.so*") | |
| results.concat(process_files(shared_objects, "shared objects in #{SHARED_LIB_DIR}")) | |
| # Print summary statistics | |
| STDERR.puts "\n=== Summary Statistics ===" | |
| STDERR.puts "Total files analyzed: #{results.length}" | |
| if results.any? | |
| ratios = results.map { |r| r[:ratio] } | |
| STDERR.puts "EH_Frame ratio statistics:" | |
| STDERR.puts " Min: #{ratios.min.round(4)}%" | |
| STDERR.puts " Max: #{ratios.max.round(4)}%" | |
| STDERR.puts " Mean: #{(ratios.sum / ratios.length).round(4)}%" | |
| STDERR.puts " Median: #{ratios.sort[ratios.length/2].round(4)}%" | |
| # Distribution buckets | |
| STDERR.puts "\nDistribution:" | |
| buckets = [0, 5, 10, 15, 20, 25, 30, 40, 50, 100] | |
| buckets.each_with_index do |bucket, i| | |
| next_bucket = buckets[i + 1] | |
| break unless next_bucket | |
| count = ratios.count { |r| r >= bucket && r < next_bucket } | |
| STDERR.puts " #{bucket}%-#{next_bucket}%: #{count} files" | |
| end | |
| end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment