Нет обновления Windows 8.1 в

Оптимизация Windows 8.1

Стратегия

Мы используем один из примеров кода в учебном руководстве по VTune, tachyon_amp_xe, в качестве целевого кода для повышения производительности. Этот пример выводит изображение сложных объектов.

Методика оптимизации производительности, применимая к этому примеру, описана ниже.

  1. Запуск простого анализа узких мест или общего анализа для примера проекта в интегрированной среде разработки, например в Visual Studio* 2013.
  2. Выявление узких мест и других возможностей для оптимизации.
  3. Применение изменений кода к обнаруженным узким местам.
  4. Изучение возможностей оптимизации в компиляторе.
  5. Распараллеливание кода.

Оптимизация

Тестовая среда
ОС: Windows 8.1
Набор инструментов: Intel System Studio для Windows, обновление 3
Среда разработки: Microsoft Visual Studio 2013

Шаг 1. Интерпретация и анализ данных результатов

Запуск общего анализа (если это невозможно, перейдите к простому анализу узких мест) и обнаружение узких мест. Этот пример кода создан как пример для обнаружения узких мест и повышения производительности. Поэтому для работы с ним можно использовать страницу примера the tachyon_amp_ex. После запуска примера в VTune мы получим следующие результаты.

Видно, что время, затраченное этим приложением, составило 44, 834 секунды, и этот базовый уровень производительности мы попытаемся улучшить.
Кроме того, в этом примере приложения функция initialize_2D_buffer расходует больше всего времени — 18, 945 секунды, поэтому она занимает верхнюю строку в списке ресурсоемких функций. Мы попробуем оптимизировать именно эту функцию, занимающую больше всего времени.

Гистограмма нагрузки на ЦП, приведенная выше, показывает, что в этом примере не используется параллельная обработка. Поэтому есть возможность использовать многопоточную архитектуру для ускорения обработки ресурсоемких задач.

Шаг 2. Алгоритмический подход для функции initialize_2D_buffer

Как мы видели, выполнение функции initialize_2D_buffer занимает больше всего времени, причем эта функция задействует наибольшее количество инструкций. Из этого следует, что если где-то и можно добиться повышения производительности, то именно здесь эффект будет наибольшим.

Дважды щелкните имя функции. VTune Amplifier откроет файл с исходным кодом именно на той строке, где на работу этой функции затрачивается больше всего времени. Для функции initialize_2D_buffer эта строка служит для инициализации массива памяти с помощью разрозненных расположений в памяти (находящихся не подряд). У этого примера кода уже есть более быстрая альтернатива циклу for.

Ниже приведен фактический код функции initialize_2D_buffer. Первый цикл for заполняет целевой массив непоследовательно, тогда как второй цикл for выполняет эту же задачу последовательно. Можно повысить производительность, задействовав второй цикл for.

После замены цикла for на второй мы отмечаем некоторый прирост производительности. Рассмотрим новые результаты профилирования в VTune.

По сравнению с прежним результатом общее время выполнения снизилось с 44, 834 до 35, 742 секунды, то есть примерно в 1, 25 раза. Время работы нашей целевой функции сократилось с 18, 945 до 11, 318 секунды, то есть примерно в 1, 67 раза.



Видео на тему
Оптимизация windows 8 от MorviCool [Part 1]
Оптимизация windows 8 от MorviCool [Part 1]
Марафон - Оптимизация Windows #5
Марафон - Оптимизация Windows #5
Оптимизация windows 8 от MorviCool [part 2]
Оптимизация windows 8 от MorviCool [part 2]
Расказать о статье друзьям

Похожие статьи

Проверка Скорости Компьютера

Проверка Скорости Компьютера

APRIL 19, 2024

Специальный тест скорости Интернета, так называемый speed test, поможет определить точную скорость соединения. Он передает…

Читать далее
Исправление Ошибок Очистка Реестра

Исправление Ошибок Очистка Реестра

APRIL 19, 2024

Kerish Doctor — это условно-бесплатное программное обеспечение для комплексного ухода за компьютером под управлением операционных…

Читать далее
Рассказать друзьям