我有一個使用flash和php開發的遊戲網站。該PHP代碼包含4000行,它將作爲一個cron運行。在代碼中,有一個while循環,它將無限地運行用於檢查任何數據寫入套接字並相應地調用不同的函數,並將結果發送回套接字。從閃光燈,它會得到結果,並將顯示。Php顯示CPU使用率的97%
我面對的問題是,從PHP代碼的某個地方,它正在泄漏內存。由於它非常大,我無法從中發現它。而且它只能作爲cron運行。有沒有什麼工具可以找出內存泄漏?我聽說過xdebug,但我沒有使用。任何其他 ?
check.php(如的cron)
$sock = fsockopen(IP_ADDRESS, PORT, $sock_error_code, $sock_error_string, 10); if (!$sock){
$message = "Server was down, restarting...\n\n";
$last_line = system("php -q gameserver/server.php", $retval);} else {
$message = "Server is up...";
$message .= $sock_error_string." (".$sock_error_code.")\n\n";}
server.php(僅限某些部分)
class gameserver {
var $server_running = true;
function gameserver() {
global $cfg, $db;
$this->max_connections = $cfg["server"]["max-connections"];
$this->start_socket();
echo "Gameserver initialized\n";
while ($this->server_running) {
$read = $this->get_socket_list();
$temp = socket_select($read, $null, $null, 0, 15);
if (!empty($read)) {
$this->read_sockets($read);
}
$db->reconnection();
$this->update_DB_records();
$this->check_games_progress();
if ($this->soft_shutdown && $this->active_games == 0) {
$this->server_running = false;
echo "soft shutdown complete\n";
}
}
$this->stop_socket();
echo "Server shut down\n";
}} $server = new gameserver();
發佈你的一些代碼會有幫助;否則,它主要是一個猜謎遊戲。 – 2009-12-16 14:24:25
CPU使用率?內存泄漏?這是什麼? – 2009-12-16 14:25:32
在問題中發佈代碼會稍微有幫助。 – 2009-12-16 15:08:08