Massif Visualizer & KCacheGrind
Nov. 22nd, 2011 11:48 amЩоб там не казали про кеди, але є у них годних продуктів. Вчора вийшла чергова версія прекрасного Massif Visualizer - утиліти яка візуалізує результати роботи valgrind --tool=massif.
Це утиліта що дозволяє переглянути у динаміці споживання пам’яті програмою і знайти точки аллокацій. Звісно, можна використати і ms_print що виведе всі ці результати текстом і ascii-art, але тут графіки красивіше.

Інша така утиліта - KCacheGrind. Вміє візуалізувати результати роботи valgrind --tool=cachegrind і valgrind --tool=callgrind. Перша показує статистику роботи з процесорним кешем, а друга - графи викликів і час виконання окремих вузлів. Оригінальний консольний аналог - cg_annotate.

Valgrind, у купі з cppcheck і gprof - три основні утиліти які я використовую у передрелізному тестуванні. Крім них я використовую кілька основних компіляторів з високим warning level. Це gcc-2.x, gcc-3.x, gcc-4.x і llvm (clang). Недавно до них приєднався EKOPath. Від gcc-2.x я збираюсь відмовитись, бо він погано підтримує навіть старий стандарт C++ і його вже неможливо зібрати у мене на машині (його код не підтримується сучасними компіляторами). Також хочу додати до списку icc і Open64. З icc поки не зростається - у нього завеликий рівень false positive, багато попередженнь треба відключати вручну (-wd981 - "operands are evaluated in unspecified order", -wd383 - "value copied to temporary, reference to temporary used").
Це утиліта що дозволяє переглянути у динаміці споживання пам’яті програмою і знайти точки аллокацій. Звісно, можна використати і ms_print що виведе всі ці результати текстом і ascii-art, але тут графіки красивіше.

Інша така утиліта - KCacheGrind. Вміє візуалізувати результати роботи valgrind --tool=cachegrind і valgrind --tool=callgrind. Перша показує статистику роботи з процесорним кешем, а друга - графи викликів і час виконання окремих вузлів. Оригінальний консольний аналог - cg_annotate.

Valgrind, у купі з cppcheck і gprof - три основні утиліти які я використовую у передрелізному тестуванні. Крім них я використовую кілька основних компіляторів з високим warning level. Це gcc-2.x, gcc-3.x, gcc-4.x і llvm (clang). Недавно до них приєднався EKOPath. Від gcc-2.x я збираюсь відмовитись, бо він погано підтримує навіть старий стандарт C++ і його вже неможливо зібрати у мене на машині (його код не підтримується сучасними компіляторами). Також хочу додати до списку icc і Open64. З icc поки не зростається - у нього завеликий рівень false positive, багато попередженнь треба відключати вручну (-wd981 - "operands are evaluated in unspecified order", -wd383 - "value copied to temporary, reference to temporary used").