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

Tadamasa Teranishi yw3t-trns @ asahi-net.or.jp
2007年 4月 19日 (木) 06:25:49 JST


寺西です。

約2,000のメールを MHonArc で HTML 化したもので、インデックス作成時間
を測定しました。

1) 測定マシン

前回インデックス作成に使用したものと同じ


2) 測定データ
 http://www.namazu.org/ml.html#archive の以下のファイル

  namazu-win32-users-ja 2,242通

 を MHonArc で変換したもの

 メディアタイプは text/html; x-type=mhonarc


3) 測定条件

 a) $ON_MEMORY_SIZE を標準(5000000), 10倍, 1/10, 1/100 のそれぞれ
 b) Namazu 2.0.17(SA), 修正(SE) のそれぞれ


4) 修正内容

前回と同じ


5) 結果

・結果

$ON_MEMORY_MAX|インデックス|   SA-2M     SE-2M   | SA-2M SE-2M
              |書き出し回数|   (Sec)     (Sec)   |     
--------------+------------+---------------------+------------
     50000000 |          1 |  173.6143  143.2173 | 0.913 0.754
      5000000 |          3 |  190.0602  160.4737 | 1.000 0.844
       500000 |         21 |  296.3588  230.5151 | 1.559 0.754
        50000 |        194 | 1121.301  1054.864  | 5.900 5.550

- ただし、Namazu 2.0.17(SA-2M) で $ON_MEMORY_MAX 5000000 の処理時間
  を 1.000 として比較


・参考(前回の message/rfc822 の結果)

$ON_MEMORY_MAX|インデックス|   SA-2      SE-2    | SA-2  SE-2
              |書き出し回数|   (Sec)     (Sec)   |              
--------------+------------+---------------------+------------
     50000000 |          1 |  152.0534  123.0638 | 0.911 0.738 
      5000000 |          2 |  166.8537  129.4084 | 1.000 0.776 
       500000 |         15 |  237.9477  192.6253 | 1.426 1.154 
        50000 |        137 |  824.1587  711.7768 | 4.939 4.266 


6) 考察

  HTML化した文書数約2,000件でも SE の修正により、インデックス書き
出し回数1回の場合は約17.5%高速化しています。インデックス書き出し
回数194回の場合でも約6.0%高速化しています。標準では約15.6%高速化
しています。HTML化する前よりは効果が薄れていますが、これはインデッ
クス書き出し回数が増加したことも影響しているのでしょう。
  
  HTML化したことで html::remove_html_elements 等の HTML 用の処理が
現れるようになりましたが、全体に占める割合としてはわずかでした。

  HTML化したことでHTML用の処理が増えた分、処理時間が増加していますが、
同じ $ON_MEMORY_MAX の場合、ファイルサイズが増加したことにより、
インデックス書き出し回数が増加します。インデックス書き出し回数の増加
による処理時間の増加の方がどちらかといえば影響が強いようです。

 
7) 測定データ

[SA1-2M] 修正前 インデックス書き出し3回

Total Elapsed Time = 270.0702 Seconds
  User+System Time = 190.0602 Seconds
Exclusive Times
%Time ExclSec CumulS #Calls sec/call Csec/c  Name
 16.4   31.27 30.214 426242   0.0001 0.0001  mknmz::hash
 12.4   23.64 23.603  18862   0.0013 0.0013  mknmz::wordcount_sub
 8.48   16.10 45.933   2242   0.0072 0.0205  mknmz::make_phrase_hash
 6.33   12.04 49.667   2242   0.0054 0.0222  mknmz::count_words
 4.56   8.658  8.474  74410   0.0001 0.0001  Text::Kakasi::xs_do_kakasi
 3.65   6.944 11.607      3   2.3146 3.8691  mknmz::write_index_sub
 3.55   6.748  6.744   2288   0.0029 0.0029 
File::MMagic::checktype_data
 3.52   6.684 11.437      3   2.2279 3.8125 
mknmz::write_phrase_hash_sub
 3.31   6.288  6.268   8983   0.0007 0.0007  NKF::nkf
 2.90   5.508 20.762   2242   0.0025 0.0093  mknmz::put_field_index
 2.62   4.977  4.983   2242   0.0022 0.0022 
