code simpleubjson Python
В посте #1753626 замерял скорость работы своей библиотеки ubjson против библиотек json (да-да, апельсины против яблок!). Результаты были печальны, но ожидаемы. Тем временем посидев-подумав, докрутил производительность до +20-40%. Еще открыл для себя cython: +50% к скорости сверху за просто так весьма неплохо - нужно будет прикрутить его при установке как опцию.
sys.version : '2.7.3 (default, Jul 5 2012, 08:55:40) \n[GCC 4.5.3]'
sys.platform : 'linux2'
* [test_1] Handle 4KB sized CouchDB document with various data
* [cython] Decoded in 52.938107 (0.000529 / call)
* [cython] Encoded in 60.032089 (0.000600 / call)
* [native] Decoded in 105.954515 (0.001060 / call)
* [native] Encoded in 106.602120 (0.001066 / call)
А вот PyPy на кодировании выдал какую-то сумашедшую цифру затраченного времени, возможно из-за обильного использования itertools.chain. Нужно разбираться.
sys.version : '2.7.2 (341e1e3821fff77db3bb5cdb7a4851626298c44e, Jul 15 2012, 19:18:28)\n[PyPy 1.9.0 with GCC 4.5.3]'
sys.platform : 'linux2'
* [test_1] Handle 4KB sized CouchDB document with various data
* Decoded in 20.009146 (0.000200 / call)
* Encoded in 126.725331 (0.001267 / call)