1. PHP / Говнокод #9465

    +155

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    <?php
    //скрипт для выполнения SQL запросов
    function runQuery($str = false, $returnType='', $indexField = false, $from = false, $limit = false, $aggregate = false)
    {
    	if (!$str){ //Проверка на наличие SQL
    		return false;
    	}
    	
    	//Будем сохранять SQL запросы с результатами в cache
    	//Для этого создадим массив глобальный
    	if (!isset($GLOBALS['dbcache'])){
    		$GLOBALS['dbcache'] = array();
    	}
    	//Но использовать этот cache не будем
    	if (0 && isset($GLOBALS['dbcache'][$str])){
    		$this->cached = true;
    		return $GLOBALS['dbcache'][$str];
    	}
    	
    	//...
    	//Строки для получения данных с SQL, записываються в $retValue
    	//...
    	
    	//Вот получили результат, сохраним его в ранее заданный массив
    	if ($str != 'SELECT LAST_INSERT_ID()'){
    		$GLOBALS['dbcache'][$str] = $retValue;
    	}
    	return $retValue;
    }

    Трудясь над проектом, не понимал, куда используется вся память.
    Решил выяснить и наткнулся на такое, что и было основной причиной.

    Запостил: Edd, 17 Февраля 2012

    Комментарии (10) RSS

    • //Будем сохранять SQL запросы с результатами в cache
      //Но использовать этот cache не будем

      Конец 80-х.
      - Мы тебе купили джинсы - но ты их носить не будешь. Дефицит.

      А вообще кэш странный. Скрипт отработал - кэш пропал. Да и память освобождаться должна, не?
      Если это конечно не что-нибудь из разряда set_time_limit(0); while(true) { ... }.
      Да и то у грамотных хостеров такая фигня обычно убивается через N-ое время.
      Ответить
      • Ничего не очищалось. Каждый SQL сохронялся в глобал, а также всё что вытаскивалось с базыданных.
        После того как убрал этот cache (который и не использовался), испоьзование памяти упало с 10-12Mb до 2-3Mb.
        Ответить
        • Странно, что не очищалось. Должно.
          Ответить
      • //Будем сохранять SQL запросы с результатами в cache
        //Но использовать этот cache не будем

        У меня есть для вас посылка, но я ей вам не отдам, потому что у вас документов нету.
        Ответить
    • сейчас переписываем проект, в котором для вычисления рейтинга юзера скрипт получает из базы записи абсолютно ВСЕХ пользователей сайта (которых овер 9000).
      Ответить
      • > скрипт получает из базы записи...
        и вычисляет результат на калькуляторе
        Ответить
    • Автор ГК хоть комментарии оставляет...
      Ответить
      • они написаны как буд-то один студентота другому лабу делал
        Ответить

    Добавить комментарий