[Namazu-devel-ja 1554] Re: hash の負荷軽減

Tadamasa Teranishi yw3t-trns @ asahi-net.or.jp
2007年 4月 13日 (金) 10:50:02 JST


寺西です。

同等のテストを Windows で行いました。

[WA1]
  User+System Time = 149.3632 Seconds

[WA2]
  User+System Time = 138.0070 Seconds

[WD1]
  User+System Time = 131.0533 Seconds

[WD2]
  User+System Time = 124.7550 Seconds

という結果でした。WA1 の時間を 1.0 として比較した結果は次の通りです。

WA1: 1.000
WA2: 0.924
WD1: 0.877
WD2: 0.835

- WA2 と WD2 を比較すると WD2 は WA2 の 0.904でした。(修正の差)
- WD1 と WD2 を比較すると WD2 は WD1 の 0.952でした。(インデックス
  の書き出し回数の差)

修正により約10%高速化しています。インデックスの書き出しも1回にすると、
約16%高速化するという結果です。


[WA1]

Total Elapsed Time = 383.0562 Seconds
  User+System Time = 149.3632 Seconds
Exclusive Times
%Time ExclSec CumulS #Calls sec/call Csec/c  Name
 17.0   25.43 25.436 107685   0.0002 0.0002  IO::Handle::close
 9.22   13.77 13.772 736272   0.0000 0.0000  mknmz::hash
 8.92   13.32 13.597 107697   0.0001 0.0001  IO::File::open
 8.67   12.94 12.948  24816   0.0005 0.0005  mknmz::wordcount_sub
 8.62   12.87 26.643   4136   0.0031 0.0064  mknmz::make_phrase_hash
 5.49   8.202 32.752   4136   0.0020 0.0079  mknmz::count_words
 4.48   6.689  6.689 118804   0.0001 0.0001  Text::Kakasi::xs_do_kakasi
 3.38   5.047 44.144   4136   0.0012 0.0107  mknmz::put_field_index
 3.04   4.535  7.470      3   1.5117 2.4899  mknmz::write_index_sub
 2.89   4.310  4.310   4136   0.0010 0.0010 
File::MMagic::checktype_data
 2.20   3.293  5.933      3   1.0978 1.9778 
mknmz::write_phrase_hash_sub
 1.82   2.719  2.719 104684   0.0000 0.0000  mknmz::get_last_docid
 1.76   2.622 27.245  95276   0.0000 0.0003  util::fclose
 1.72   2.564  2.757   4136   0.0006 0.0007  mailnews::mailnews_filter
 1.70   2.538  2.538 107697   0.0000 0.0000  Symbol::gensym


[WA2]

Total Elapsed Time = 354.6200 Seconds
  User+System Time = 138.0070 Seconds
Exclusive Times
%Time ExclSec CumulS #Calls sec/call Csec/c  Name
 17.5   24.15 24.153 107664   0.0002 0.0002  IO::Handle::close
 9.57   13.21 13.214  24816   0.0005 0.0005  mknmz::wordcount_sub
 9.50   13.11 13.339 107676   0.0001 0.0001  IO::File::open
 9.26   12.77 12.775 736272   0.0000 0.0000  mknmz::hash
 8.59   11.86 24.634   4136   0.0029 0.0060  mknmz::make_phrase_hash
 4.93   6.806  6.806 118804   0.0001 0.0001  Text::Kakasi::xs_do_kakasi
 4.78   6.594 31.383   4136   0.0016 0.0076  mknmz::count_words
 3.62   4.998 44.542   4136   0.0012 0.0108  mknmz::put_field_index
 3.17   4.371  4.371   4136   0.0011 0.0011 
File::MMagic::checktype_data
 2.21   3.049  3.275   4136   0.0007 0.0008  mailnews::mailnews_filter
 2.17   2.990 26.175  95256   0.0000 0.0003  util::fclose
 2.07   2.852  2.852   4136   0.0007 0.0007 
