LINUX.ORG.RU

как получить детальную статистику о куске кода

 ,


1

6

Сабж

Допустим, вот есть функция какая-то

Хочется узнать, сколько при ее выполнении потратилось на стеке, на куче, сколько каких операций произошло, с разным уровнем оптимизации

Интересно все это из соображения, чем один метод по затратам отличается от другого

Как это сделать без ручного чтения кода?

★★★★☆

Valgrind внимательно изучал? У него параметров и возможностей чуть больше чем дохрена.

с разным уровнем оптимизации

Могу подарить моток изоленты — морду обматывать чтобы не лопнула :) Здесь ты явно много хочешь...

Deleted
()

никак. вот и поэтому тоже мы пилим кисий язык.

ckotinko ☆☆☆
()

perf умеет аннотировать код.

Остальное видимо в интеловских студиях и codexl всяких. Надо как то пнуть себя их потыкать, грят они торт.

pon4ik ★★★★★
()

Для профайлинга и дебажения тулзы есть. Что тебе осталось, так это прикинуть, какой инфы в каком виде хочешь.

Bfgeshka ★★★★★
()
Ответ на: комментарий от Deleted

Могу подарить моток изоленты — морду обматывать чтобы не лопнула :) Здесь ты явно много хочешь...

Ну мануальный подход никто не отменял: гоняешь версии с разными флагами и потом ручками сравниваешь.

ZERG ★★★★★
()
Ответ на: комментарий от ZERG

Ну ТС явно хочет автоматизации, причём не наколеночной. Но «вытаскивать» ситуацию из задницы играясь флагами компилятора это совсем никуда не годится. Впрочем, он явист. Возможно у них так принято. А от привычки никуда не денешься. Дай мне Лисп и я всё равно буду на нём писать как на Си :)

Deleted
()
Ответ на: комментарий от Deleted

Старая шутка про Fortran программистов :)

Я думаю, что для таких вещей нужна специально обученная обезъянаен специально обученный человек, который знает, как это работает.

Я вот просто смотрю на О-сложность алгоритма (но я и не программист, а физик), дальнейшая оптимизация может быть простой тратой времени. Практика показывает, что месяц, потраченный на такую оптимизацию и отладку, стоит гораздо большего количества процессорного времени.

ZERG ★★★★★
()
Ответ на: комментарий от ZERG

мне нужны именно отдельные байтики, точные их значения. Алгоритмическая часть вопроса значения не имеет вообще

нужно для тестирования особенностей поведения C++ компилятора.

взял две инструкции, поменял местами - и хочется понять, не потратилось ли в таком виде на один int больше, потому что какая-то оптимизация выпала

это можно понять чтением сгенеренного кода, а хотелось бы автоматически

stevejobs ★★★★☆
() автор топика

Тыж вроде жабист? Не знаешь о профайлерах? Или не знаешь именно о сишных профайлерах?

Deleted
()
Ответ на: комментарий от andreyu

С языка снял, теперь ОПу нужно это всё в скрипт завернуть.

ZERG ★★★★★
()
Ответ на: комментарий от stevejobs

gprof и упомянутый выше valgrind.

взял две инструкции, поменял местами - и хочется понять, не потратилось ли в таком виде на один int больше

Но, боюсь, для таких целей они не помогут. Тут только самому смотреть. Можно ещё скриптик какой написать, который сравнивает diff'ом ассемблерный выхлоп разных вариантов по размеру и другим критериям. Но в общем случае всё равно смотреть придётся.

aureliano15 ★★
()

Допустим, вот есть функция какая-то

Хочется узнать, сколько при ее выполнении потратилось на стеке, на куче, сколько каких операций произошло, с разным уровнем оптимизации

То есть ты хочешь нахаляву получить то, что приходит с годами практического опыта и вкуривания стандарта (и то не ко всем). Збс упрлс.

Virtuos86 ★★★★★
()

code xl для amd, vtune для intel

нашёл где спросить: программисты в /development не ходят

/thread

anonymous
()
Ответ на: комментарий от ZERG

Я вот просто смотрю на О-сложность алгоритма (но я и не программист, а физик), дальнейшая оптимизация может быть простой тратой времени.

Физику вообще не нужно знать слов «О-большое» и иже с ним.

А вот если вы совмещаете должность физика и прикладного программиста, то представления о численных методах и принципах оптимизации иметь нужно. И это далеко не только О-нотация.

Crocodoom ★★★★★
()

Вообще лучше тулы чем intel vtune(ну или codexl, если у тебя всю) тебе не найти. Там и кеш промахи показывает на всех уровнях Кеша, и показывает, как отработал предсказатель ветвлений. Очень крутая штука

zamazan4ik ★★
()

Как это сделать без ручного чтения кода?

Дык сам напиши RAII-вставками через макрос :D

slackwarrior ★★★★★
()
Ответ на: комментарий от anonymous

я — мимокрокодил

С какой регулярностью нужно мимокрокодилить, чтобы обоснованно делать вывод, что

программисты в /development не ходят

?

Virtuos86 ★★★★★
()
Ответ на: комментарий от Crocodoom

Физику вообще не нужно знать слов «О-большое» и иже с ним.

Это так, может быть, во времена Тьюринга было, а сейчас есть направления CS, в которых без фундаментальных знаний физики делать нечего, и соотв. проще физику осилить «O-большое», чем программисту осилить квантовую механику.

seiken ★★★★★
()
Ответ на: комментарий от Crocodoom

Физику вообще не нужно знать слов «О-большое» и иже с ним.

Это только кажется, это же базовый матан.

А вот если вы совмещаете должность физика и прикладного программиста, то представления о численных методах и принципах оптимизации иметь нужно. И это далеко не только О-нотация.

Да, но к моему сожалению, никто не платит за моё потраченное время, поэтому использую те методы, которые не требуют вдумчивого вчитывания.

ZERG ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.