Ben flash ve php kullanarak geliştirilen bir oyun sitesi var. Php kodu 4000 satırları içeren ve bir cron olarak çalışacaktır. Herhangi bir veri kontrol etmek için infinitely çalışacak döngü sokete yazılmış ve buna göre farklı işlevleri çağırmak ve prizlere geri sonuçları göndereceğiz iken kodu içinde, bir tane var. Flaş, bu sonuçlar alacak ve görüntülenir.
Sorun Im bakan yerde php kodundan, bu bellek sızıntı vardır. Çok büyük olduğundan, ben oluyor yerden dışarı bulamıyor. Üstelik sadece bir cron olarak çalıştırılabilir. Bellek sızıntısını bulmak için herhangi bir araç var mı? Ben xdebug duydum ama ben kullanmadım. Başka bir?
check.php (cron olarak)
$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 (bir kısmı sadece)
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();