data(wiki text) を書き込む時のメモリ消費を抑える

  • ページ: BugTrack2
  • 投稿者: 名無しさん
  • 優先順位: 低
  • 状態: 完了
  • カテゴリー: その他
  • 投稿日: 2007-10-14 (日) 17:00:09
  • バージョン:

メッセージ

ページを保存する時に、不要なデータを抱え込んだままになっていると思うので提案します。
cvs:lib/file.php (1.88)

 function page_write($page, $postdata, $notimestamp = FALSE)
 {
 	global $autoalias, $aliaspage;
 
 	if (PKWK_READONLY) return; // Do nothing
 
 	$postdata = make_str_rules($postdata);
 
 	// Create and write diff
 	$oldpostdata = is_page($page) ? get_source($page, TRUE, TRUE) : '';
 	$diffdata    = do_diff($oldpostdata, $postdata);
 	file_write(DIFF_DIR, $page, $diffdata);
+ 	unset($oldpostdata, $diffdata);

雑談のようにサイズの大きなページだと、変更前のデータ($oldpostdata) と差分データ($diffdata) を、
差分を書き込んだ後にも保持し続けるのは負担になる(特にAutoLink を使っている時)と思うので、unset() を追加しただけです。

サイズが10k のページにコメントを追加する場合を例にしても、
変更前(10k) + 差分データ(10k + コメント) + 変更後のデータ(10k + コメント) の合計約30k が、
変更後のデータ約10k ですむようになるだけなので、
BugTrack2/159 ほどは大きな効果が無いかもしれません。


  • コメントありがとうございます。妥当だと思います :) -- henoheno 2007-10-15 (月) 00:50:10


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2007-10-15 (月) 00:50:10
Site admin: PukiWiki Development Team

PukiWiki 1.5.2+ © 2001-2019 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u8. HTML convert time: 0.184 sec.

OSDN