-- JSONモジュールって...-- 出場選手  ----- 第一のコース  ----- 第二のコース  -----..." /> -- JSONモジュールって...-- 出場選手  ----- 第一のコース  ----- 第二のコース  -----..."> ショロカレ 24 日目 | 初老と Python (4) 〜 JSON モジュール速度比較オリンピック 2016 冬 〜 | cloudpack.media share facebook facebook twitter menu hatena pocket slack

2017.01.18 WED

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

川原 洋平

WRITTEN BY 川原 洋平

これは

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

初老丸 Advent Calendar 2016 - Qiita
集え、初老丸達よ。初老丸達による世界に向けた技術的(又はそれに関連する)な物語を綴るカレンダーです。我こそ初老丸という方、初老丸予備軍の方も奮ってご参加下さい。

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 バージョン

  • Python 2.7.13
  • Python 3.6.0

サンプルデータ

競技方法

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

スクリプト

結果

概要

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

JSON デコード

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

20161224083044

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

20161224083055

JSON エンコード

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

20161224083114

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

20161224083130

以上

メモでした。

元記事はこちら

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