Рубрика «оптимизация кода» - 8

Оптимизируем… распараллеливаем… взлетаем!
«Из пункта А в пункт Б вышел пешеход со скоростью … » Помните такие задачки из школьной программы? Они учили нас умению логически мыслить и, в какой-то степени, составлять алгоритмы, то бишь азам программирования. Но вот все мы подросли, и пришло время решать более взрослые задачи. Из пункта А в направлении пункта Б каждый день вылетает десятки самолетов с различными ценами на билет, маршрутами, бонусными программами… это множество вариантов необходимо просчитать таким образом, чтобы найти оптимальный исходя из предложенных критериев, причем просчитать быстрее других.
Вот вы и познакомились кратенько с условиями конкурса программистов «Accelerate Your Code», проводимого компанией Intel в ноябре. Для всех заинтересовавшихся и желающих получить призовой ультрабук от Intel – кнопка внизу.
Читать полностью »

Предисловие

Дэниел Клиффорд сделал на Google I/O прекрасный доклад, посвященный особенностям оптимизации кода JavaSсript для движка V8. Дэниел призвал нас стремиться к большей скорости, тщательно анализировать отличия между С++ и JavaScript, и писать код, помня о том, как работает интерпретатор. Я собрал в этой статье резюме самых главных моментов выступления Дэниела, и буду обновлять её по мере того, как движок будет меняться.
Читать полностью »

Оптимизация цикла for — миф или реальность?Говоря об оптимизации JavaScript можно увидеть множество примеров того, как следует делать или не делать. Мнения некоторых авторов звучат убедительно, их примеры внушают уверенность. И главным образом, подобных рекомендаций в сети много, но значительно меньше статистики по ним. Вот и сегодня на страницах GitHub'а в поле зрения был пойман ранее знакомый теоретический материал по оптимизации циклов for.

Читать полностью »

Максимально точное измерение кода
В моей статье полугодичной давности о длинной арифметике есть замеры скорости (throughput в тактах) очень коротких фрагментов кода — всего по несколько инструкций. Методика измерения была кривовата, но давала правдоподобные результаты. Потом выяснилось, что результаты таки неверные — поверхностный подход всегда сказывается.

В этом посте я опишу надежный метод «нанобенчмаркинга» с минимальной погрешностью и без подключения специальных библиотек и драйверов, к которому в итоге пришел. Применимость: сравнение однопоточного потенциала процессоров, просто интерес.Читать полностью »

Вчера на Reddit появился пост, где ребята из проекта Linaro продемонстрировали работу по оптимизации сборки Android. В приложенном к посту видео демонстрировалась работа Android Open Source Project 4.0.4 с ядром от Google и Android 4.0.4 c оптимизациями от Linaro. Аппаратной платформой для тестов стала SoC TI OMAP 4430 (использовалась в Motorola Droid RAZR). Как этого добились разработчики с демонстрацией замеров производительности смотрите в видео (результаты в самом конце показывают прирост в 100%):

Читать полностью »

Оптимизация для CPU: как найти черную кошку в темной комнате
Метод недопустимой операции:
Разделить кошку на ноль,
после чего она станет бесконечно большой,
так что её будет невозможно упустить.

[АбсурдопедиЯ]

Пытаясь найти проблему с производительностью относительно простого кода, я вспомнил несколько нелепых методов решения, описанных на Абсурдопедии, для задачи поиска черной кошки в темной комнате. Как ни странно, мне очень помогло последовательное использование трех методов, которые можно найти по ссылке: Прагматизм, Метод дихотомии и Метод тыка.

Итак, имеем задачу последовательной перестановки байтов в каждом слове массива (big-endian <-> little-endian) и суммирования всех слов в одно (reduction). Оставим пока в стороне задачу распараллеливания, ибо ее решение близко к тривиальному, и для нас пока не представляет интереса.

image

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js