Я хочу отправить много чисел через zeromq, но преобразование их в str неэффективно. Каков наилучший способ отправки чисел через zmq?отправьте номер по zeromq pyzmq
ответ
Вы утверждаете, что преобразования чисел в str
неэффективна. И все же, если у вас нет действительно экзотической сети, это именно то, что должно произойти независимо от того, какое решение выбрано, потому что все широко используемые в настоящее время сети основаны на байтах.
Конечно, некоторые способы преобразования чисел в байтовые строки быстрее других. Выполнение преобразования в коде C, скорее всего, будет быстрее, чем в коде Python, но также учтите, допустимо ли исключать целые числа «long» (bignum). Если исключение их неприемлемо, функция str
может быть такой же хорошей, как и она.
Модули struct
и cpickle
могут работать лучше, чем str
, если исключить длинные целые числа.
Несколько вариантов: методы struct.pack/struct.unpack
использовать питона, например struct.pack ("! L", 1234567)
использование другой сериализатору как msgpack
+1 для msgpack. Он идеально подходит для Python, потому что вы можете превратить dict в сообщение msgpaxk так же легко, как объект JSON. И он обрабатывает целые числа и плавает достаточно эффективно. –
Если вы обрабатываете так много сообщений, для Python для преобразования строки int медленно, вам может потребоваться переосмыслить вашу точную архитектуру/язык. – lunixbochs
Какие числа (int/float, how large) вы отправляете, сколько в сообщении и т. Д.? – minrk