803828 ランダム
 HOME | DIARY | PROFILE 【フォローする】 【ログイン】

まんじうこわい@楽

まんじうこわい@楽

【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! --/--
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x

PR

Keyword Search

▼キーワード検索

Calendar

Profile

hknopage

hknopage

Free Space

Category

Freepage List

2010.02.03
XML
カテゴリ:PHP
 以前業務処理の混じったスクリプトでtsvとserializeの速度比較を行ったが、無駄な処理があるのでちょっと信頼性に欠ける。
 今回は不要な処理をなるべく無くして比較実験。

----実験----
・データ量:約18万7千件(行)
・各テストスクリプトを3回、load averageが0.1以下になってから実行
・CPU:Quad-Core AMD Opteron(tm) Processor 2376 x2個
・メモリ:8GB

----入出力ファイルサイズ----
※データ件数は同じです。ファイルサイズの違いは保存形式(tsv,serialize,ALLserialize)の違いによるもの。
 詳しくはソース参照
--tsv--
17,446,415 byte
--serialize(1件毎)--
46,573,936 byte
--serialize(全件まとめて)--
81,368,022 byte

----tsv----
・入力ファイル:tsv形式
・出力ファイル:tsv形式
・処理方法:1件ずつ入力、全て入力後、1件ずつ出力
--1回目--
all:4.02843904495
read:2.52924990654
write:1.49918913841
--2回目--
all:4.13419485092
read:2.52776885033
write:1.6064260006
--3回目--
all:4.12754297256
read:2.56202197075
write:1.56552100182

----serialize&unserialize----
・入力ファイル:serialize形式(1件毎)
・出力ファイル:serialize形式(1件毎)
・処理方法:1件ずつ入力、全て入力後、1件ずつ出力
--1回目--
all:4.92642498016
read:2.69009304047
write:2.2363319397
--2回目--
all:4.93736600876
read:2.73131799698
write:2.20604801178
--3回目--
all:4.93822383881
read:2.72671484947
write:2.21150898933

----まとめてserialize&unserialize----
・入力ファイル:serialize形式(まとめて全件)
・出力ファイル:serialize形式(まとめて全件)
・処理方法:全件入力、全件出力
--1回目--
all:98.4064509869
read:95.5289621353
(file_get_contents:0.117384195328,unserialize:95.41157794)
write:2.87748885155
--2回目--
all:98.2645261288
read:95.387127161
(file_get_contents:0.124714136124,unserialize:95.2624130249)
write:2.87739896774
--3回目--
all:97.9302198887
read:95.0836489201
(file_get_contents:0.114450931549,unserialize:94.9691979885)
write:2.84657096863


 何か余計な処理がないとtsvが読み書き最速だった。
 書き込みはserialize化が無い分早いっぽい。書き込みデータも小さいみたいだし。
 前回は業務用の余計な処理があったから、読み込みがserializeに負けてたのかな。
 そして、まとめてunserializeがやっぱり遅い。

 とりあえず行単位でやれば大差なさそうです。
 ファイルサイズを節約したいなら断然tsvかも。
 データ加工が面倒で楽したいならserializeかな~。

 異論は認める!





お気に入りの記事を「いいね!」で応援しよう

Last updated  2010.02.03 23:48:02
コメント(0) | コメントを書く



© Rakuten Group, Inc.
X