Содержание
- 2. Краткое содержание этой серии Фокусы Оптимизация компилятором
- 3. Фокус №1 Создаю глобальный двухмерный массив Заполняю его случайными числами Вычисляю сумму всех элементов: sum +=
- 4. Фокус №1 А как лежит в памяти двумерный массив? uint8_t array[2][4] = { {1,2,3,4}, {5,6,7,8}}; Точно
- 6. Все дело в кэш-памяти Зачем нужен кэш? Чтобы ускорить доступ к часто используемым данным, т.к. оперативная
- 7. А как работает кэш? Кэш состоит из «линий» (cache lines) - при каждом обращении в память
- 8. Кэш Вывод? Последовательный доступ к памяти гораздо быстрее, чем случайный. С точки зрения железа самая быстрая
- 9. Кэш В современных процессорах есть: кэш данных (D-cache) кэш инструкций (I-cache) буфер ассоциативной трансляции (TLB) Как
- 10. Кэш в современном процессоре Intel Core i7-9xx: L1 cache: 64 KiB L2 cache: 256 KiB L3
- 11. Кэш в современном процессоре Время чтения из памяти для Core i7-9xx: L1 - 4 такта. L2
- 12. Кэш Допустим, что два ядра процессора обращаются к одной и той же переменной. Тогда соответствующий кусок
- 13. Кэш Допустим, что два ядра процессора обращаются к двум разным переменным, которые расположены в памяти рядом.
- 14. Фокус №1.5 Возьмем неудачный способ сложения элементов массива (по столбцам). Логично предположить, что чем больше массив
- 15. Ассоциативность кэша А как узнать, закэширована переменная или нет? Кэш прямого отображения - каждый адрес памяти
- 16. Частично ассоциативный кэш Например, 16-входовой частично ассоциативный кэш – линии кэша делятся на 16 групп. Каждая
- 17. Кэш для инструкций Линейный код (без переходов) выполняется быстрее Маленькие программы (которые целиком помещаются в кэш)
- 18. Выводы При оценке быстродействия алгоритма нужно помнить про кэш. Писать быстродействующие программы – это сложно. Тестировать
- 19. Фокус №2 Вариант А: Заполним одномерный массив случайными элементами. Много раз найдем сумму всех элементов больше
- 20. Предсказание переходов Ключевой момент: if (data[c] >= 128) sum += data[c]; Если массив отсортирован – то
- 21. Оптимизация Критерии оптимизации: по объему кода (бинарного файла) по скорости исполнения Иногда можно (и хочется) оптимизировать
- 23. Скачать презентацию


![Фокус №1 А как лежит в памяти двумерный массив? uint8_t array[2][4] =](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/992668/slide-3.jpg)















![Предсказание переходов Ключевой момент: if (data[c] >= 128) sum += data[c]; Если](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/992668/slide-19.jpg)

Программное обеспечение компьютера
Облачные технологии как средство развития эстетических потребностей учащихся
Алгебра логики. Вильгельм Лейбниц (1646-1716)
Всемирная паутина. Информация и информационные процессы. 7 класс
Капитан Грантов. Лайфхаки грантрайтинга
Что запоминает компьютер?
Ochrona danych osobowych w grach mobilnych
Кодирование звуковой информации. Звуковой сигнал
Иерархическая структура комплекса показателей эффективности системы управления IT-процессами
Программное обеспечение компьютера
Электронная выставка повреждений изданий. Механические повреждения носителя
Алгоритмизация. Что такое алгоритм?
Zadacha_4
Организация как система
Защита объекта от физического несанкционированного доступа
Алгоритмы и программирование
UI/UX дизайнер
Создание комплексной системы обеспечения информационной безопасности инфраструктуры Росреестра
Презентация на тему Влияние интернета на человека
Алгоритмы шифрования
Проектирование сетей. Общие положения
Создание сайта на тему ’’вредоносное ПО и вирусы’’
Аналоги фирменного стиля IT центра
Порядок перезаписи в Навигаторе дополнительного образования
Одномерные массивы целых чисел. Описание, заполнение, вывод массива
Современные интернет-коммуникации - соцсети
Аттестационная работа. Программирование игр на Construct 3. (5-7 классы)
Одиннадцатый час. Выпуск №1