Re: [PHP-SOAP-DEV] some benchmarks.
Status: Alpha
Brought to you by:
rodif_bl
|
From: Andrey H. <ahr...@ic...> - 2002-05-04 08:22:11
|
Maybe I've some good news for you. Last night I do some hacking on the test
scripts.
Testing with ab a simple hello_world_client+server.php gives me 377 errors -
probably all of those are because of the segfault.
I started to debug in th userspace to realize where it is crashing - and
what a surprise, after I started to debug the scripts do not crash.
Here I will post 2 pairs of sample scripts. The first one gives errors, the
second one not. To be almost completely sure I have done throughout test for
the latter pair for 1,500,000 reqs or 25200 secs(7hours) - it did 1,386,142
requests. The difference between then is the server part of the pair. No
segfaulting scripts have just 2 lines more and these lines have nothing in
common with the SOAP extension.
hello_world_client.php + hello_world_server.php:
<?php
error_reporting(E_ALL);
echo microtime()."<br>\n";
$hello = new SoapObject("http://192.168.1.140/hello_world_server.php",
"urn:HelloWord");
echo microtime()."<br>\n";
echo $hello->hello_soap("alala");
echo microtime()."<br>\n";
//var_dump($hello);
//var_dump(get_class_methods('SoapServer'));
?>
hello_world_server.php
<?php
/*
$fname = 'tests/dbg'.str_replace(" ","_",microtime()).'.xml';
$fd=fopen($fname,'w+');
ob_start();
//var_dump($HTTP_RAW_POST_DATA);
//$a=ob_get_contents();
ob_end_clean();
fputs($fd,$a."\n");
fclose($fd);
*/
$server = new SoapServer("urn:HelloWord");
/*
$fd=fopen($fname,'a+');
fputs($fd,"after_server_create\n");
fclose($fd);
*/
$server->addfunction("hello_soap");
//$fd=fopen($fname,'a');
//fputs($fd,"after_addfunction\n");
//fclose($fd);
$server->handle();
function hello_soap($message){
return "PHP-SOAP says ($message)";
}
?>
NOT SEGFAULTING pair:
<?php
error_reporting(E_ALL);
echo microtime()."<br>\n";
$hello = new SoapObject("http://192.168.1.140/hello_world_server_noseg.php",
"urn:HelloWord");
echo microtime()."<br>\n";
echo $hello->hello_soap("alala");
echo microtime()."<br>\n";
//var_dump($hello);
//var_dump(get_class_methods('SoapServer'));
?>
<?php
/*
$fname = 'tests/dbg'.str_replace(" ","_",microtime()).'.xml';
$fd=fopen($fname,'w+');
*/
ob_start();
//var_dump($HTTP_RAW_POST_DATA);
//$a=ob_get_contents();
ob_end_clean();
/*
fputs($fd,$a."\n");
fclose($fd);
*/
$server = new SoapServer("urn:HelloWord");
/*
$fd=fopen($fname,'a+');
fputs($fd,"after_server_create\n");
fclose($fd);
*/
$server->addfunction("hello_soap");
//$fd=fopen($fname,'a');
//fputs($fd,"after_addfunction\n");
//fclose($fd);
$server->handle();
function hello_soap($message){
return "PHP-SOAP says ($message)";
}
?>
Results from segfaulting pair:
Concurrency Level: 20
Time taken for tests: 849.216 seconds
Complete requests: 50000
Failed requests: 377
(Connect: 0, Length: 377, Exceptions: 0)
Broken pipe errors: 0
Total transferred: 16836709 bytes
HTML transferred: 4933615 bytes
Requests per second: 58.88 [#/sec] (mean)
Time per request: 339.69 [ms] (mean)
Time per request: 16.98 [ms] (mean, across all concurrent requests)
Transfer rate: 19.83 [Kbytes/sec] received
Results from nonsegfaulting pair:
Concurrency Level: 20
Time taken for tests: 25200.047 seconds
Complete requests: 1386142
Failed requests: 0
Broken pipe errors: 0
Total transferred: 467135920 bytes
HTML transferred: 137229840 bytes
Requests per second: 55.01 [#/sec] (mean)
Time per request: 363.60 [ms] (mean)
Time per request: 18.18 [ms] (mean, across all concurrent requests)
Transfer rate: 18.54 [Kbytes/sec] received
I hope that this will give some light what is going on.
Have a nice day
Andrey
----- Original Message -----
From: "brad lafountain" <rod...@ya...>
To: "Andrey Hristov" <ahr...@ic...>
Sent: Friday, May 03, 2002 9:47 PM
Subject: Re: [PHP-SOAP-DEV] some benchmarks.
> Yeah i use malloc on purpose..
>
> I use it for all of my wsdl stuff. My idea behind it is once a wsdl has
been
> parsed it can be kept around. Wsdl caching... its not in shared memory so
each
> demon will have to cache it. But it should work pretty good. even client
and
> server can share the same cached wsdl. Maybe someday i will make it use
shared
> memory.
>
> Let me know how the benchmarks go.
>
> Ill get that segfault eventually!
>
> - Brad
>
> --- Andrey Hristov <ahr...@ic...> wrote:
> > Brad,
> >
> > I've downloaded some other web stressing tools to do some other
benchmarks.
> > Unfortunately I cannot use MS Web Stress Tool because it runs only on NT
> > 4,5,6 but I've found some Open Source stuff on sourceforge. May be I'll
test
> > tonight and post the results after that or tommorow. I'm sorry but I
cannot
> > help you about this segfault. Few months ago I tried to write a php
> > extension and had segfaults on extension globals because I didn't knowed
> > that they are treated in special way. I had also segfault on when
working
> > with strings - not smart ones.
> > May I ask why you use malloc() instead of emalloc(). I've read int the
"Web
> > development with PHP4" and the same info available on php.net and
zend.com
> > that this kind of calls should not be performed. Look at the docs at
php.net
> > in the section of module writing. malloc() memory survive the after the
end
> > of script's life. Isn't here the problem.
> >
> > Andrey
> >
> > ----- Original Message -----
> > From: "brad lafountain" <rod...@ya...>
> > To: "Andrey Hristov" <ahr...@ic...>;
> > <php...@li...>
> > Sent: Friday, May 03, 2002 6:24 PM
> > Subject: Re: [PHP-SOAP-DEV] some benchmarks.
> >
> >
> > > This sounds good :)..
> > >
> > > I did some benchmarks before too..
> > > I did a
> > >
> > > <?
> > > echo "hello world";
> > > ?>
> > >
> > > vs
> > >
> > > <?
> > > $server = new SoapServer();
> > > $server->handle();
> > > function hello()
> > > {
> > > return "hello world";
> > > }
> > > ?>
> > >
> > > I don't remember exactly what my resutls were but they weren't far
off
> > from
> > > each other... like 350 requests vs 400 or 450...
> > >
> > > I have every intension to keep the base code as fast as possible.
Adding
> > wsdl
> > > validation and other stuff will slow down the code but for the most
part I
> > am
> > > going to keep speed in mind at every release. Expecially if you don't
use
> > > wsdl's.. when you are talking php -> php it will be briliantly fast.
> > >
> > > Lets not forget what code is easiest to read :) This is another huge
part
> > im
> > > trying to push.
> > >
> > > Maybe i can get my benchmarking page functional so we can start
posting
> > these
> > > benchmarks.
> > >
> > > I fixed some more bugs last nite stuff having to do with wsdl server
> > binding.
> > > And i was serializing the Map type wrong.
> > >
> > > I am trying to track down a random segfault. Man its pissing me off.
I
> > will
> > > feel pretty releaved when i get that little bastard.
> > >
> > > _ brad _
> > >
> >
> >
> >
> > _______________________________________________________________
> >
> > Have big pipes? SourceForge.net is looking for download mirrors. We
supply
> > the hardware. You get the recognition. Email Us:
ban...@so...
> > _______________________________________________
> > Phpsoaptoolkit-development mailing list
> > Php...@li...
> > https://lists.sourceforge.net/lists/listinfo/phpsoaptoolkit-development
>
>
> __________________________________________________
> Do You Yahoo!?
> Yahoo! Health - your guide to health and wellness
> http://health.yahoo.com
>
|