Будьте продуктивны с Visual Studio!За 20 лет мы стали свидетелями постоянного увеличения мощности процессоров, которые отчасти могли нивелировать вопросы оптимизации производительности. Можно было надеяться, что выпускаемое программное обеспечение будет работать на следующем поколении более быстрых процессоров. Так оно часто и случалось, и даже некоторые потребители были готовы менять оборудование раз в 3-4 года. Но текущая ситуация осложнилась тем что на рынке возникли новые форм-факторы и устройства - такие как компактные компьютеры, нетбуки, планшеты, и смартфоны. В этих устройствах производительность часто жертвуется в угоду времени работы от батарейки, ограничен объем оперативной памяти. В этих условиях оптимизация скорости работы программного обеспечения становится очень важной задачей. В комплект поставки Visual Studio 2010 входит инструментарий, который позволяет анализировать производительность программ и устранять связанные с этим проблемы. Режимы оценки производительностиПрофайлер Visual Studio 2010 поддерживает несколько режимов оценки производительности анализируемой программы:
Работа с профайлеромДля того чтобы начать анализ производительности вашего приложения достаточно вызвать мастер «Performance Wizard» через меню Analyze. Только не забудьте запустить Visual Studio от лица администратора, это требуется для вызова специальных функций операционной системы, не доступных в обычном пользовательском режиме. После окончания работы вашего приложения откроется окно с первичными данными хода выполнения программы из которого уже можно будет извлечь ценные сведения о частоте и времени выполнения тех или иных функций: Щелкнув по функции GetNames можно более детально понять, почему частота вызовов и время работы этой функции так велики: Судя по реализованному алгоритму, функция GetNames вызываемая из функции GetPeople постоянно создает массив names, который на самом деле мы можем подготавливать заранее. Пример который используется уже содержит оптимизированный вариант этой функции, и для того чтобы переключится, достаточно добавить в Conditional Compilation условие OPTIMIZED_GETPEOPLE Запустив приложение с оптимизированным вариантом кода, мы увидим прирост производительности, который легко можем оценить так как среда сохраняет все предыдущие отчеты по анализу производительности и позволяет их сравнивать между собой: Рекомендации по устранению проблем производительностиОдним из интересных свойств инструментария поставляемого вместе с Visual Studio 2010 являются не только механизмы анализа, но и рекомендации по исправлению наиболее типичных проблем. В этом случае на основании собранной информации даются указания, какие изменения в коде необходимо предпринять, чтобы улучшить производительность приложения. Если во время анализа программы были выявлены такие случаи, то в окне отчета в разделе Notifications появится пункт View Guidance: Нажав на который можно будет увидеть рекомендации по исправлению участка кода: Перечень этих рекомендаций настраивается в свойствах среды Visual Studio 2010: Детальную информацию об этих правилах и рекомендации по устранению проблем производительности можно узнать в разделе MSDN Справочник по правилам производительности в средствах профилирования Конечно, возможности профайлера не ограничиваются этим простым примером. Более подробно об этом инструменте можно узнать на сайте MSDN (на русском языке): |