By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
455,714 Members | 1,305 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 455,714 IT Pros & Developers. It's quick & easy.

popen - command line vs. web server performance

P: n/a
say i have the following two php scripts:

ptest.php:
<?
$p1 = popen("c:\\php\\php -q hello.php","r");
$p2 = popen("c:\\php\\php -q hello.php","r");
while (!feof($p1))
print fgets($p1);
while (!feof($p2))
print fgets($p2);
pclose($p1);
pclose($p2);
?>

and

hello.php:
<?
print "hello,\nworld!\n";
?>

when i run ptest.php via the command line (ie. by typing in c:\php\php
ptest.php at the dos prompt) it runs instantly.

when i run ptest.php via a webserver, the resultant page not only
doesn't even load - it results in a bunch of errors (that appear as
dialogue boxes on the machine doing the hosting) effectively saying
that the command failed to execute properly and will now be shut down.
after clicking through all the errors, the systems performance is
noticebly affected (and in fact is bad enough such that i think a
reboot is justified).

any ideas as to why this is, and what i can do to fix it?
Jul 17 '05 #1
Share this Question
Share on Google+
4 Replies


P: n/a
yawnmoth wrote:
say i have the following two php scripts:

ptest.php:
<?
$p1 = popen("c:\\php\\php -q hello.php","r");
$p2 = popen("c:\\php\\php -q hello.php","r");
while (!feof($p1))
print fgets($p1);
while (!feof($p2))
print fgets($p2);
pclose($p1);
pclose($p2);


and

hello.php:
<?
print "hello,\nworld!\n";


when i run ptest.php via the command line (ie. by typing in c:\php\php
ptest.php at the dos prompt) it runs instantly.

when i run ptest.php via a webserver, the resultant page not only
doesn't even load - it results in a bunch of errors (that appear as
dialogue boxes on the machine doing the hosting) effectively saying
that the command failed to execute properly and will now be shut down.
after clicking through all the errors, the systems performance is
noticebly affected (and in fact is bad enough such that i think a
reboot is justified).

any ideas as to why this is, and what i can do to fix it?


Did you look at taskmanager to see what causes the poor performance ? Must
be some process hogging the cpu, would help to see if it has to do with
apache (or IIS?) Other than that, is it a typo here or does your hello.php
miss a ? before the end > ???
Jul 17 '05 #2

P: n/a
"Pjotr Wedersteers" <x3****@westerterp.com> wrote in message news:<41***********************@news.xs4all.nl>...
yawnmoth wrote:
say i have the following two php scripts:

ptest.php:
<?
$p1 = popen("c:\\php\\php -q hello.php","r");
$p2 = popen("c:\\php\\php -q hello.php","r");
while (!feof($p1))
print fgets($p1);
while (!feof($p2))
print fgets($p2);
pclose($p1);
pclose($p2);


and

hello.php:
<?
print "hello,\nworld!\n";


when i run ptest.php via the command line (ie. by typing in c:\php\php
ptest.php at the dos prompt) it runs instantly.

when i run ptest.php via a webserver, the resultant page not only
doesn't even load - it results in a bunch of errors (that appear as
dialogue boxes on the machine doing the hosting) effectively saying
that the command failed to execute properly and will now be shut down.
after clicking through all the errors, the systems performance is
noticebly affected (and in fact is bad enough such that i think a
reboot is justified).

any ideas as to why this is, and what i can do to fix it?


Did you look at taskmanager to see what causes the poor performance ? Must
be some process hogging the cpu, would help to see if it has to do with
apache (or IIS?) Other than that, is it a typo here or does your hello.php
miss a ? before the end > ???


yeah - that was a typo. the actual hello.php file has it. anyway,
looking at task manager, i see that a *bunch* of php and cmd processes
are being created, and none are ending. so, what i assume happening
is that the computers memory is just being exhausted.

i tried to replace print "hello,\nworld\n" with
exit("hello,\nworld!\n") to no avail.

the exact error i get is as follows:

The application failed to initialize properly (0xc0000142). Click on
OK to Terminate.

i get that for both php.exe and cmd.exe.

in contrast, when i run it from the command line, it takes place so
fast that i don't see any process being created.
Jul 17 '05 #3

P: n/a
"yawnmoth" <te*******@yahoo.com> wrote in message
news:a0**************************@posting.google.c om...
say i have the following two php scripts:

ptest.php:
<?
$p1 = popen("c:\\php\\php -q hello.php","r");
$p2 = popen("c:\\php\\php -q hello.php","r");
while (!feof($p1))
print fgets($p1);
while (!feof($p2))
print fgets($p2);
pclose($p1);
pclose($p2);
?>

and

hello.php:
<?
print "hello,\nworld!\n";
?>

when i run ptest.php via the command line (ie. by typing in c:\php\php
ptest.php at the dos prompt) it runs instantly.

when i run ptest.php via a webserver, the resultant page not only
doesn't even load - it results in a bunch of errors (that appear as
dialogue boxes on the machine doing the hosting) effectively saying
that the command failed to execute properly and will now be shut down.
after clicking through all the errors, the systems performance is
noticebly affected (and in fact is bad enough such that i think a
reboot is justified).

any ideas as to why this is, and what i can do to fix it?


Could be a DLL incompatibility problem. The DLL search path in Windows, if I
remember correctly, goes like this: the current folder, the folder
containing executable, the system32 folder. If your webserver is running a
different version of PHP than the command line one, then the wrong DLL could
get loaded. Do a search for php4ts.dll and see if there're multiple copies.
Jul 17 '05 #4

P: n/a
On Tue, 12 Oct 2004 01:09:58 -0400, "Chung Leong"
<ch***********@hotmail.com> wrote:
"yawnmoth" <te*******@yahoo.com> wrote in message
news:a0**************************@posting.google. com...
say i have the following two php scripts:

ptest.php:
<?
$p1 = popen("c:\\php\\php -q hello.php","r");
$p2 = popen("c:\\php\\php -q hello.php","r");
while (!feof($p1))
print fgets($p1);
while (!feof($p2))
print fgets($p2);
pclose($p1);
pclose($p2);
?>

and

hello.php:
<?
print "hello,\nworld!\n";
?>

when i run ptest.php via the command line (ie. by typing in c:\php\php
ptest.php at the dos prompt) it runs instantly.

when i run ptest.php via a webserver, the resultant page not only
doesn't even load - it results in a bunch of errors (that appear as
dialogue boxes on the machine doing the hosting) effectively saying
that the command failed to execute properly and will now be shut down.
after clicking through all the errors, the systems performance is
noticebly affected (and in fact is bad enough such that i think a
reboot is justified).

any ideas as to why this is, and what i can do to fix it?


Could be a DLL incompatibility problem. The DLL search path in Windows, if I
remember correctly, goes like this: the current folder, the folder
containing executable, the system32 folder. If your webserver is running a
different version of PHP than the command line one, then the wrong DLL could
get loaded. Do a search for php4ts.dll and see if there're multiple copies.


Thee's only one. I'm actually thinking that this is a bug in PHP. I
was told by my webhost to stop using a similar script because it kept
crashing their browser. Could other people test it out, and post
here, whether or not it works? Also, if it is a bug, how does one go
about filling a bug report?

Jul 17 '05 #5

This discussion thread is closed

Replies have been disabled for this discussion.