mailnews::mailnews_citation_filter
 2.55   4.844  6.069   4484   0.0011 0.0014  html::remove_html_elements
 2.47   4.689  4.184 202277   0.0000 0.0000  mknmz::readw
 2.27   4.319  4.168  60848   0.0001 0.0001  IO::File::open
 1.95   3.709  3.704   2288   0.0016 0.0016 
File::MMagic::checktype_byfilename


[SA2-2M] 修正前 インデックス書き出し1回

Total Elapsed Time = 195.1843 Seconds
  User+System Time = 173.6143 Seconds
Exclusive Times
%Time ExclSec CumulS #Calls sec/call Csec/c  Name
 18.2   31.60 30.757 426242   0.0001 0.0001  mknmz::hash
 13.7   23.85 23.822  18862   0.0013 0.0013  mknmz::wordcount_sub
 9.30   16.14 46.580   2242   0.0072 0.0208  mknmz::make_phrase_hash
 6.56   11.38 48.914   2242   0.0051 0.0218  mknmz::count_words
 4.86   8.438  8.291  74410   0.0001 0.0001  Text::Kakasi::xs_do_kakasi
 4.00   6.949  6.945   2288   0.0030 0.0030 
File::MMagic::checktype_data
 3.69   6.399  6.382   8983   0.0007 0.0007  NKF::nkf
 3.16   5.485 20.923   2242   0.0024 0.0093  mknmz::put_field_index
 2.70   4.689  5.799   4484   0.0010 0.0013  html::remove_html_elements
 2.58   4.478  4.487   2242   0.0020 0.0020 
mailnews::mailnews_citation_filter
 2.15   3.729  3.608  60828   0.0001 0.0001  IO::File::open
 2.10   3.649  3.641   4484   0.0008 0.0008  gfilter::line_adjust_filter
 1.89   3.289  3.285   2288   0.0014 0.0014 
File::MMagic::checktype_byfilename
 1.77   3.079  3.123   2242   0.0014 0.0014  html::weight_element
 1.64   2.839  2.718  60815   0.0000 0.0000  IO::Handle::close


[SA3-2M] 修正前 インデックス書き出し21回

Total Elapsed Time = 301.5588 Seconds
  User+System Time = 296.3588 Seconds
Exclusive Times
%Time ExclSec CumulS #Calls sec/call Csec/c  Name
 15.6   46.31 74.280     21   2.2055 3.5371 
mknmz::write_phrase_hash_sub
 11.6   34.65 64.660     21   1.6503 3.0790  mknmz::write_index_sub
 11.6   34.40 30.442 158718   0.0000 0.0000  mknmz::readw
 10.6   31.49 30.434 426242   0.0001 0.0001  mknmz::hash
 8.16   24.19 24.153  18862   0.0013 0.0013  mknmz::wordcount_sub
 7.43   22.02 21.527 201246   0.0001 0.0001  mknmz::get_last_docid
 5.45   16.15 46.203   2242   0.0072 0.0206  mknmz::make_phrase_hash
 3.65   10.82 48.667   2242   0.0048 0.0217  mknmz::count_words
 2.89   8.558  8.374  74410   0.0001 0.0001  Text::Kakasi::xs_do_kakasi
 2.33   6.898  6.894   2288   0.0030 0.0030 
File::MMagic::checktype_data
 2.16   6.398  5.897 201246   0.0000 0.0000  mknmz::adjust_first_docid
 2.01   5.969  5.948   8983   0.0007 0.0007  NKF::nkf
 1.80   5.344 20.232   2242   0.0024 0.0090  mknmz::put_field_index
 1.63   4.838  4.903   2242   0.0022 0.0022 
mailnews::mailnews_citation_filter
 1.52   4.504  5.659   4484   0.0010 0.0013  html::remove_html_elements


[SA4-2M] 修正前 インデックス書き出し194回

Total Elapsed Time = 1131.011 Seconds
  User+System Time = 1121.301 Seconds
Exclusive Times
%Time ExclSec CumulS #Calls sec/call Csec/c  Name
 35.6   400.0 569.74    194   2.0621 2.9368 