File::MMagic::checktype_byfilename
 1.87   2.587  7.544 107676   0.0000 0.0001  IO::File::new
 1.80   2.483 11.500   4090   0.0006 0.0028  wakati::wakatize_japanese
 1.62   2.232  2.232   8486   0.0003 0.0003  NKF::nkf


[WD1]

Total Elapsed Time = 337.5633 Seconds
  User+System Time = 131.0533 Seconds
Exclusive Times
%Time ExclSec CumulS #Calls sec/call Csec/c  Name
 17.9   23.51 23.517 107684   0.0002 0.0002  IO::Handle::close
 10.5   13.86 14.203 107696   0.0001 0.0001  IO::File::open
 8.02   10.51 15.590   4136   0.0025 0.0038  mknmz::make_phrase_hash
 7.46   9.778  9.778  24816   0.0004 0.0004  mknmz::wordcount_sub
 5.95   7.801 28.414   4136   0.0019 0.0069  mknmz::count_words
 4.49   5.878  5.878 118804   0.0000 0.0000  Text::Kakasi::xs_do_kakasi
 3.88   5.079  5.079 771366   0.0000 0.0000  mknmz::hash
 3.39   4.441  7.070      3   1.4803 2.3567  mknmz::write_index_sub
 3.15   4.127 42.067   4136   0.0010 0.0102  mknmz::put_field_index
 3.05   3.996  3.996   4136   0.0010 0.0010 
File::MMagic::checktype_data
 2.32   3.046  3.189   4136   0.0007 0.0008  mailnews::mailnews_filter
 2.29   3.000  5.254      3   1.0001 1.7514 
mknmz::write_phrase_hash_sub
 2.11   2.770  2.770   4136   0.0007 0.0007 
File::MMagic::checktype_byfilename
 1.98   2.597  2.597 104684   0.0000 0.0000  mknmz::get_last_docid
 1.95   2.552 25.317  95276   0.0000 0.0003  util::fclose


[WD2]

Total Elapsed Time = 361.5060 Seconds
  User+System Time = 124.7550 Seconds
Exclusive Times
%Time ExclSec CumulS #Calls sec/call Csec/c  Name
 19.8   24.79 24.796 107664   0.0002 0.0002  IO::Handle::close
 9.99   12.46 12.827 107676   0.0001 0.0001  IO::File::open
 8.97   11.18 16.316   4136   0.0027 0.0039  mknmz::make_phrase_hash
 7.97   9.948  9.948  24816   0.0004 0.0004  mknmz::wordcount_sub
 5.94   7.411 27.700   4136   0.0018 0.0067  mknmz::count_words
 4.87   6.070  6.070 118804   0.0001 0.0001  Text::Kakasi::xs_do_kakasi
 4.11   5.130  5.130 771366   0.0000 0.0000  mknmz::hash
 3.73   4.648 43.846   4136   0.0011 0.0106  mknmz::put_field_index
 3.27   4.083  4.083   4136   0.0010 0.0010 
File::MMagic::checktype_data
 2.37   2.952 26.841  95256   0.0000 0.0003  util::fclose
 2.27   2.826  3.031   4136   0.0007 0.0007  mailnews::mailnews_filter
 2.10   2.617  7.473 107676   0.0000 0.0001  IO::File::new
 2.09   2.609  2.609      1   2.6090 2.6087  mknmz::write_index_sub
 2.07   2.587  2.587   4136   0.0006 0.0006 
File::MMagic::checktype_byfilename
 1.95   2.436  2.436   8486   0.0003 0.0003  NKF::nkf


テスト環境の Windows の HDD が遅いためか、IO::Handle::close にかなり
の時間がかかっており、高速化の効果があまりでていません。

IO::Handle::close, IO::File::open の数が一致していないのは何故で
しょうねぇ。
--
=====================================================================
寺西 忠勝(TADAMASA TERANISHI)  yw3t-trns @ asahi-net.or.jp
http://www.asahi-net.or.jp/~yw3t-trns/index.htm
Key fingerprint =  474E 4D93 8E97 11F6 662D  8A42 17F5 52F4 10E7 D14E




Namazu-devel-ja メーリングリストの案内