#author("2018-02-27T23:26:05+09:00","","")
* 表組みのレンダリングが遅い [#rcd09f9c]
#author("2018-03-14T16:07:14+09:00;2018-03-14T07:21:46+09:00","","")
* ページリンクが多数ある場合の表組みレンダリングが遅い [#rcd09f9c]

- ページ: [[BugTrack]]
- 投稿者: [[umorigu]]
- 優先順位: 低
- 状態: 提案
- 状態: 完了
- カテゴリー: 本体バグ
- 投稿日: 2018-02-27 (火) 23:25:57
- バージョン: 1.5.1
- リリース予定バージョン: 1.5.2

** メッセージ [#r4cac582]
[[BugTrack/560]]でキャッシュを使ってtracker_listの高速化を行いましたが、
PukiWikiの表組みのサーバー側レンダリングが遅いため、表示内容のキャッシュを行っても効果が限定的でした。

ファイルアクセスよりもメモリ上の操作が遅いのは不自然なため、
なにかパフォーマンス上大きなボトルネックがあると推測できます。
%%ファイルアクセスよりもメモリ上の操作が遅いのは不自然なため、なにかパフォーマンス上大きなボトルネックがあると推測できます。%%

遅い原因はページリンク(に伴う経過表示のためのファイル更新日時取得)が多いことでした。


--------
- [[PukiWiki/1.4/ちょっと便利に/convert_htmlの改造実験]] を見つけました。何かヒントが隠れているかもしれません。 -- [[umorigu]] &new{2018-02-27 (火) 23:26:05};
- [[PukiWiki/1.4/ちょっと便利に/convert_htmlの改造実験]] を見つけました。何かヒントが隠れているかもしれません -- [[umorigu]] &new{2018-02-27 (火) 23:26:05};
- 勘違いでした。調べたところ、ただの表組みだけではそれほど遅くなさそうです。ページリンクを生成するのにページの更新日時を取得しているために tracker_list, bugtrack_list では遅さが目立つ、ということのようです -- [[umorigu]] &new{2018-02-28 (水) 00:24:53};

([[BugTrack/560]] より複製)
- [[BugTrack/2457]]で判明した遅い原因を解消しました。ページリンク用のtimestamp取得にキャッシュを使うようにし、部分更新(ページの追加更新)がある場合でも1秒程度で表示できるようになりました -- [[umorigu]] &new{2018-03-01 (木) 05:52:42};
-- キャッシュなし: pukiwiki.osdn.jp/_o_560_before/?%E8%B3%AA%E5%95%8F%E7%AE%B13 (6-11秒)
-- キャッシュあり: pukiwiki.osdn.jp/_o_560_after2/?%E8%B3%AA%E5%95%8F%E7%AE%B13 (0.3-0.6秒)(部分更新の場合:1秒)
- 「[[BugTrack/2457]] で判明した遅い原因」が何なのかは [[BugTrack/2457]] に書かれていないように見え、コミットログにも無さそうなので、よくわかりません。 -- [[henoheno]] &new{2018-03-03 (土) 07:38:28};
-- 「ページリンクを生成するのにページの更新日時を取得しているために tracker_list, bugtrack_list では遅さが目立つ」がその記述になります。tracker_list 対象が1000ページあったとすると、ページリンクを生成するためにファイルシステムアクセスである is_page() と get_filetime() がそれぞれ最低1000回呼び出され、これが遅いということでした。実装をpushしました commit:3e9aff6511 -- [[umorigu]] &new{2018-03-03 (土) 22:13:58};
- 原因はページリンク(経過表示のためのファイル更新日時取得)が多いことであることがわかりましたので、対策自体は個別のプラグイン側で行います。チケットとしては原因判明で完了にします -- [[umorigu]] &new{2018-03-14 (水) 07:21:46};

#comment


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Site admin: PukiWiki Development Team

PukiWiki 1.5.4+ © 2001-2022 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u12. HTML convert time: 0.074 sec.

OSDN