Π Π΅Π»ΠΈΠ· Valgrind 3.15.0, инструмСнтария для выявлСния ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ

ДоступСн Ρ€Π΅Π»ΠΈΠ· Valgrind 3.15.0, инструмСнтария для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ, обнаруТСния ΡƒΡ‚Π΅Ρ‡Π΅ΠΊ памяти ΠΈ профилирования. Π Π°Π±ΠΎΡ‚Π° Valgrind поддСрТиваСтся для ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ Linux (X86, AMD64, ARM32, ARM64, PPC32, PPC64BE, PPC64LE, S390X, MIPS32, MIPS64), Android (ARM, ARM64, MIPS32, X86), Solaris (X86, AMD64) ΠΈ macOS (AMD64).

Π’ Π½ΠΎΠ²ΠΎΠΉ вСрсии:

  • Π—Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚Π°Π½ ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ инструмСнт профилирования ΠΊΡƒΡ‡ΠΈ DHAT (Dynamic Heap Analysis Tool), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΎΡ‚ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ всС запросы Π½Π° распрСдСлСния памяти Π² ΠΊΡƒΡ‡Π΅ ΠΈ Π²Ρ‹ΡΠ²ΠΈΡ‚ΡŒ ΡƒΡ‚Π΅Ρ‡ΠΊΠΈ рСсурсов, мСста излишнС большой активности ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΊΡƒΡ‡Π΅ΠΉ, Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ выдСлСния памяти, краткосрочныС выдСлСния ΠΈ нСэффСктивноС Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΊΡƒΡ‡Π΅. Из ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΎΠΊ DHAT Π²ΠΊΠ»ΡŽΡ‡Ρ‘Π½ Π² ΡˆΡ‚Π°Ρ‚Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ инструмСнтов Valgrind (для запуска Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ†ΠΈΡŽ «—tool=dhat» вмСсто «—tool=exp-dhat»).

    НаиболСС Π·Π°ΠΌΠ΅Ρ‚Π½Ρ‹ΠΌ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ΠΌ стало Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π² DHAT графичСского интСрфСйса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ отслСТиваСмой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ DHAT Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π½Π° экран Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ Π²Ρ‹ΠΆΠΈΠΌΠΊΡƒ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½Ρ‹Ρ… свСдСний, Π° ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΎΡ‚Ρ‡Ρ‘Ρ‚ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ профилирования записываСт Π² Ρ„Π°ΠΉΠ». Π”Π°Π½Π½Ρ‹Π΅ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π΅ Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² записи, Π° ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π² Π²ΠΈΠ΄Π΅ Π΄Π΅Ρ€Π΅Π²ΡŒΠ΅Π² трассировки стСка. Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΎ число ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ отслСТиваСмых ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². Для просмотра записанного ΠΎΡ‚Ρ‡Ρ‘Ρ‚Π° ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ просмотрщик dh_view.html, запускаСмый Π² web-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅;

    Π Π΅Π»ΠΈΠ· Valgrind 3.15.0, инструмСнтария для выявлСния ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ

  • Для систСм amd64 (x86_64) обСспСчСна ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Ρ… Π½Π°Π±ΠΎΡ€ΠΎΠ² инструкций RDRAND ΠΈ F16C;
  • Π’ Cachegrind ΠΈ Callgrind ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π° новая опция «—show-percs», Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‰Π°Ρ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ счётчиков Π² ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Π°Ρ…;
  • Π’ Massif для Linux, Android ΠΈ Solari Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ€Π΅ΠΆΠΈΠΌ «—read-inline-info», для macOS ΠΏΠΎ ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ трСбуСтся явноС ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ «—read-inline-info=yes»;
  • Π’ Memcheck ΠΏΡ€ΠΈ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠΈ ΠΎΠΏΡ†ΠΈΠΈ «—xtree-leak=yes» (Π²Ρ‹Π²ΠΎΠ΄ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΡƒΡ‚Π΅Ρ‡Π΅ΠΊ памяти Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ xtree) Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ автоматичСски Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ опция «—show-leak-kinds=all». ΠŸΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠΎ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΡŽ Π»ΠΎΠΆΠ½Ρ‹Ρ… срабатываний;
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° опция «—show-error-list=no|yes», Π° Ρ‚Π°ΠΊΠΆΠ΅ опция «-s» эквивалСнтная «—show-error-list=yes» для отобраТСния списка выявлСнных ошибок послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ выполнСния. Π Π°Π½Π΅Π΅, ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ список выводился Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ‹Π²ΠΎΠ΄Π° «-v -v», Π½ΠΎ Π²Ρ‹Π²ΠΎΠ΄ Π² Ρ‚Π°ΠΊΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ захламлялся большим ΠΎΠ±ΡŠΡ‘ΠΌΠΎΠΌ излишнСй ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