ZeroMQ, значительно ли замедляет привязку Scala Binding?

Мы используем механизм выталкивания, аналогичный тестам производительности, указанным здесь для ZeroMQ. http://www.zeromq.org/results:perf-howto

Для теста пропускной способности с размером сообщения 4,3 КБ и 100 000 сообщений я получил производительность 85 000 msg/sec.

vikas@vikas-laptop:~/w/software/exploded/zeromq-2.1.10/perf$ local_thr tcp://127.0.0.1:5555 4300 100000 размер сообщения: 4300 [B] количество сообщений: 100000 средняя пропускная способность: 85203 [ msg/s] средняя пропускная способность: 2930,983 [Мбит/с]

Однако с кодом на Scala и с использованием привязки Scala 0.0.3 я получаю менее 15 тыс. msg/sec.

Суть здесь https://gist.github.com/1496406

Что происходит не так?


person Vikas Hazrati    schedule 19.12.2011    source источник


Ответы (1)


При тестировании пропускной способности 0MQ вам нужно немного позаботиться о том, чтобы получить значимые цифры.

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

Во-вторых, отправьте достаточно сообщений, чтобы фактически нагрузить тестовый пример на несколько секунд. 100к это слишком мало, наверное 1м было бы лучше.

В-третьих, протестируйте сообщения разных размеров, чтобы увидеть влияние различных операций. Используйте 1-байтовые сообщения для проверки стоимости языкового API (Scala). Используйте 100-байтовые сообщения для проверки стоимости операций ввода-вывода. Используйте сообщения 1K, чтобы проверить стоимость копирования памяти. Обычно вы видите кривую.

person Pieter Hintjens    schedule 20.12.2011
comment
Спасибо, Питер, за ваш ответ, суть, которую я опубликовал, — это всего лишь один сценарий, но, как вы предложили, мы попробовали различные комбинации размеров и количества сообщений. Цифры далеки от того, что мы получаем при тестировании производительности. Я внес изменения, предложенные Виктором, см. ветку почты здесь groups.google.com/forum/#!searchin/scala -user/ по-прежнему нет улучшения, близкого к ожидаемому. - person Vikas Hazrati; 29.12.2011