ようへいの日々精進XP

よかろうもん

ショロカレ 24 日目 | 初老と Python (4) 〜 JSON モジュール速度比較オリンピック 2016 冬 〜

これは

初老丸アドベントカレンダー 24 日目の記事です。

qiita.com

ということで、自分の記事はずーっと小ネタですいません。

初老と Python (4) 〜 JSON モジュールオリンピック 2016 冬 〜

JSON モジュールって...

今まで標準の json モジュールしか知りませんでしたが、とあるお仕事で Python スクリプトボトルネックを調査していたところ、標準の json モジュールが結果として遅いんだ...という結論に至りました。

さて、他の json モジュールを選ばなければいけません...ということで、幾つかの JSON モジュールの処理速度比較というのをやってみました。

尚、環境によって結果は変動することが想定されますので、あくまでも参考程度に読んで頂けると幸いです。

出場選手

第一のコース

  • 標準の json モジュール
  • いつもお世話になってます

第二のコース

第三のコース

競技上の諸注意

OS 環境

bash-3.2$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.11.6
BuildVersion:   15G1108

Python バージョン

サンプルデータ

競技方法

  • JSON データをデコードする時間を 5 回計測
  • CSV データを JSON データにエンコードする時間を 5 回計測

スクリプト

結果

概要

  • 全体的に ujson が中盤から飛び出して、そのままぶっちぎりな感じ
  • 但し、Python 3.6.0 だと標準の json モジュールも健闘している

JSON デコード

Python 2.7.13(※ Y 軸の単位は sec)

f:id:inokara:20161224083044p:plain

Python 3.6.0(※ Y 軸の単位は sec)

f:id:inokara:20161224083055p:plain

JSON エンコード

Python 2.7.13(※ Y 軸の単位は sec)

f:id:inokara:20161224083114p:plain

Python 3.6.0(※ Y 軸の単位は sec)

f:id:inokara:20161224083130p:plain

以上

メモでした。