BugTrack/2011
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*パフォーマンスの目(AutoLinkとisset()) [#g76f1e63]
- 元タイトル: パフォーマンスの目(AutoLink)
-ページ: [[BugTrack2]]
-投稿者: [[kawai]]
-優先順位: 低
-状態: 却下
-カテゴリー: その他
-投稿日: 2005-02-21 (月) 15:22:54
-バージョン: 1.4.5
** 状況 2005-02-05 [#t9c1028a]
1. AutoLinkが有効であり、かつ膨大な量のAutoLink対象ページ...
2. この状況では、AutoLinkの処理自体がボトルネックになって...
3. 実際のページ数よりも多くis_page()がコールされる状況が...
** 関連 [#w06c6d99]
- [[BugTrack/763]] 負荷対策のまとめ より派生。
- [[BugTrack/588#v37a4d58]] 案4: is_pageを高速化する (現...
**メッセージ [#k4a58489]
キャッシュをどこに持つべきか、持たないべきか。
細かいパフォーマンスチューニングについて。
とりあえず、1.4.5 をベースにします。
*** is_page() のキャッシュ [#i8558b16]
ページを更新する場合に、「ページの更新」ボタン→ redirect ...
遷移しますが、ページ数が多い(といっても 3000 ページほど...
redirection を出すまでの時間がとても長くなります。
少し話を絞りたいので、is_page() を調整する場合を考えます。
diff -u pukiwiki-1.4.5/lib/func.php pukiwiki-1.4.5.nw/li...
--- pukiwiki-1.4.5/lib/func.php 2005-01-27 21:50:43.0000...
+++ pukiwiki-1.4.5.nw/lib/func.php 2005-02-21 21:49:03.7...
@@ -43,8 +43,17 @@
// If the page exists
function is_page($page, $clearcache = FALSE)
{
- if ($clearcache) clearstatcache();
- return file_exists(get_filename($page));
+ static $is_page_cache=array();
+ if ($clearcache){
+ clearstatcache();
+ return $is_page_cache[$page]=file_exists(get_filename...
+ }else{
+ if(isset($is_page_cache[$page])){
+ return $is_page_cache[$page];
+ }else{
+ return $is_page_cache[$page]=file_exists(get_filenam...
+ }
+ }
}
function is_editable($page)
redirection を送り返すまでの時間を計測し、秒で出します。
$autolink=8(デフォルトの設定)
- original
-- 15.7280948162
-- 15.426306963
-- 15.5838799477
-- 15.5360071659
-- 15.4648089409
-- 15.4504718781
-- 15.684360981
-- 15.7360160351
-- 15.596309185
-- 16.0735969543
- modified
-- 14.764343977
-- 14.7630338669
-- 14.8030269146
-- 15.0483410358
-- 14.8650269508
-- 14.8224220276
-- 14.9437019825
-- 15.0613811016
-- 14.7906188965
-- 15.3033359051
おぉ。よかった。5 % 程度の高速化で済んだ。
$autolink=0
- original
-- 1.45402407646
-- 1.42836213112
-- 1.4352748394
-- 1.43410491943
-- 1.43086504936
- modified
-- 1.55005908012
-- 1.45177197456
-- 1.46557188034
-- 1.48746085167
-- 1.49871683121
こちらは若干速度が落ちます。
当然のことですが、ハードウェアの構成などで測定数値の状況...
上の数字はあくまで私の手元で実験した時の数字です。
問題は autolink が有効になっている場合に、do_search() が...
全ファイル探索に入るためですが、is_page() をキャッシュす...
軽減できます。
副作用として通常のページ表示で若干遅くなると推測されます...
----
-clearstatcache()をやらないから速くなっているとか? -- [[t...
-あー。そうですね。もう一回計ってみましょう。 -- [[kawai]...
-こんにちは :) [[PHPfunc:clearstatcache]] はPHPのファイル...
-autolink の値は 1.4.4 まではデフォルトで 0 (無効) でした...
-autolink = 8 の時の最初の2回が不要にばらついているのが...
-そうですね。私は1.4.4 は見ていません。 -- [[kawai]] &new...
-測りなおしたものを出しますので、上のものを書き換えます。...
-どうもautolink周りを覗いてみた方が良さそうな雰囲気ですね...
-了解でーす (書き換え) リリース作業に戻ります。 -- [[heno...
-はい。書き換えました。が、あまり変わりませんでした。これ...
-お疲れ様です。書き直されたものをふまえて確認させていただ...
-私もぶれが大きいのが気になってサーバの設定をみなおしてみ...
-もっとも clearcache の起こりにくいパターンなのですが、関...
-if ($clearcache) で unset($is_page_cache) したほうがいい...
-- (ナイスなツッコミです) -- [[henoheno]] &new{2005-02-21...
-? is_page() の第二引数は $page のキャッシュをクリアした...
-- 今回メモリ内に設けようとしているキャッシュはつまるとこ...
--ファイルがあるかどうかは pukiwiki の中では is_page を通...
--また、今回のキャッシュは単に file_exists キャッシュをし...
--どうも今私の使っている Xdebug にバグがあるようで、回数...
--もし clearstatcache を is_page を通さずに行っても良いと...
-第二引数を指定しているのは、grepする限りではfile.php:fil...
--staticキャッシュを持つのであれば、file.php:file_write ...
-まぁ、いずれにせよ、autolink をどうにかすれば済んでしま...
-- autolinkの実装の部分にどうにかできる余地があるかどうか...
-is_page()のコール回数の件ですが、1.4.5_1をインストールし...
-良くみたら[[teanan]]さんのツッコミが反映されたかどうかが...
-cache/autolink.dat のバイト数>17KB でした。 -- [[kawai]...
-1.4.5_1 もちょっと眺めてみます。 -- [[kawai]] &new{2005-...
-よっこらしょ。関連する場所の変更点はありませんね。 -- [[...
-こちらの件ですが、現状は比較している両者の条件が揃ってお...
//#comment
終了行:
*パフォーマンスの目(AutoLinkとisset()) [#g76f1e63]
- 元タイトル: パフォーマンスの目(AutoLink)
-ページ: [[BugTrack2]]
-投稿者: [[kawai]]
-優先順位: 低
-状態: 却下
-カテゴリー: その他
-投稿日: 2005-02-21 (月) 15:22:54
-バージョン: 1.4.5
** 状況 2005-02-05 [#t9c1028a]
1. AutoLinkが有効であり、かつ膨大な量のAutoLink対象ページ...
2. この状況では、AutoLinkの処理自体がボトルネックになって...
3. 実際のページ数よりも多くis_page()がコールされる状況が...
** 関連 [#w06c6d99]
- [[BugTrack/763]] 負荷対策のまとめ より派生。
- [[BugTrack/588#v37a4d58]] 案4: is_pageを高速化する (現...
**メッセージ [#k4a58489]
キャッシュをどこに持つべきか、持たないべきか。
細かいパフォーマンスチューニングについて。
とりあえず、1.4.5 をベースにします。
*** is_page() のキャッシュ [#i8558b16]
ページを更新する場合に、「ページの更新」ボタン→ redirect ...
遷移しますが、ページ数が多い(といっても 3000 ページほど...
redirection を出すまでの時間がとても長くなります。
少し話を絞りたいので、is_page() を調整する場合を考えます。
diff -u pukiwiki-1.4.5/lib/func.php pukiwiki-1.4.5.nw/li...
--- pukiwiki-1.4.5/lib/func.php 2005-01-27 21:50:43.0000...
+++ pukiwiki-1.4.5.nw/lib/func.php 2005-02-21 21:49:03.7...
@@ -43,8 +43,17 @@
// If the page exists
function is_page($page, $clearcache = FALSE)
{
- if ($clearcache) clearstatcache();
- return file_exists(get_filename($page));
+ static $is_page_cache=array();
+ if ($clearcache){
+ clearstatcache();
+ return $is_page_cache[$page]=file_exists(get_filename...
+ }else{
+ if(isset($is_page_cache[$page])){
+ return $is_page_cache[$page];
+ }else{
+ return $is_page_cache[$page]=file_exists(get_filenam...
+ }
+ }
}
function is_editable($page)
redirection を送り返すまでの時間を計測し、秒で出します。
$autolink=8(デフォルトの設定)
- original
-- 15.7280948162
-- 15.426306963
-- 15.5838799477
-- 15.5360071659
-- 15.4648089409
-- 15.4504718781
-- 15.684360981
-- 15.7360160351
-- 15.596309185
-- 16.0735969543
- modified
-- 14.764343977
-- 14.7630338669
-- 14.8030269146
-- 15.0483410358
-- 14.8650269508
-- 14.8224220276
-- 14.9437019825
-- 15.0613811016
-- 14.7906188965
-- 15.3033359051
おぉ。よかった。5 % 程度の高速化で済んだ。
$autolink=0
- original
-- 1.45402407646
-- 1.42836213112
-- 1.4352748394
-- 1.43410491943
-- 1.43086504936
- modified
-- 1.55005908012
-- 1.45177197456
-- 1.46557188034
-- 1.48746085167
-- 1.49871683121
こちらは若干速度が落ちます。
当然のことですが、ハードウェアの構成などで測定数値の状況...
上の数字はあくまで私の手元で実験した時の数字です。
問題は autolink が有効になっている場合に、do_search() が...
全ファイル探索に入るためですが、is_page() をキャッシュす...
軽減できます。
副作用として通常のページ表示で若干遅くなると推測されます...
----
-clearstatcache()をやらないから速くなっているとか? -- [[t...
-あー。そうですね。もう一回計ってみましょう。 -- [[kawai]...
-こんにちは :) [[PHPfunc:clearstatcache]] はPHPのファイル...
-autolink の値は 1.4.4 まではデフォルトで 0 (無効) でした...
-autolink = 8 の時の最初の2回が不要にばらついているのが...
-そうですね。私は1.4.4 は見ていません。 -- [[kawai]] &new...
-測りなおしたものを出しますので、上のものを書き換えます。...
-どうもautolink周りを覗いてみた方が良さそうな雰囲気ですね...
-了解でーす (書き換え) リリース作業に戻ります。 -- [[heno...
-はい。書き換えました。が、あまり変わりませんでした。これ...
-お疲れ様です。書き直されたものをふまえて確認させていただ...
-私もぶれが大きいのが気になってサーバの設定をみなおしてみ...
-もっとも clearcache の起こりにくいパターンなのですが、関...
-if ($clearcache) で unset($is_page_cache) したほうがいい...
-- (ナイスなツッコミです) -- [[henoheno]] &new{2005-02-21...
-? is_page() の第二引数は $page のキャッシュをクリアした...
-- 今回メモリ内に設けようとしているキャッシュはつまるとこ...
--ファイルがあるかどうかは pukiwiki の中では is_page を通...
--また、今回のキャッシュは単に file_exists キャッシュをし...
--どうも今私の使っている Xdebug にバグがあるようで、回数...
--もし clearstatcache を is_page を通さずに行っても良いと...
-第二引数を指定しているのは、grepする限りではfile.php:fil...
--staticキャッシュを持つのであれば、file.php:file_write ...
-まぁ、いずれにせよ、autolink をどうにかすれば済んでしま...
-- autolinkの実装の部分にどうにかできる余地があるかどうか...
-is_page()のコール回数の件ですが、1.4.5_1をインストールし...
-良くみたら[[teanan]]さんのツッコミが反映されたかどうかが...
-cache/autolink.dat のバイト数>17KB でした。 -- [[kawai]...
-1.4.5_1 もちょっと眺めてみます。 -- [[kawai]] &new{2005-...
-よっこらしょ。関連する場所の変更点はありませんね。 -- [[...
-こちらの件ですが、現状は比較している両者の条件が揃ってお...
//#comment
ページ名: