За последние 24 часа нас посетили 31088 программистов и 1428 роботов. Сейчас ищут 886 программистов ...

Из за чего возникает большая генерация страниц?

Тема в разделе "PHP для новичков", создана пользователем engine.energy, 27 июн 2015.

  1. engine.energy

    engine.energy Новичок

    С нами с:
    31 май 2015
    Сообщения:
    149
    Симпатии:
    0
    Когда обновляешь страницу то генерация показывает 0.002-0.010

    А когда оставляешь на 30 минута не обновляя страниц то поднял генерация на много, то есть 2 - 3 сек зависимости времени... А потом нормально! Хотел узнать почему или такая кеш браузера?
     
  2. iNEEdhLw

    iNEEdhLw Новичок

    С нами с:
    22 окт 2014
    Сообщения:
    414
    Симпатии:
    0
    имеешь ввиду любую страницу?
     
  3. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    кеш остывает. только не браузерный а серверный.
    как правило, основные затраты времени на генерацию страницы это запросы к БД. сервер БД пытается кешировать самое нужное. а возможно в самом твоем приложении есть кеш с устареванием — это тебе лучше знать.

    p.s. но 2-3 секунды это слишком дофига! сделай более детальные замеры и найди узкое место.
     
  4. iNEEdhLw

    iNEEdhLw Новичок

    С нами с:
    22 окт 2014
    Сообщения:
    414
    Симпатии:
    0
    почему он остывает?
    ведь если к серверу идут куча запросов, то они и должны у него кешироваться.
    остывать, как я понимаю, он может только в том случае, если у него маленькое кол-во поступающих запросов?
     
  5. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    куча куче рознь. сервер держит в кеше то, что актуально. кеш не резиновый!
     
  6. iNEEdhLw

    iNEEdhLw Новичок

    С нами с:
    22 окт 2014
    Сообщения:
    414
    Симпатии:
    0
    т.е. если обобщить, то он "сортирует в порядке убывания" всё по актуальности (количеству запросов) ?
     
  7. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    скорее по времени последнего обращения
     
  8. engine.energy

    engine.energy Новичок

    С нами с:
    31 май 2015
    Сообщения:
    149
    Симпатии:
    0
    Запроса нет и нет к базе =) А просто когда обновляеш разные страницы то генерация нормальная....

    А когда не обновляеш больше времени тем больше генерация растет когда обновиш то потом нормально идет...

    Добавлено спустя 2 минуты 4 секунды:
    Генерация страниц [1.572] сек. когда яне заходил сайт локальный 2 часа то увидел такой как снова обновиш то на месте становит Генерация страниц [0.002] сек.
     
  9. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    ты пишешь об измеренном времени генерации или о времени получения браузером? это твое приложение, там используется кеш? файлы с диска читаются? на сервере установлен опкод-кешер (apc|eaccelerator и т.п.)?

    КЕШИРУЕТСЯ ВСЁ!
    больше конкретной инфы, пожалуйста.
     
  10. engine.energy

    engine.energy Новичок

    С нами с:
    31 май 2015
    Сообщения:
    149
    Симпатии:
    0
    artoodetoo, проблема том что при долгого остуствия захода сайта поднимают генерация страниц и долго нагружает страниц, а потом нормально....
    Для понятиям!!!!
    Код (PHP):
    1. defined('ENGINE_START_TIME') or define('ENGINE_START_TIME', microtime(true));
    2.  
    3. function GetTime()
    4.   {
    5.       return round(microtime(true) - ENGINE_START_TIME, 3);
    6.   }
    7.  
    8. echo GetTime();
    9.  
     
  11. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    хорошо. теперь аналогичным образом измерь время на отдельные операции: чтение файлов, вывод шаблона и т.д. то там у тебя есть. так ты поймешь что именно изменяется.

    в любом случае это похоже на остывание кеша, остается понять какого.
     
  12. engine.energy

    engine.energy Новичок

    С нами с:
    31 май 2015
    Сообщения:
    149
    Симпатии:
    0
    Функция я его вызываю в конце скрипта то завершает. Всех проверил... На хостинг норм идет а на локальный так появляет если не обновляеш страницу.....
    думаю это такой локальный. А на хостинге норм=)

    Добавлено спустя 3 минуты 13 секунд:
    ладно не важно с ней =) Потом начне делать с кеш файлы браузера и ускорит темп генерация . А то многие говорят генерация не важен тут =)
     
  13. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    $_SERVER['REQUEST_TIME_FLOAT'] мне кажется чуть более честно. ну правда. я ведь могу вставить определение константы в удобном месте, а время запроса подставляет пхп-машина. так проще и весь алгоритм сделать более оптимальным.
     
  14. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    пишу из головы, работоспособность не тестировал:
    Код (PHP):
    1. class Timer
    2. {
    3.   private static $start = [];
    4.   private static $elapsed = [];
    5.  
    6.   public static markBegin($tag)
    7.   {
    8.     self::$start[$tag] = microtime(true);
    9.   }
    10.  
    11.   public static markEnd($tag)
    12.   {
    13.     $time = microtime(true) - self::$start[$tag];
    14.     if (!isset(self::$elapsed[$tag])) {
    15.       return self::$elapsed[$tag] = $time;
    16.     }
    17.     return  self::$elapsed[$tag] += $time;
    18.   }
    19.  
    20.   public static getElapsedTime($tag)
    21.   {
    22.       return self::$elapsed[$tag];
    23.   }
    24. }
    надеюсь код понятен без комментариев. static здесь сделан для доступности в любом месте, как альтернатива global.

    используй одинаковые теги для измерения однотипных операций.
    итоговое время получаешь через Timer::getElapsedTime(тег)
     
  15. engine.energy

    engine.energy Новичок

    С нами с:
    31 май 2015
    Сообщения:
    149
    Симпатии:
    0
    artoodetoo, код я умею писать =)

    Я просто хотел знать причину почему при долгого остуствия обновления страниц в браузере то растет генерация и долго загружает страницу, а потом нормально и оно замечает только в локальном, а в хостинге не замечаю....
     
  16. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    ты не понял, да?
    я предлагаю тебе выяснить конкретное место где время выполнения растет. измерять не только общее время срипта, но время выполнения отдельных операций или видов операций.
     
  17. engine.energy

    engine.energy Новичок

    С нами с:
    31 май 2015
    Сообщения:
    149
    Симпатии:
    0
    artoodetoo, а спасибо! Я его измерял недавно и всех проверил нормально! Но когда не заходиш 2 часа смотря как то у всех скрипты поднимают генерация странно а?
     
  18. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    не знаю что еще добавить. :) мне НЕ странно. помоему это нормально.