mknmz::write_phrase_hash_sub
 28.0   313.9 269.49 148561   0.0000 0.0000  mknmz::readw
 24.7   277.3 479.30    194   1.4296 2.4706  mknmz::write_index_sub
 8.20   92.00 90.927 367767   0.0003 0.0002  mknmz::get_last_docid
 2.83   31.72 30.451 426242   0.0001 0.0001  mknmz::hash
 2.20   24.71 24.663  18862   0.0013 0.0013  mknmz::wordcount_sub
 1.47   16.52 46.536   2242   0.0074 0.0208  mknmz::make_phrase_hash
 1.02   11.48 10.387 367767   0.0000 0.0000  mknmz::adjust_first_docid
 0.98   10.99 48.871   2242   0.0049 0.0218  mknmz::count_words
 0.75   8.427  8.207  74410   0.0001 0.0001  Text::Kakasi::xs_do_kakasi
 0.61   6.858  6.853   2288   0.0030 0.0030 
File::MMagic::checktype_data
 0.55   6.178  6.153   8983   0.0007 0.0007  NKF::nkf
 0.47   5.316 20.090   2242   0.0024 0.0090  mknmz::put_field_index
 0.45   5.027  5.020   2242   0.0022 0.0022 
mailnews::mailnews_citation_filter
 0.41   4.614  5.839   4484   0.0010 0.0013  html::remove_html_elements


[SE1-2M] 修正後 インデックス書き出し3回

Total Elapsed Time = 323.6637 Seconds
  User+System Time = 160.4737 Seconds
Exclusive Times
%Time ExclSec CumulS #Calls sec/call Csec/c  Name
 10.4   16.74 26.815   2242   0.0075 0.0120  mknmz::make_phrase_hash
 9.94   15.94 15.912  18862   0.0008 0.0008  mknmz::wordcount_sub
 7.00   11.23 41.354   2242   0.0050 0.0184  mknmz::count_words
 7.00   11.22 10.335 447545   0.0000 0.0000  mknmz::hash
 5.31   8.518  8.371  74410   0.0001 0.0001  Text::Kakasi::xs_do_kakasi
 4.17   6.699  6.695   2288   0.0029 0.0029 
File::MMagic::checktype_data
 4.03   6.474  8.667      3   2.1580 2.8891  mknmz::write_index_sub
 3.95   6.339  6.322   8983   0.0007 0.0007  NKF::nkf
 3.94   6.321  8.422      3   2.1071 2.8074 
mknmz::write_phrase_hash_sub
 3.49   5.593 21.273   2242   0.0025 0.0095  mknmz::put_field_index
 3.16   5.078  5.087   2242   0.0023 0.0023 
mailnews::mailnews_citation_filter
 2.92   4.679  4.275 202277   0.0000 0.0000  mknmz::readw
 2.90   4.648  5.609   4484   0.0010 0.0013  html::remove_html_elements
 2.55   4.099  3.978  60848   0.0001 0.0001  IO::File::open
 2.25   3.609  3.601   4484   0.0008 0.0008  gfilter::line_adjust_filter


[SE2-2M] 修正後 インデックス書き出し1回

Total Elapsed Time = 341.0573 Seconds
  User+System Time = 143.2173 Seconds
Exclusive Times
%Time ExclSec CumulS #Calls sec/call Csec/c  Name
 11.5   16.56 26.506   2242   0.0074 0.0118  mknmz::make_phrase_hash
 10.7   15.38 15.343  18862   0.0008 0.0008  mknmz::wordcount_sub
 7.94   11.37 10.261 447545   0.0000 0.0000  mknmz::hash
 7.78   11.14 40.467   2242   0.0050 0.0180  mknmz::count_words
 6.04   8.648  8.464  74410   0.0001 0.0001  Text::Kakasi::xs_do_kakasi
 5.00   7.158  7.154   2288   0.0031 0.0031 
File::MMagic::checktype_data
 4.23   6.058  6.038   8983   0.0007 0.0007  NKF::nkf
 3.51   5.034 20.382   2242   0.0022 0.0091  mknmz::put_field_index
 3.28   4.704  5.779   4484   0.0010 0.0013  html::remove_html_elements
 3.27   4.678  4.693   2242   0.0021 0.0021 
