Перейти к основному содержимому
Нормативная версия документации - английская

Эта страница переведена с английского языковой моделью. При любом расхождении верен английский оригинал.

Числа

Что измеряют числа бенчмарков ruststream-fred и каких выводов они сделать не позволяют.

Сравнение с сырым клиентом​

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

Сервер работает на той же машине, в сети хоста, без сохранения на диск. Без сетевой задержки и без диска та же стоимость сообщения составляет большую долю времени, чем с сервером за сетью. Читайте процент как верхнюю границу того, что платит развёрнутый сервис.

Строка «упирается в брокер» - та, где сырой клиент большую часть прогона ждал сокета. Работа крейта и рантайма тогда укладывается в это ожидание, и разница выходит около нуля. Это нижняя граница стоимости, а не её измерение.

Строка Pub/Sub снята при издателе, который никогда не ждёт потребителя. Pub/Sub отбрасывает то, что подписка не успевает забрать, поэтому эта строка показывает, сколько доставок в секунду обрабатывает насыщенная подписка.

Стоимость кода​

Счёт инструкций включает рантайм, этот крейт и работу fred в потоке выполнения сервиса. В него входит собственная стоимость фреймворка, которую ядро отдельно публикует на своей странице бенчмарков. Тот же счёт стоит больше времени там, где код промахивается мимо кэша, поэтому счёт инструкций - не время.

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

Чего они не значат​

Строка - это один потребитель, который читает один ключ, небольшое тело и сервер на loopback. Она измеряет, сколько стоит доставка внутри этого крейта и рантайма над ним, а не сколько способен пропустить Redis.

Окно прогона открывается на первой доставке и закрывается, когда забрана последняя, одинаково во всех трёх циклах, поэтому одно подтверждение за прогон везде остаётся за пределами числа.

Путь публикации в сравнение не входит: все три цикла используют одного издателя. График кода считает ответ на том же стенде.

Числа - снимок одной машины в один день, а рядом с ними записана сборка. Их перемеряют вручную, на машине, отданной только прогону: различия, которые они показывают, меньше шума общей машины.