pukiwiki_adv icon indicating copy to clipboard operation
pukiwiki_adv copied to clipboard

公式Wikiでフリーズするページ

Open shodw opened this issue 11 years ago • 8 comments

公式Adv. Wikiで、開くとフリーズするページがいくつかあります。 IE10、Chrome、FireFoxを試しましたが全て応答なしになります。 http://pukiwiki.logue.be/Technical%20Note/JavaScript http://pukiwiki.logue.be/Technical%20Note/Load%20Reduction など。

また、私のサーバーで動いているWikiですが、 Plus!では1~2秒で生成できるようなページが Adv.では7~8秒も掛かります。何故でしょうか? ページ内容は ・10*10のテーブル・・・200個、文字数は各セル5~10程度 ・BGCOLOR()・・・200個 ・color()・・・300個 ・attachref()・・・100個(リンク切れなし・数KBのアイコンサイズ) といった感じです。デバッグモードではありません。

PHP 5.4.29 / Apache 2.2.25 / さくらインターネット共用サーバ(ライトプラン)

それと、バグ報告ではないのでこちらで良いのか分かりませんが、 jsのdataTableのみを無効にしたいのですが、スマートに行う方法はありませんでしょうか。 結合しているセルがあるテーブルではソートが正しく機能しないので不用です。

shodw avatar Jun 30 '14 15:06 shodw

Chrome以外のブラウザで固まるのを確認しました。原因は調査中です。

>また、私のサーバーで動いているWikiですが、 >Plus!では1~2秒で生成できるようなページが >Adv.では7~8秒も掛かります。 FAQにも書いてありますが、Adv.ではページの生成時間ではなくスクリプトの実行時間を時間として出力しています。このため、計測時間は無印版やPlus!より多く表示されます。また、生成したページは、逐次出力するのではなく、一旦バッファに貯めこんでから一気に出力する実装なので、もしかするとそこで体感速度的に遅くなっているように感じるかもしれません。(ついでに、Gz圧縮も行っています。)

dataTablesに関しては、skin.original.jsの454行目付近をコメントアウトしてください。

logue avatar Jun 30 '14 23:06 logue

ありがとうございます。

FAQの内容については理解しておりましたが、それにしても明らかに遅いです。 Plus!で体感で1秒程度のページが、Adv.では7~12秒掛かっています。 ローカル環境でも試しましたが同じような速度です。 これはPlus!とAdv.のコア部分の違いによるものなのでしょうか?

shodw avatar Jul 01 '14 07:07 shodw

うーん、そこはなんとも。 最初の行が表示されるまでに理論上、前述したとおり時間がかかるように感じるのは事実です。代わりに一度表示されたら全部が表示されるまでに時間がかからないという設計になっています。このため、体感速度への影響はサーバー負荷の影響をより多く受けるようになっていると思います。 気になるようならば、View.phpの131行目をob_start();にしてGzip圧縮転送を無効化するという方法もあります。

あるいは、Plus!でも問題になりましたが、AutoGlossaryの機能が重い可能性もあります。Plus!より動作する精度が上がっているのでその分時間がかかっていることもありえます。この場合、Glossaryページを削除することで機能を無効化できます。 いずれにせよ、そこまでの速度低下は考えにくいといったところですね。

logue avatar Jul 01 '14 15:07 logue

調査してみたところ、どうもプラグインの読み込み処理でロスが結構多いみたいなので、やっつけ仕事ですが修正しておきました。

logue avatar Jul 04 '14 14:07 logue

Gzip圧縮転送の無効化とGlossaryの削除、また修正版も試してみましたが、 表示速度の改善は体感できるレベルでは見られませんでした。 残念ですが今回は使用を断念します。 対応いただきありがとうございました。

shodw avatar Jul 05 '14 10:07 shodw

可能でしたら、今後のエンジン最適化の参考にしたいのでデーター送ってもらえると幸いです。

logue avatar Jul 05 '14 10:07 logue

refやattachrefの有無では速度に大きな差は無かったので、 テーブルの変換に時間が掛かっているようです。 以下のようなテーブルを100個ほど並べたページです。

**見出し |BGCOLOR(#ccffcc):CENTER:50|BGCOLOR(#eeeeee):CENTER:150|BGCOLOR(#eeeeee):CENTER:150|BGCOLOR(#eeeeee):CENTER:150|c |-|BGCOLOR(#ccffff):[[リンク]]|BGCOLOR(#ccffff):[[リンク]]|BGCOLOR(#ccffff):[[リンク]]| |A|BGCOLOR(#ffccff):[[リンク]]|BGCOLOR(#ffccff):[[リンク]]|BGCOLOR(#ffccff):[[リンク]]| |B|BGCOLOR(#ffccff):[[リンク]]|BGCOLOR(#ffccff):[[リンク]]|BGCOLOR(#ffccff):[[リンク]]| |C|BGCOLOR(#ffcccc):[[リンク]]|BGCOLOR(#ffcccc):[[リンク]]|BGCOLOR(#ffcccc):[[リンク]]| |D|BGCOLOR(#ffcccc):[[リンク]]|BGCOLOR(#ffcccc):[[リンク]]|BGCOLOR(#ffcccc):[[リンク]]| |E|BGCOLOR(#ccddff):[[リンク]]|BGCOLOR(#ccddff):[[リンク]]|BGCOLOR(#ccddff):[[リンク]]| |F|BGCOLOR(#ccddff):[[リンク]]|BGCOLOR(#ccddff):[[リンク]]|BGCOLOR(#ccddff):[[リンク]]|

───────────────────────────────── Pukiwiki Adv. Processing time: 10.476 sec. 表示されるまで体感12~13秒といったところ。

Pukiwiki無印 HTML convert time: 1.395 sec. 体感で3秒程度で全て表示されます。

shodw avatar Jul 05 '14 13:07 shodw

ありがとうございます。 すると、下手に最適化かけたTableCell.phpあたりに原因がありそうです。 拡張書式としてLANG(en):とか、JSUTIFY:のようなものも加えましたしね。

logue avatar Jul 05 '14 14:07 logue