Бенчмарк
Из этой темы ты узнаешь:
-
что такое бенчмарк;
-
как работает простой бенчмарк на практике.
Что такое бенчмарк
Бенчмаркинг — это тестирование производительности.
Go позволяет разработчикам тестировать производительность с помощью пакета testing, содержащего для этого все необходимое. В программировании под бенчмаркингом понимают тестирование производительности написанного кода. Бенчмарк — это выполнение компьютерной программы (набора программ) или других операций для оценки относительной производительности объекта.
Бенчмаркинг позволяет рассмотреть разные решения, протестировать их производительность и сравнить полученные показатели скорости. Разработчику, как никому другому, нужны эти полезные данные, особенно при необходимости ускорить и оптимизировать работу приложения.
Важно помнить золотое правило разработки: никакой преждевременной оптимизации. Умение проводить бенчмаркинг не означает, что нужно выполнять и тестировать каждый участок кода. Этот инструмент нужен в тех случаях, когда ты сталкиваешься с проблемами производительности или не можешь устоять перед напором внутреннего любопытства.
«Преждевременная оптимизация — это корень всех зол».
Дональд Кнут, «Искусство программирования».
Довольно часто в сообщениях на интернет-форумах начинающие разработчики спрашивают, какое из тех или иных решений кода является наилучшим. Но не стоит оценивать код в категориях «лучший», правильнее придерживаться формулировки «наиболее эффективный». Ведь иногда более медленный код проще обслуживать и читать, и в таком случае он станет лучшим вариантом, если, конечно, речь не идет о производительности.
Теперь научимся проводить бенчмарк в Go. Нам предстоит ответить на следующие вопросы:
-
Что быстрее: срезы (slice) или карты (map)?
-
Влияет ли размер на скорость срезов и карт?
-
Имеет ли значение тип ключа в картах?
С полной версией статьи ты можешь ознакомиться по ссылке.
Простой бенчмарк на практике
Чтобы ответить на вопросы, указанные выше, нам необходимо создать простой бенчмарк.
Для выполнения задания создай следующую директорию: module2/functions/benching
После создания директории перейди по ссылке и выполни практику, последовательно выполняя алгоритм описанных действий.
Рекомендуем ознакомиться с дополнительными материалами для более подробного изучения темы: