отправить номер по zeromq pyzmq - PullRequest
1 голос
/ 29 февраля 2012

Я хочу отправить много чисел через zeromq, но преобразование их в str неэффективно.Как лучше всего отправлять номера через zmq?

Ответы [ 2 ]

4 голосов
/ 29 февраля 2012

Несколько вариантов:

  • использовать методы python для struct.pack / struct.unpack, например struct.pack ("! L", 1234567)

  • используйте другой сериализатор, например msgpack

3 голосов
/ 29 февраля 2012

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

Конечно, некоторые способы преобразования чиселбайт-строки быстрее, чем другие.Выполнение преобразования в C-коде, вероятно, будет быстрее, чем в Python-коде, но также подумайте, допустимо ли исключать "длинные" (bignum) целые числа.Если исключить их недопустимо, функция str может быть не хуже.

Модули struct и cpickle могут работать лучше, чем str, если допустимо исключение длинных целых чисел.

...