Профайлинг при свободном процессоре
От: Аноним  
Дата: 27.03.12 10:43
Оценка:
Приложение основательно тормозит, но при этом не использует процессор. В программе присутствует извлечение файлов из zip архива, однако его скорость ни в какой сравнение не идет с обычным разархивированием. Возможно тормоза при обращении к базам данных Access — опять же, базы небольшие, процессор свободен.
Как такую ситуацию можно отпрофайлить? Профайлеры типа AMD Codeanalysis, sampling profile — дают профайл по процессору — но поскольку процессор почти не используется — там нет никакой полезной информации, нужно как то отследить в каких функциях программа проводит больше всего времени в режиме ожидания. Какими интсрументами воспользоваться?
Re: Профайлинг при свободном процессоре
От: Аноним  
Дата: 27.03.12 10:47
Оценка:
AQTime
Re: Профайлинг при свободном процессоре
От: Тот кто сидит в пруду Россия  
Дата: 27.03.12 12:15
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Приложение основательно тормозит, но при этом не использует процессор. В программе присутствует извлечение файлов из zip архива, однако его скорость ни в какой сравнение не идет с обычным разархивированием. Возможно тормоза при обращении к базам данных Access — опять же, базы небольшие, процессор свободен.

А>Как такую ситуацию можно отпрофайлить? Профайлеры типа AMD Codeanalysis, sampling profile — дают профайл по процессору — но поскольку процессор почти не используется — там нет никакой полезной информации, нужно как то отследить в каких функциях программа проводит больше всего времени в режиме ожидания. Какими интсрументами воспользоваться?

Насколько помню (давно не пользовался), AMD Codeanalyst в такой ситуации вполне может помочь, но надо найти и нажать малозаметную кнопку CSS.
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Re[2]: Профайлинг при свободном процессоре
От: Аноним  
Дата: 27.03.12 12:22
Оценка:
Здравствуйте, Аноним, Вы писали:

А>AQTime

Если делаю perfomance profile — все то же самое. Показывает узкие места по процессору, но проблема то не в этом. Как в AQTime профайлить нахождение в функции с ожиданием, а не только по занятому процессору. При ожидании сэмплов в приложении нету, и это время в профайле не фигурирует.
Re[2]: Профайлинг при свободном процессоре
От: Аноним  
Дата: 27.03.12 15:10
Оценка:
Здравствуйте, Тот кто сидит в пруду, Вы писали:

ТКС>Здравствуйте, Аноним, Вы писали:


А>>Приложение основательно тормозит, но при этом не использует процессор. В программе присутствует извлечение файлов из zip архива, однако его скорость ни в какой сравнение не идет с обычным разархивированием. Возможно тормоза при обращении к базам данных Access — опять же, базы небольшие, процессор свободен.

А>>Как такую ситуацию можно отпрофайлить? Профайлеры типа AMD Codeanalysis, sampling profile — дают профайл по процессору — но поскольку процессор почти не используется — там нет никакой полезной информации, нужно как то отследить в каких функциях программа проводит больше всего времени в режиме ожидания. Какими интсрументами воспользоваться?

ТКС>Насколько помню (давно не пользовался), AMD Codeanalyst в такой ситуации вполне может помочь, но надо найти и нажать малозаметную кнопку CSS.


Если приложение не использует процессор а ждет файловую систему к примеру — оно не фигурирует в профайле, в CSS в том числе.
Re: Профайлинг при свободном процессоре
От: watch-maker  
Дата: 27.03.12 17:25
Оценка:
Здравствуйте, Аноним, Вы писали:

А>sampling profile — дают профайл по процессору — но поскольку процессор почти не используется — там нет никакой полезной информации

Верно, просто не нужно использовать sampling profiler. Вместо него подойдёт instrumenting profiler.

Такой метод позволит получить для каждой функции полное время её работы. При этом можно при желании даже без профайлера обойтись.
Хотя, конечно, специализированная программа будет удобнее. Особенно если она позволит сравнить результаты, полученные обоими техниками, что сразу же выделит проблемные функции, которые не используют процессор и при этом долго заблокированы чем-то.
Re[2]: Профайлинг при свободном процессоре
От: Аноним  
Дата: 28.03.12 10:51
Оценка:
Здравствуйте, watch-maker, Вы писали:

WM>Здравствуйте, Аноним, Вы писали:


А>>sampling profile — дают профайл по процессору — но поскольку процессор почти не используется — там нет никакой полезной информации

WM>Верно, просто не нужно использовать sampling profiler. Вместо него подойдёт instrumenting profiler.

WM>Такой метод позволит получить для каждой функции полное время её работы. При этом можно при желании даже без профайлера обойтись.

WM>Хотя, конечно, специализированная программа будет удобнее. Особенно если она позволит сравнить результаты, полученные обоими техниками, что сразу же выделит проблемные функции, которые не используют процессор и при этом долго заблокированы чем-то.

Вот тут то и непонятки с тулами. AMD — понятно, он sampling. Но AQTime — чтото интструменталит в рантайме, но результаты почему то аналогичные. Может нужны какието специфические настройки?
Внутренние кастом-трассировки не вариант, прога достаточно большая и сложная, узких мест на глаз выделить не могу.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.