Re: Re: PHP profiling results under 2.0.37 Re: Performance of Apache 2.0 Filter

From: Date: Sat, 08 Jun 2002 22:31:00 +0000
Subject: Re: Re: PHP profiling results under 2.0.37 Re: Performance of Apache 2.0 Filter
References: 1  Groups: php.dev 
Request: Send a blank email to php-dev+get-85050@lists.php.net to get a copy of this message
PHP has its own buffering mechanism which can take care of this. Try output_buffering = 4096 in your php.ini. Zeev At 08:33 PM 6/8/2002, Brian Pane wrote:
Looking at some more syscall call traces, I'm seeing that the flush buckets used by php_apache_sapi_ub_write() are causing very small packets even for script-generated output, not just for blocks of static text. For example, I just compared the write patterns for 2.0.37 and 1.3.24, both with the default configuration for PHP-4.2.1, while delivering a file consisting solely of: <?phpinfo() ?> 1.3: writev(3, [{"HTTP/1.1 200 OK\r\nDate: Sat, 08 J"..., 4089}, {"28\r\n", 4}, {"<tr valign=\"baseline\" bgcolor=\"#"..., 40}, {"\r\n", 2}], 4) = 4135 write(3, "ffb\r\n<td bgcolor=\"#ccccff\"><b>as"..., 4098) = 4098 writev(3, [{"fdd\r\ntd bgcolor=\"#ccccff\"><b>hig"..., 4068}, {"22\r\n", 4}, {"</b><br /></td><td align=\"center"..., 34}, {"\r\n", 2}], 4) = 4108 writev(3, [{"ff2\r\n/usr/sbin/sendmail -t -i </"..., 4089}, {"22\r\n", 4}, {"</b><br /></td><td align=\"center"..., 34}, {"\r\n", 2}], 4) = 4129 (followed by a few more 4KB writes) 2.0: writev(8, [{"HTTP/1.1 200 OK\r\nDate: Sat, 08 J"..., 220}, {"47\r\n", 4}, {"<!DOCTYPE HTML PUBLIC \"-//W3C//D"..., 71}, {"\r\n", 2}], 4) = 297 writev(8, [{"6\r\n", 3}, {"<head>", 6}, {"\r\n", 2}], 3) = 11 writev(8, [{"1c\r\n", 4}, {" <!-- <DEFANGED_STYLE type=\"text/css\"><!--\n", 28}, {"\r\n", 2}], 3) = 34 writev(8, [{"1d\r\n", 4}, {"a { text-decoration: none; }\n", 29}, {"\r\n", 2}], 3) = 35 writev(8, [{"28\r\n", 4}, {"a:hover { text-decoration: under"..., 40}, {"\r\n", 2}], 3) = 46 writev(8, [{"55\r\n", 4}, {"h1 { font-family: arial, helveti"..., 85}, {"\r\n", 2}], 3) = 91 writev(8, [{"55\r\n", 4}, {"h2 { font-family: arial, helveti"..., 85}, {"\r\n", 2}], 3) = 91 writev(8, [{"49\r\n", 4}, {"body, td { font-family: arial, h"..., 73}, {"\r\n", 2}], 3) = 79 writev(8, [{"56\r\n", 4}, {"th { font-family: arial, helveti"..., 86}, {"\r\n", 2}], 3) = 92 writev(8, [{"e\r\n", 3}, {"//--> --> </DEFANGED_STYLE>\n", 14}, {"\r\n", 2}], 3) = 19 (followed by a thousand more tiny writes) It looks like "unbuffered" PHP output in 1.3 is benefitting from the httpd's own buffering. And "unbuffered" output in 2.0, in contrast, is really, really not buffered, because of the flush buckets inserted by php_apache_sapi_ub_write. And the tiny packets that result in the 2.0 case are likely a major cause of reports of slowness under 2.0. --Brian -- PHP Development Mailing List <http://www.php.net/> To unsubscribe, visit: http://www.php.net/unsub.php


« previous php.dev (#85050) next »