Skip to content

Бенчмарк

Из этой темы ты узнаешь:

  • что такое бенчмарк;

  • как работает простой бенчмарк на практике.

Что такое бенчмарк

Бенчмаркинг — это тестирование производительности.

Go позволяет разработчикам тестировать производительность с помощью пакета testing, содержащего для этого все необходимое. В программировании под бенчмаркингом понимают тестирование производительности написанного кода. Бенчмарк — это выполнение компьютерной программы (набора программ) или других операций для оценки относительной производительности объекта.

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

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

«Преждевременная оптимизацияэто корень всех зол».

Дональд Кнут, «Искусство программирования».

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

Теперь научимся проводить бенчмарк в Go. Нам предстоит ответить на следующие вопросы:

  • Что быстрее: срезы (slice) или карты (map)?

  • Влияет ли размер на скорость срезов и карт?

  • Имеет ли значение тип ключа в картах?

С полной версией статьи ты можешь ознакомиться по ссылке.

Простой бенчмарк на практике

Чтобы ответить на вопросы, указанные выше, нам необходимо создать простой бенчмарк.

Для выполнения задания создай следующую директорию: module2/functions/benching

После создания директории перейди по ссылке и выполни практику, последовательно выполняя алгоритм описанных действий.

Рекомендуем ознакомиться с дополнительными материалами для более подробного изучения темы: