php cli question

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

I have some basic questions on running php  (5.2.x series on Linux
2.6) as a standalone daemon using posix methods (fork() etc..):

#!/usr/bin/php
<?php

require_once ('someclass.php');

// do some initializations
.

// main 'forever' loop - the '$shutdown'  will
// be set to true via a signal handler

while(!$shutdown)
{
  $a = new SomeClass();

  $a->doSomething()

}

// shutdown logic.

The 'someclass.php' in turn will include other files (via require_once).

The above file will be executed directly from the shell. The main loop
could be listening to new requests via sockets etc..

Few questions:

1) Does opcode cache really matter in such cli-based daemons? As
'SomeClass' is instantiated at every loop, I am assuming it is only
compiled once as it has already been 'seen'.
    I am not very clear on how apc (or eaccelerator) works in such cases.


2) What about garbage collection? In a standard apache-mod-php setup,
we rely on the end of a request-cycle to free up resources - close
file descriptiors, free up memory etc..
    I am assuming in the aforesaid standalone daemon case, we would
have to do this manually?  In the loop above, would it be better to
'unset($a)' explicitly at the end of it before
    it goes to the next iteration?

Note: I have written pre-forker deamons in php directly and
successfully deployed them in the past, but never looked at in depth
to understand all the nuances. Anecdotally, I have
done 'unset()' at some critical places were large arrays were used,
and I think it helped. AFAIK, unlike Java, there is no 'garbage
collector' thread that does all the magic?

Thanks,
Ravi

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux