BugTrack/2159
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
* 大きな配列の変換処理にunsetが無い [#yead46b9]
- ページ: [[BugTrack2]]
- 投稿者: [[ko-zu]]
- 優先順位: 低
- 状態: 完了
- カテゴリー: 本体バグ
- 投稿日: 2006-02-02 (木) 01:28:01
- バージョン:
** 関連 [#l52b19c3]
- [[BugTrack2/103]] バックアップデータ構造の改善
** 修正 [#wedbfdb4]
- [[cvs:lib/backup.php]] (1.11): BugTrack2/159: Just free...
-- あるページのバックアップデータを操作する際、最大でバッ...
** メッセージ [#yd802df9]
[[BugTrack/732]]や[[メモリ制限周りの問題>Googleサイト内検...
-make_backup()
foreach($backups as $age=>$data) {
$strout .= PKWK_SPLITTER . ' ' . $data['time'] . "\n"...
$strout .= join('', $data['data']);
+ unset($backups[$age]);
}
$strout = preg_replace("/([^\n])\n*$/", "$1\n", $strou...
-get_backup()
$regex_splitter = '/^' . preg_quote(PKWK_SPLITTER) . '...
- foreach($lines as $line) {
+ foreach($lines as $key => $line) {
中略
+ unset($lines[$key]);
}
一応この手のメモリピークの元になりそうな所を探してみまし...
簡単なメモリ測定関数を作って遊んでいたところ、(解凍後の)...
数kBくらいのページでも頻繁に更新すればバックアップは1メガ...
大容量投稿で案外簡単に攻撃できそう、と思ったら実は難しい?
-gzfile内部のメモリピークをターゲットに、バックアップ読み...
--ローカル(CPUが十分速い)の実験では投稿内容をうまく選べば...
投稿時やバックアップ書込時の記事サイズ判定を導入した方が...
((あとPukiWiki2ではバックアップは結合無しかサイズで小分け...
検証…3.4MBのソース(1MB((だいたいこれぐらいが投稿の限界か...
メモリ測定はforeachループ脱出直後に設置、スキン中で出力。
Memory Usage 22114 kbytes, in get_backup. // パッチ前
Memory Usage 12124 kbytes, in get_backup_unset. // 測定...
Memory Usage 12528 kbytes, in get_backup_patch. // あて...
配列が10Mのメモリを占有…恐怖。
-ちなみに4MBくらいの改行の多いファイルにすると、40MBのmem...
どうやら内部のgzfileが喰っているようです。fopenして必要な...
((PHP初級者なんで叩いたってくださいな。))
--------
- 興味深いですね :) メモリ喰ってそうな処理が色々あること...
- こんにちは :) 投稿ありがとうございます。[[teanan]]さん...
-- 既にコメントにある通り、さらに改善する余地はあると思い...
-- ということで [[cvs:lib/backup.php]] (1.11) -- [[henohe...
-- official, dev にも適用しました。(devはCVS版と同じ状態...
- こちらも完了にしておきます。 -- [[henoheno]] &new{2006-...
- その「簡単なメモリ測定関数」ってどうやって書くのでしょ...
#comment
** 余談: get_backupの最適化に挑戦 [#n1a8640d]
- 対応どもです。get_backupを最適化((文字列処理にして、無...
-- 正規表現の\sは改行を含むので' '半角スペースに固定して...
- こちらの件、ついていけておらず申し訳ありません。話題別...
#comment
終了行:
* 大きな配列の変換処理にunsetが無い [#yead46b9]
- ページ: [[BugTrack2]]
- 投稿者: [[ko-zu]]
- 優先順位: 低
- 状態: 完了
- カテゴリー: 本体バグ
- 投稿日: 2006-02-02 (木) 01:28:01
- バージョン:
** 関連 [#l52b19c3]
- [[BugTrack2/103]] バックアップデータ構造の改善
** 修正 [#wedbfdb4]
- [[cvs:lib/backup.php]] (1.11): BugTrack2/159: Just free...
-- あるページのバックアップデータを操作する際、最大でバッ...
** メッセージ [#yd802df9]
[[BugTrack/732]]や[[メモリ制限周りの問題>Googleサイト内検...
-make_backup()
foreach($backups as $age=>$data) {
$strout .= PKWK_SPLITTER . ' ' . $data['time'] . "\n"...
$strout .= join('', $data['data']);
+ unset($backups[$age]);
}
$strout = preg_replace("/([^\n])\n*$/", "$1\n", $strou...
-get_backup()
$regex_splitter = '/^' . preg_quote(PKWK_SPLITTER) . '...
- foreach($lines as $line) {
+ foreach($lines as $key => $line) {
中略
+ unset($lines[$key]);
}
一応この手のメモリピークの元になりそうな所を探してみまし...
簡単なメモリ測定関数を作って遊んでいたところ、(解凍後の)...
数kBくらいのページでも頻繁に更新すればバックアップは1メガ...
大容量投稿で案外簡単に攻撃できそう、と思ったら実は難しい?
-gzfile内部のメモリピークをターゲットに、バックアップ読み...
--ローカル(CPUが十分速い)の実験では投稿内容をうまく選べば...
投稿時やバックアップ書込時の記事サイズ判定を導入した方が...
((あとPukiWiki2ではバックアップは結合無しかサイズで小分け...
検証…3.4MBのソース(1MB((だいたいこれぐらいが投稿の限界か...
メモリ測定はforeachループ脱出直後に設置、スキン中で出力。
Memory Usage 22114 kbytes, in get_backup. // パッチ前
Memory Usage 12124 kbytes, in get_backup_unset. // 測定...
Memory Usage 12528 kbytes, in get_backup_patch. // あて...
配列が10Mのメモリを占有…恐怖。
-ちなみに4MBくらいの改行の多いファイルにすると、40MBのmem...
どうやら内部のgzfileが喰っているようです。fopenして必要な...
((PHP初級者なんで叩いたってくださいな。))
--------
- 興味深いですね :) メモリ喰ってそうな処理が色々あること...
- こんにちは :) 投稿ありがとうございます。[[teanan]]さん...
-- 既にコメントにある通り、さらに改善する余地はあると思い...
-- ということで [[cvs:lib/backup.php]] (1.11) -- [[henohe...
-- official, dev にも適用しました。(devはCVS版と同じ状態...
- こちらも完了にしておきます。 -- [[henoheno]] &new{2006-...
- その「簡単なメモリ測定関数」ってどうやって書くのでしょ...
#comment
** 余談: get_backupの最適化に挑戦 [#n1a8640d]
- 対応どもです。get_backupを最適化((文字列処理にして、無...
-- 正規表現の\sは改行を含むので' '半角スペースに固定して...
- こちらの件、ついていけておらず申し訳ありません。話題別...
#comment
ページ名: