Модульное тестирование Symfony и чрезмерные утечки памяти? - PullRequest
2 голосов
/ 02 сентября 2010

В настоящее время у нас возникают проблемы с утечками памяти при использовании модульных тестов с Symfony 1.x до величины приличного количества тестов, потребляющих 512 МБ памяти.

В настоящее время мы пробовали:

  • Использование плагина phpunit
  • Использование извести
  • Ограничение тестов несколькими загрузками sfPropelData + функциональные тесты, повторенные несколько раз
  • Переход на PHP 5.3.3 для обработки циклических ссылок
  • Проверка использования памяти xdebug, которая не дала особого понимания

Скоро мы попробуем:

  • Только функциональные тесты
  • Замена sfPropelData вместо загрузки простых файлов SQL
  • Только функциональные тесты без вызовов ORM
  • Valgrind

Я думаю, что, возможно, статические переменные в Symfony не очищаются или сам уровень PDO теряет память. Конечно, последний вариант - это найти способ запустить набор тестов в своем собственном процессе.

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

Кроме того, есть какие-то данные, которые могут помочь, например, valgrind?

1 Ответ

1 голос
/ 02 сентября 2010

Только функциональные тесты без каких-либо вызовов ORM

Это то, что я всегда стараюсь избегать: используйте Mock-объекты вместо доступа к базе данных.может попробовать это новая версия PHPUnit, которая имеет изоляцию процесса тестов (активируется с помощью дополнительного параметра командной строки).Это должно помочь вам.Это медленнее, но помогает с проблемой памяти

...