Мы используем механизм выталкивания, аналогичный тестам производительности, указанным здесь для 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
Что не так?
1 ответ
При тестировании пропускной способности 0MQ вам нужно немного позаботиться о том, чтобы получить значимые цифры.
Во-первых, используйте машину с достаточным количеством ядер или две машины в быстрой сети.
Во-вторых, отправьте достаточно сообщений, чтобы фактически нагрузить тестовый пример на несколько секунд. 100к это слишком мало, наверное 1м было бы лучше.
В-третьих, протестируйте сообщения разных размеров, чтобы увидеть влияние различных операций. Используйте 1-байтовые сообщения для проверки стоимости языкового API (Scala). Используйте 100-байтовые сообщения для проверки стоимости операций ввода-вывода. Используйте сообщения 1K, чтобы проверить стоимость копирования памяти. Обычно вы видите кривую.
Похожие вопросы
Новые вопросы
scala
Scala - это язык программирования общего назначения, в основном предназначенный для виртуальной машины Java. Разработанный для краткого, элегантного и безопасного для типов представления общих шаблонов программирования, он сочетает в себе как императивный, так и функциональный стили программирования. Его ключевые особенности: продвинутая система статического типа с выводом типа; типы функций; сопоставления с образцом ; неявные параметры и преобразования; перегрузка оператора; полная совместимость с Java; совпадение