как запустить профайлер в студии
От: ChMaker Россия  
Дата: 30.08.06 13:51
Оценка:
доброго времени суток, народ. есть такой вопрос, сорри конечно если оффтоп, но что поделеаешь.. вот понадобилось исплоьзовать в студии такой инструмент, как профайлер, собственно интересует где в программе используется все процессорное время, то есть вычленить метод, который является критичным и занимает все процессорное времяи ресурсы. так вот собственно сабж, как получить доступ к профайлеру в студии- надо загрузитьего как отдельную утилиту или дже он существует непостредственно в самой студии? и желательно надыбать какой нить хелп по то му как им пользоваться. мсдн конечно же читал, там что то совсем мало про это вообще написано. так что кто чем может — помогите.
Re: как запустить профайлер в студии
От: febus Германия  
Дата: 30.08.06 20:59
Оценка:
Здравствуйте, ChMaker, Вы писали:
так вот собственно сабж, как получить доступ к профайлеру в студии- надо загрузитьего как отдельную утилиту или дже он существует непостредственно в самой студии? ... так что кто чем может — помогите.

Так вы помоглии бы себе помочь, скажите какая версия студии. Ни в одной из студий встроенного профайлера нет.
Если это 6-ка, то с ней шли в комлекте консольные утилиты и батники для их вызова.
А если .НЕТ, то там в комлекте профайлера вообще нет и старый не подойдет.
Но выход есть, можно скачать Compuware Profiler community edition, так кажется оно называется. Я сам исппользовал — классная вещь, очень красивые картинки .
Ну и наконец гвоздь программы: интегрированный профайлер в самой студии: Нажатие клавиши "Пауза" во время выполнения программы в студии как раз и перемещает вас в "метод, который является критичным и занимает все процессорное время и ресурсы".
Выбирайте
Re: как запустить профайлер в студии
От: alexeiz  
Дата: 30.08.06 21:33
Оценка:
Здравствуйте, ChMaker, Вы писали:

CM>доброго времени суток, народ. есть такой вопрос, сорри конечно если оффтоп, но что поделеаешь.. вот понадобилось исплоьзовать в студии такой инструмент, как профайлер, собственно интересует где в программе используется все процессорное время, то есть вычленить метод, который является критичным и занимает все процессорное времяи ресурсы. так вот собственно сабж, как получить доступ к профайлеру в студии- надо загрузитьего как отдельную утилиту или дже он существует непостредственно в самой студии? и желательно надыбать какой нить хелп по то му как им пользоваться. мсдн конечно же читал, там что то совсем мало про это вообще написано. так что кто чем может — помогите.


VS2005 Team Suite включает в себя профайлер. В остальных вариантах VS2005, насколько мне известно, профайлера нет. Запустить его можно через меню Tools->Performance Tools.

Но я бы тебе посоветовал взять trial на 30 дней (или сколько там) профайлера Intel VTune и сделать всё что тебе нужно. VTune лучше, чем профайлер из VS2005.
Re[2]: как запустить профайлер в студии
От: ChMaker Россия  
Дата: 31.08.06 07:30
Оценка:
Здравствуйте, alexeiz, Вы писали:

A>Здравствуйте, ChMaker, Вы писали:


CM>>доброго времени суток, народ. есть такой вопрос, сорри конечно если оффтоп, но что поделеаешь.. вот понадобилось исплоьзовать в студии такой инструмент, как профайлер, собственно интересует где в программе используется все процессорное время, то есть вычленить метод, который является критичным и занимает все процессорное времяи ресурсы. так вот собственно сабж, как получить доступ к профайлеру в студии- надо загрузитьего как отдельную утилиту или дже он существует непостредственно в самой студии? и желательно надыбать какой нить хелп по то му как им пользоваться. мсдн конечно же читал, там что то совсем мало про это вообще написано. так что кто чем может — помогите.


A>VS2005 Team Suite включает в себя профайлер. В остальных вариантах VS2005, насколько мне известно, профайлера нет. Запустить его можно через меню Tools->Performance Tools.


A>Но я бы тебе посоветовал взять trial на 30 дней (или сколько там) профайлера Intel VTune и сделать всё что тебе нужно. VTune лучше, чем профайлер из VS2005.


