|
Posted by comp.lang.php on 02/18/07 20:10
[PHP]
if (!function_exists('memory_get_usage')) {
/**
* Determine the amount of memory you are allowed to have
*
* @access public
* @return long
* @see actual_path
* @link http://us2.php.net/manual/en/function.memory-get-usage.php#64156
How to use memory_get_usage() function in this
context
* @link
http://groups.google.com/group/comp.lang.php/browse_frm/thread/475095e024649b24/7335b76328c2bab1?lnk=arm#7335b76328c2bab1
Upgrade to client status of memory_get_usage() for use within Windows
XP Home
*/
function memory_get_usage() {
print_r(extension_loaded('win32ps')); die('');
global $clientFolderPath;
$outputArray = array();
if (($_SERVER['windir'] || $_ENV['windir']) &&
@extension_loaded('win32ps')) {
return win32_ps_stat_proc(getmypid());
} elseif (($_SERVER['windir'] || $_ENV['windir']) &&
@is_dir(actual_path(realpath("$clientFolderPath/win"))) &&
@is_file(actual_path(realpath("$clientFolderPath/win/
pslist.exe")))
) {
exec('"' . actual_path($clientFolderPath) . '/win/pslist" -m ' .
getmypid(), $outputArray, $rc);
print_r($outputArray);
return trim(substr($outputArray[8], 38, 10));
} elseif ($_SERVER['windir'] || $_ENV['windir']) {
exec('tasklist /FI "PID eq ' . getmypid() . '" /FO LIST',
$outputArray);
return preg_replace( '/[\D]/', '', $outputArray[5] ) * 1024;
} else {
exec('ps -o rss -p ' . getmypid(), $outputArray);
return $outputArray[1] * 1024;
}
}
}
[/PHP]
Environment: Win XP, Wamp5 (Apache 2.0.53, PHP 5.2.0)
As it stands, win32ps.dll is not loaded, thus,
extension_loaded('win32ps') should return false:
[quote]
Array
(
[0] => bcmath
[1] => calendar
[2] => com_dotnet
[3] => ctype
[4] => session
[5] => filter
[6] => ftp
[7] => hash
[8] => iconv
[9] => json
[10] => odbc
[11] => pcre
[12] => Reflection
[13] => date
[14] => libxml
[15] => standard
[16] => tokenizer
[17] => zlib
[18] => SimpleXML
[19] => dom
[20] => SPL
[21] => wddx
[22] => xml
[23] => xmlreader
[24] => xmlwriter
[25] => apache2handler
[26] => mbstring
[27] => gd
[28] => mysql
[29] => mysqli
[30] => PDO
[31] => pdo_sqlite
[32] => SQLite
)
[/quote]
But instead Apache locks up into an infinite loop, producing no Apache
errors, no PHP errors, no output, nothing, just sits there trying to
load the phge without ever timing out or even producing 100% CPU
memory loss!
Have you ever seen this before with extension_loaded(), a bug or what
is really going on?
Thanx
Phil
Navigation:
[Reply to this message]
|