2013-11-19 5 views
0

У меня есть страница ниже, она загружает изображение для пользователя, и URL-адрес выглядит как someurl/page.php? Path = a.jpg , когда люди посещают эту страницу Я нахожу память увеличивается использование быстро я не уверен, что, если эта страница вызывает утечку памятиБудет ли эта страница вызывать утечку памяти?

<?php 
    $tar_path=urldecode($_GET['path']); 
    $strs=preg_split("/\./",$tar_path); 
    $small_name = $strs[0].'_small.'.$strs[1]; 
    header('Content-type: image/jpeg'); 
    if(file_exists($small_name)) 
    { 
     $PSize = filesize($small_name); 
     $picturedata = fread(fopen($small_name, "r"), $PSize); 
     echo $picturedata; 
    }else 
    { 
     $im = imagecreatefromjpeg($tar_path); 
     $maxwidth = 150; 
     $maxheight = 0; 

     $pic_width = imagesx($im); 
     $pic_height = imagesy($im); 



     $widthratio = $maxwidth/$pic_width; 
     $resizewidth_tag = true; 



     $ratio = $widthratio; 

     $newwidth = $pic_width * $ratio;    
     $newheight = $pic_height * $ratio;   
     if(function_exists("imagecopyresampled")) 
     { 
      $newim = imagecreatetruecolor($newwidth,$newheight); 
      imagecopyresampled($newim,$im,0,0,0,0,$newwidth,$newheight,$pic_width,$pic_height); 
     } 
     else 
     { 
      $newim = imagecreate($newwidth,$newheight); 
      imagecopyresized($newim,$im,0,0,0,0,$newwidth,$newheight,$pic_width,$pic_height); 
     } 

     imagejpeg($newim,$small_name); 
     imagedestroy($newim); 
     imagedestroy($im); 
     $PSize = filesize($small_name); 
     $picturedata = fread(fopen($small_name, "r"), $PSize); 
     echo $picturedata; 
    }   
    ?> 
+7

Этот вопрос не соответствует теме, потому что это запрос на проверку кода. Это лучше подходит для http://codereview.stackexchange.com –

+0

Вам нужно отлаживать. Инструмент Maube [this] (http://xdebug.org/archives/xdebug-general/1228.html) поможет вам. Тем не менее, вы можете выкопать «memory_get_usage». – Leri

ответ

2

использование памяти браузера или сервера ?.

Предполагается, что интерпретатор php освободит всю память после завершения выполнения скрипта. В этом случае потребление памяти на сервере может указывать на то, что работа с изображениями тяжелая, но вся память должна быть освобождена по завершении.

+0

но я обнаружил, что память сервера никогда не была выпущена – Patato

+0

Интересно ... Вышло ли это через некоторое время самостоятельно ?. Эти функции взаимодействуют с набором imagemagick (я думаю), который может делать вещи сам по себе ... Или, возможно, есть утечка на вашем php-коде, но это должно очиститься. –

Смежные вопросы