BugTrack/2251
の編集
Top
/
BugTrack
/
2251
[
トップ
] [
編集
|
差分
|
履歴
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
* HTML convert timeに、Menubar等の処理時間が含まれない [#cdef7dbe] - ページ: [[BugTrack2]] - 投稿者: [[ぃぉぃぉ]] - 優先順位: 低 - 状態: 完了 - カテゴリー: 本体バグ - 投稿日: 2007-06-24 (日) 12:00:08 - バージョン: 1.4.7 ** メッセージ [#s4ea5ce8] skinを呼ぶ前にHTML convert time(一番下に表示されるやつ)で表示する時間を作成しているため、skinでの処理時間がHTML convert timeの表示値に含まれていない。少なくともMenubarの処理時間は含めたい。 次の3つのファイルを修正して対応できる。サーバーでの処理時間ほぼすべてが含まれるようになるはず。 -skin/pukiwiki.skin.php -lib/func.php -lib/html.php ***skin/pukiwiki.skin.php [#l3b9d553] -表示するときに計算する。 - Powered by PHP <?php echo PHP_VERSION ?>. HTML convert time: <?php echo $taketime ?> sec. + Powered by PHP <?php echo PHP_VERSION ?>. HTML convert time: <?php showtaketime() ?> sec. ***lib/func.php [#yf3bde59] -表示する関数showtaketime()。どっかお尻の方にでも追加。 + function showtaketime() + { + $longtaketime = getmicrotime() - MUTIME; + $taketime = sprintf('%01.03f', $longtaketime); + echo $taketime; + } --MUTIMEはinit.phpで作成(define)される。 ***lib/html.php [#b1f5cd37] -要らなくなった計算部分削除。(skinを呼び出す直前で計算していた。) - $longtaketime = getmicrotime() - MUTIME; - $taketime = sprintf('%01.03f', $longtaketime); require(SKIN_FILE); -------- - コメントありがとうございます。HTML convert timeは皆「出力するために色々かかった時間」であるとイメージしているはずなので、実はそうでなく、MenuBarやskinであれこれやった時間が含まれてないというのは結構意外です。そしてこれをどうにかしようとした場合、関数でしかフォローできないと思います。まとめると、すごく自然な発想で、今までより現実的なアイデアだと思います -- [[henoheno]] &new{2007-06-24 (日) 18:43:23}; - 互換性を考えると、 $taketime はまだ残さねばならないかもしれません。これは lib/html.php のコードを入れ替えるだけで済むと思います。 -- [[henoheno]] &new{2007-06-24 (日) 18:44:43}; - $longtaketime = getmicrotime() - MUTIME; - $taketime = sprintf('%01.03f', $longtaketime); + // Obsolete but compatible + $taketime = showtaketime(); require(SKIN_FILE); - 後は関数名を一般化できないかどうか位かな・・・。$longtaketime は他では参照していない様ですね。echoだと $taketime に代入したり、複数回呼んだりできないので return にして・・・単純にするとこんな感じでしょうか -- [[henoheno]] &new{2007-06-24 (日) 18:47:24}; + function showtaketime() + { + return sprintf('%01.03f', getmicrotime() - MUTIME); + } - 後は・・・getmicrotime() はこの部分でしか使っていない関数なので、今回の関数を挿入する位置は getmicrotime() が定義されている場所の隣にするのが良さそうです。仮に将来 getmicrotime() ごと無くしたり、単純化できるなら、コードの複雑度が下がってより幸せですね :) -- [[henoheno]] &new{2007-06-24 (日) 19:00:43}; -- getmicrotime() ねたですが、[[PHPfunc:microtime]] のコメント欄に、strtok() を使うのが最もコストが軽いという実験結果と検証コードが載っていますね。 -- &new{2007-06-24 (日) 19:14:19}; - 関数になることで、例えばspam.php のブロック通知メールにも処理時間を(コードの重複なしで、簡単に)載せられるようになりそうですね。 -- [[henoheno]] &new{2007-06-24 (日) 19:10:18}; - さて、このまま定数 MUTIME (外部にある値)に依存した関数にすべきかどうか、それとも (getmicrotime() を引数に取って) 「時刻の差分とsprintf() する関数」に一般化すべきかどうか・・・。悩ましいですね。むむ。 -- [[henoheno]] &new{2007-06-24 (日) 22:21:38}; - コミットしました。関数の構造はシンプルなままとし、コメントで説明を補いました。関数名は elapsedtime() とさせていただきました。いかがなものでしょうか。 -- [[henoheno]] &new{2007-06-24 (日) 23:02:13}; -- [[cvs:lib/func.php]] (1.91) -- [[cvs:lib/html.php]] (1.63) -- [[cvs:skin/pukiwiki.skin.php]] (1.53) -- [[cvs:skin/tdiary.skin.php]] (1.35) - 作業お疲れ様です。なるほど。ここの互換性は重要かもしれませんね。バージョンあげたときに、スキンをそのまま使いたい人は多いでしょうから。&br;関数化での汎用性で悩まれていますが、この辺りの値を使う人は、この関数を呼ばずに直でUTIMEやgetmicrotimeを使うので、あまり気にしなくても良いかと。自分がskinを修正した際も直で式を書きたかったんですが、うまくいかなかったので仕方なく関数にしました。 -- [[ぃぉぃぉ]] &new{2007-06-25 (月) 00:02:17}; #comment
タイムスタンプを変更しない
* HTML convert timeに、Menubar等の処理時間が含まれない [#cdef7dbe] - ページ: [[BugTrack2]] - 投稿者: [[ぃぉぃぉ]] - 優先順位: 低 - 状態: 完了 - カテゴリー: 本体バグ - 投稿日: 2007-06-24 (日) 12:00:08 - バージョン: 1.4.7 ** メッセージ [#s4ea5ce8] skinを呼ぶ前にHTML convert time(一番下に表示されるやつ)で表示する時間を作成しているため、skinでの処理時間がHTML convert timeの表示値に含まれていない。少なくともMenubarの処理時間は含めたい。 次の3つのファイルを修正して対応できる。サーバーでの処理時間ほぼすべてが含まれるようになるはず。 -skin/pukiwiki.skin.php -lib/func.php -lib/html.php ***skin/pukiwiki.skin.php [#l3b9d553] -表示するときに計算する。 - Powered by PHP <?php echo PHP_VERSION ?>. HTML convert time: <?php echo $taketime ?> sec. + Powered by PHP <?php echo PHP_VERSION ?>. HTML convert time: <?php showtaketime() ?> sec. ***lib/func.php [#yf3bde59] -表示する関数showtaketime()。どっかお尻の方にでも追加。 + function showtaketime() + { + $longtaketime = getmicrotime() - MUTIME; + $taketime = sprintf('%01.03f', $longtaketime); + echo $taketime; + } --MUTIMEはinit.phpで作成(define)される。 ***lib/html.php [#b1f5cd37] -要らなくなった計算部分削除。(skinを呼び出す直前で計算していた。) - $longtaketime = getmicrotime() - MUTIME; - $taketime = sprintf('%01.03f', $longtaketime); require(SKIN_FILE); -------- - コメントありがとうございます。HTML convert timeは皆「出力するために色々かかった時間」であるとイメージしているはずなので、実はそうでなく、MenuBarやskinであれこれやった時間が含まれてないというのは結構意外です。そしてこれをどうにかしようとした場合、関数でしかフォローできないと思います。まとめると、すごく自然な発想で、今までより現実的なアイデアだと思います -- [[henoheno]] &new{2007-06-24 (日) 18:43:23}; - 互換性を考えると、 $taketime はまだ残さねばならないかもしれません。これは lib/html.php のコードを入れ替えるだけで済むと思います。 -- [[henoheno]] &new{2007-06-24 (日) 18:44:43}; - $longtaketime = getmicrotime() - MUTIME; - $taketime = sprintf('%01.03f', $longtaketime); + // Obsolete but compatible + $taketime = showtaketime(); require(SKIN_FILE); - 後は関数名を一般化できないかどうか位かな・・・。$longtaketime は他では参照していない様ですね。echoだと $taketime に代入したり、複数回呼んだりできないので return にして・・・単純にするとこんな感じでしょうか -- [[henoheno]] &new{2007-06-24 (日) 18:47:24}; + function showtaketime() + { + return sprintf('%01.03f', getmicrotime() - MUTIME); + } - 後は・・・getmicrotime() はこの部分でしか使っていない関数なので、今回の関数を挿入する位置は getmicrotime() が定義されている場所の隣にするのが良さそうです。仮に将来 getmicrotime() ごと無くしたり、単純化できるなら、コードの複雑度が下がってより幸せですね :) -- [[henoheno]] &new{2007-06-24 (日) 19:00:43}; -- getmicrotime() ねたですが、[[PHPfunc:microtime]] のコメント欄に、strtok() を使うのが最もコストが軽いという実験結果と検証コードが載っていますね。 -- &new{2007-06-24 (日) 19:14:19}; - 関数になることで、例えばspam.php のブロック通知メールにも処理時間を(コードの重複なしで、簡単に)載せられるようになりそうですね。 -- [[henoheno]] &new{2007-06-24 (日) 19:10:18}; - さて、このまま定数 MUTIME (外部にある値)に依存した関数にすべきかどうか、それとも (getmicrotime() を引数に取って) 「時刻の差分とsprintf() する関数」に一般化すべきかどうか・・・。悩ましいですね。むむ。 -- [[henoheno]] &new{2007-06-24 (日) 22:21:38}; - コミットしました。関数の構造はシンプルなままとし、コメントで説明を補いました。関数名は elapsedtime() とさせていただきました。いかがなものでしょうか。 -- [[henoheno]] &new{2007-06-24 (日) 23:02:13}; -- [[cvs:lib/func.php]] (1.91) -- [[cvs:lib/html.php]] (1.63) -- [[cvs:skin/pukiwiki.skin.php]] (1.53) -- [[cvs:skin/tdiary.skin.php]] (1.35) - 作業お疲れ様です。なるほど。ここの互換性は重要かもしれませんね。バージョンあげたときに、スキンをそのまま使いたい人は多いでしょうから。&br;関数化での汎用性で悩まれていますが、この辺りの値を使う人は、この関数を呼ばずに直でUTIMEやgetmicrotimeを使うので、あまり気にしなくても良いかと。自分がskinを修正した際も直で式を書きたかったんですが、うまくいかなかったので仕方なく関数にしました。 -- [[ぃぉぃぉ]] &new{2007-06-25 (月) 00:02:17}; #comment
テキスト整形のルールを表示する