mailnews::mailnews_citation_filter
 2.86   4.089  3.938  60828   0.0001 0.0001  IO::File::open
 2.71   3.879  3.869   4484   0.0009 0.0009  gfilter::line_adjust_filter
 2.37   3.399  3.394   2288   0.0015 0.0015 
File::MMagic::checktype_byfilename
 2.26   3.239  3.309   2242   0.0014 0.0015  html::weight_element
 2.00   2.869  5.144  60809   0.0000 0.0001  util::fclose


[SE3-2M] 修正後 インデックス書き出し21回

Total Elapsed Time = 239.0751 Seconds
  User+System Time = 230.5151 Seconds
Exclusive Times
%Time ExclSec CumulS #Calls sec/call Csec/c  Name
 18.6   42.94 59.237     21   2.0448 2.8208 
mknmz::write_phrase_hash_sub
 14.7   33.93 29.178 158718   0.0000 0.0000  mknmz::readw
 14.3   32.97 45.966     21   1.5702 2.1888  mknmz::write_index_sub
 7.32   16.86 26.178   2242   0.0075 0.0117  mknmz::make_phrase_hash
 6.85   15.79 15.743  18862   0.0008 0.0008  mknmz::wordcount_sub
 4.99   11.49 40.161   2242   0.0051 0.0179  mknmz::count_words
 4.78   11.01  9.677 447545   0.0000 0.0000  mknmz::hash
 3.53   8.128  7.907  74410   0.0001 0.0001  Text::Kakasi::xs_do_kakasi
 3.04   6.998  6.993   2288   0.0031 0.0031 
File::MMagic::checktype_data
 2.70   6.228  6.203   8983   0.0007 0.0007  NKF::nkf
 2.35   5.426 19.420   2242   0.0024 0.0087  mknmz::put_field_index
 2.00   4.614  5.529   4484   0.0010 0.0012  html::remove_html_elements
 1.87   4.317  4.320   2242   0.0019 0.0019 
mailnews::mailnews_citation_filter
 1.77   4.089  3.907  61028   0.0001 0.0001  IO::File::open
 1.61   3.709  3.697   4484   0.0008 0.0008  gfilter::line_adjust_filter


[SE4-2M] 修正後 インデックス書き出し194回

Total Elapsed Time = 1159.684 Seconds
  User+System Time = 1054.864 Seconds
Exclusive Times
%Time ExclSec CumulS #Calls sec/call Csec/c  Name
 38.4   405.5 557.10    194   2.0905 2.8717 
mknmz::write_phrase_hash_sub
 29.8   315.2 285.61 148561   0.0000 0.0000  mknmz::readw
 26.3   277.3 412.18    194   1.4298 2.1247  mknmz::write_index_sub
 1.68   17.75 27.745   2242   0.0079 0.0124  mknmz::make_phrase_hash
 1.44   15.21 15.182  18862   0.0008 0.0008  mknmz::wordcount_sub
 1.09   11.51 41.144   2242   0.0051 0.0184  mknmz::count_words
 1.06   11.13 10.245 447545   0.0000 0.0000  mknmz::hash
 0.83   8.728  8.581  74410   0.0001 0.0001  Text::Kakasi::xs_do_kakasi
 0.63   6.629  6.625   2288   0.0029 0.0029 
File::MMagic::checktype_data
 0.60   6.329  6.312   8983   0.0007 0.0007  NKF::nkf
 0.49   5.164 21.493   2242   0.0023 0.0096  mknmz::put_field_index
 0.45   4.758  4.797   2242   0.0021 0.0021 
mailnews::mailnews_citation_filter
 0.41   4.329  4.204  62758   0.0001 0.0001  IO::File::open
 0.40   4.249  5.519   4484   0.0009 0.0012  html::remove_html_elements
 0.35   3.739  3.731   4484   0.0008 0.0008  gfilter::line_adjust_filter
-- 
=====================================================================
寺西 忠勝(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 メーリングリストの案内