php - измерение расхода ресурсов

Discussion in 'PHP' started by Дикс, 10 Sep 2010.

  1. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    сделал один скрипт, который грузит свои модули инклудами
    причем не один раз

    оказалось что рано или поздно этот скрипт умирает, в отличие от предыдущего, где таких злостных инклудов не было

    решил проверить - сколько сжирают инклуды и есть ли смысл обернуть их содержимое в функции, чтобы инклудить все модули один раз при загрузке скрипта

    вот тут 2 примера - с инклудами и без них

    http://www.sendspace.com/file/i4u5a4

    но почему-то выдает расход памяти и времени практически одинаковый. microtime() тоже пробовал, там получаются ещё и отрицательные значения

    так может я как-то неграмотно замеряю эти параметры?
    или инклуды на самом деле можно делать по сто раз и это никак не повлияет на стабильность работы пхп?

    (пхп 5.2)
     
  2. WNZRS

    WNZRS Member

    Joined:
    3 Sep 2009
    Messages:
    294
    Likes Received:
    52
    Reputations:
    1
    лучше содержимое многоразовых инклудов оберни в функции, потому что когда ты инклудишь, пхп добавляет к коду код инклуда и получается у тебя один и тот же код занимает кучу памяти.
     
  3. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    ну я это и предполагал
    но как это увидеть? объем занятой памяти не увеличивается при любом кол-ве итераций

    хочется своими глазами увидеть что происходит
     
  4. Anarh1st

    Anarh1st Member

    Joined:
    19 May 2010
    Messages:
    32
    Likes Received:
    5
    Reputations:
    0
    Тоже всегда интересовало, какой вариант более оптимизированн
     
  5. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    народ, может кто знает ответ?
     
  6. OdaN

    OdaN Elder - Старейшина

    Joined:
    4 Mar 2006
    Messages:
    192
    Likes Received:
    17
    Reputations:
    1
    http://www.php.net/manual/en/function.memory-get-usage.php не?
     
  7. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    ну так в моем примере эта функция используется
    а вот толку?
     
  8. GalaX

    GalaX New Member

    Joined:
    6 Sep 2010
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    PHP:
    <?php
    $time_start 
    getmicrotime();
    $mem memory_get_usage();

    include 
    "inc1.php";
    include 
    "inc2.php";
    include 
    "inc3.php";

    for(
    $i 0$i 10000$i++)
    {
        
    inc1();
        
    inc2();
        
    inc3();
    }

    echo 
    'time : ' getmicrotime() - $time_start;
    $mem = (memory_get_usage() - $mem sizeof($mem));
    echo 
    '<br>';
    echo 
    'memory : ' . ($mem 1024) . 'kb';

    function 
    getmicrotime() {
        list(
    $usec$sec) = explode(" "microtime()); 
        return ((float)
    $usec + (float)$sec); 
    }
     
  9. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    GalaX

    твоя функция

    PHP:
    function getmicrotime() { 
        list(
    $usec$sec) = explode(" "microtime());  
        return ((float)
    $usec + (float)$sec);  
    }
    делает тоже самое что microtime(true)