RE: [PHP-WIN] Re: Memory leak occurs when exec() function is used on Windows platform
| From: | Gustav Wiberg | Date: | Tue, 11 Sep 2007 06:31:00 +0000 |
| Subject: | RE: [PHP-WIN] Re: Memory leak occurs when exec() function is used on Windows platform | ||
| Groups: | php.windows | ||
| Request: | Send a blank email to php-windows+get-28471@lists.php.net to get a copy of this message | ||
Hi!
Can't you just test if the file contains anything, and if it doesn THEN run exec-command?
Best regards
/Gustav Wiberg
-----Original Message-----
From: Melmack [mailto:melmack3@gmail.com]
Sent: Monday, September 10, 2007 8:17 PM
To: php-windows@lists.php.net
Subject: [PHP-WIN] Re: Memory leak occurs when exec() function is used on Windows platform
Thank you for your reply.
Unfortunately your method also causes memory leak.
I have tested operating system and I have discovered
that batch script listed below causes the same memory leak.
That is why I think now that it is however not PHP fault but Windows bug.
The Windows batch script contains:
for /L %%i in (1,1,500) do cmd /C test.bat
where test.bat is just an empty file.
Maybe someone knows how to solve this problem?
Best regards
Melmack
Uzytkownik "Elizabeth Smith" <emsmith@elizabethmariesmith.com> napisal w
wiadomosci news:F4.21.17175.2E3A4E64@pb1.pair.com...
> melmack wrote:
>> Hi
>>
>> I have a big problem with shell commands execution via PHP.
>> I have written a very short PHP script ilustrating the problem:
>>
>>
>> <?php
>>
>>
>> for($i=0;$i<1000;$i++)
>> { exec("test.bat"); } ?> test.bat is just an empty file. This script
>> causes about 10 MB memory leak. It can be observed by usage of
>> performance system monitor. This problems occurs in all available
>> enviroments: - IIS Webserver. - Apache webserver - PHP command line
>> interpreter Memory leak is observable only on Windows platform (tested on
>> Windows XP). On Linux everything works OK. Does someone know how to solve
>> this problem? Any help appreciated Best regards Melmack
>
> I've found exec to be flaky enough on windows that instead I use com to
> spawn the new process.
>
> $shell = new COM('WScript.Shell');
> $return = $shell->Run($cmd, 0, false);
> unset ($shell);
>
> Faster and no leaks ;) Only downside is you have to wrap cross-platform
> code with windows detection.
--
PHP Windows Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.5.485 / Virus Database: 269.13.12/997 - Release Date: 2007-09-09 10:17