ます’s Blog - どうでもいい記事100選

どうでもいい記事100選

%{mod_php_memory_usage}n


使用最大メモリのログ出力の追加。--enable-memory-limitを使用し、Apache 1.xの設定ファイルのログ出力フォーマット命令(LogFormat)に "%{mod_php_memory_usage}n"を追加することでスクリプトが使用した 最大メモリサイズが分かるようになった。 (Thies)

どうやら本気で怒らせたいらしい。。。(--メ

確かに4.1では正しく動きました。。。が、4.4だと全く動いていないんですけど何か?
ずーーーーーーっと、0しか記録されないんですけど?┐( ̄ヘ ̄)┌
先日のに引き続き、やっつけで以下パッチを敢行。
これで(一応)記録されるようになりました。

diff -urN php-4.4.7,orig/sapi/apache/mod_php4.c php-4.4.7/sapi/apache/mod_php4.c
--- php-4.4.7,orig/sapi/apache/mod_php4.c	2007-01-01 18:46:51.000000000 +0900
+++ php-4.4.7/sapi/apache/mod_php4.c	2007-11-22 19:45:03.000000000 +0900
@@ -640,17 +640,6 @@
 {
 	int result = send_php(r, 0, NULL);
 
-#if MEMORY_LIMIT
-	{
-		char *mem_usage;
-		TSRMLS_FETCH();
- 
-		mem_usage = ap_psprintf(r->pool, "%u", AG(allocated_memory_peak));
-		AG(allocated_memory_peak) = 0;
-		ap_table_setn(r->notes, "mod_php_memory_usage", mem_usage);
-	}
-#endif
-
 	return result;
 }
 /* }}} */
diff -urN php-4.4.7,orig/sapi/apache/sapi_apache.c php-4.4.7/sapi/apache/sapi_apache.c
--- php-4.4.7,orig/sapi/apache/sapi_apache.c	2007-01-01 18:46:51.000000000 +0900
+++ php-4.4.7/sapi/apache/sapi_apache.c	2007-11-22 19:45:03.000000000 +0900
@@ -52,6 +52,14 @@
 		file_handle.free_filename = 0;
 
 		(void) php_execute_script(&file_handle TSRMLS_CC);
+#if MEMORY_LIMIT
+		char *mem_usage;
+		TSRMLS_FETCH();
+ 
+		mem_usage = ap_psprintf(r->pool, "%u", AG(allocated_memory_peak));
+		AG(allocated_memory_peak) = 0;
+		ap_table_setn(r->notes, "mod_php_memory_usage", mem_usage);
+#endif
 	}
 
 	AP(in_request) = 0;

開発環境だけにしか適用しないので、これが原因でクラッシュしても大いに結構!
Apache1.3とPHP4.4って、どんだけレガシー環境いつまでも使ってんじゃねぇ!という、天の声という事にしておこう。
この辺は5.2でも変わっていないような感じがします。ソースコード)を斜め読みした限りでは以下の状況。

[4.4.7]

SAPI  apache         : NG
SAPI  apache2filter  : NG(そもそもコードの欠片も見当たらない)
SAPI  apache2handler : OK

[5.2.5]
SAPI  apache         : NG
SAPI  apache2filter  : OK
SAPI  apache2handler : OK

php_request_shutdownよりも後に記録しようとしているので、それじゃタイミングが遅すぎる。。。_| ̄|○
この辺はマニュアルにも記載が無いんだよなぁ。。。memory_get_usage関数やmemory_get_peak_usage関数を使えって事なのかしら。
それにしても、ここ最近の地雷を踏む確立は非常に高い。。。歩く地雷原みたいな。