мне для чего это собственно надо: есть программа, которая довольно долго работает выполняя сравнения, которые обеспечиваеит собственно библиотека — сторонняя. и ситуация следующая — во время выполнения программы процессор грузитится всего на 15 процентов, но при этом время работы явно не является приемлемым, и надо сделать наоборот чтобы процессор грузился на 70 процентов ну или меньше, но при этом времени тратилось мало, то есть время в данном случае очень критично,а вот ресурсы не особенно. знаю есть метод SetProcessPriority, и ему передается в качестве первого аргумента десткриптор процесса и флаг срочности, так вот вроде бы делаю все правильно, то есть перед вызовом критичного метода, который представляет из себя, грубо говоря цикл, в котором вызывается билиотечная функция сравнения, вызываю указанный метод, но что то особенно не помогает, вопрос собственно в том как заставить процессор грузиться по максиммум при выполнении моей локальной задачи програмным способом
Re[3]: как запустить профайлер в студии
От: alexeiz  
Дата: 31.08.06 08:25
Оценка:
Здравствуйте, ChMaker, Вы писали:

CM>мне для чего это собственно надо: есть программа, которая довольно долго работает выполняя сравнения, которые обеспечиваеит собственно библиотека — сторонняя. и ситуация следующая — во время выполнения программы процессор грузитится всего на 15 процентов, но при этом время работы явно не является приемлемым, и надо сделать наоборот чтобы процессор грузился на 70 процентов ну или меньше, но при этом времени тратилось мало, то есть время в данном случае очень критично,а вот ресурсы не особенно.


В программе много потоков или один? Такое впечатление, что у тебя время тратится на синхронизацию между потоками. Но попрофилировать всегда не мешает. Наугад вряд-ли определишь.

> знаю есть метод SetProcessPriority, и ему передается в качестве первого аргумента десткриптор процесса и флаг срочности,


Не поможет. SetThreadPriority делает не то, что ты думаешь.

> так вот вроде бы делаю все правильно, то есть перед вызовом критичного метода, который представляет из себя, грубо говоря цикл, в котором вызывается билиотечная функция сравнения, вызываю указанный метод, но что то особенно не помогает, вопрос собственно в том как заставить процессор грузиться по максиммум при выполнении моей локальной задачи програмным способом
Re[4]: как запустить профайлер в студии
От: ChMaker Россия  
Дата: 31.08.06 08:29
Оценка:
Здравствуйте, alexeiz, Вы писали:

A>Здравствуйте, ChMaker, Вы писали:


CM>>мне для чего это собственно надо: есть программа, которая довольно долго работает выполняя сравнения, которые обеспечиваеит собственно библиотека — сторонняя. и ситуация следующая — во время выполнения программы процессор грузитится всего на 15 процентов, но при этом время работы явно не является приемлемым, и надо сделать наоборот чтобы процессор грузился на 70 процентов ну или меньше, но при этом времени тратилось мало, то есть время в данном случае очень критично,а вот ресурсы не особенно.


A>В программе много потоков или один? Такое впечатление, что у тебя время тратится на синхронизацию между потоками. Но попрофилировать всегда не мешает. Наугад вряд-ли определишь.


>> знаю есть метод SetProcessPriority, и ему передается в качестве первого аргумента десткриптор процесса и флаг срочности,


A>Не поможет. SetThreadPriority делает не то, что ты думаешь.


>> так вот вроде бы делаю все правильно, то есть перед вызовом критичного метода, который представляет из себя, грубо говоря цикл, в котором вызывается билиотечная функция сравнения, вызываю указанный метод, но что то особенно не помогает, вопрос собственно в том как заставить процессор грузиться по максиммум при выполнении моей локальной задачи програмным способом


в программе щас всего два потока: один занимается прослушиванием данных от клиента(прием звука), второй занимается вычислениями — вот и все...
Re[3]: как запустить профайлер в студии
От: Аноним  
Дата: 31.08.06 11:57
Оценка:
CM>мне для чего это собственно надо: есть программа, которая довольно долго работает выполняя сравнения, которые обеспечиваеит собственно библиотека — сторонняя. и ситуация следующая — во время выполнения программы процессор грузитится всего на 15 процентов, но при этом время работы явно не является приемлемым, и надо сделать наоборот чтобы процессор грузился на 70 процентов ну или меньше

IMHO Даже процесс с самым низким приоритетом может есть 100% CPU, если нет конкурирующих процессов. Приоритет влияет только на пропорцию распределения времени при конкуренции. Sheduler не отбирает процессор у низкоприоритетных процессов только для того, чтобы дать ему покрутить idle task.

Т.е. твой процесс почему-то сам не может съесть 100%, часто засыпает из-за невозможности продолжать работу.
Обычно это бывает в ожидании ввода-вывода или синхронизации.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.