Я работал над своим сайтом, написанным на php/mysql. Когда я впервые написал это, это были спагетти с большим количеством php, встроенных в html и т. П. - очень сложно поддерживать.OOPS, идет ли производительность?
Я переписал всю вещь с хорошей модульной структурой с OOPS, и теперь ее намного проще поддерживать и расширять.
Но при тестировании производительности сайта с использованием webwait и осаде, более новая, более структурированная версия, похоже, работает и загружается медленнее, чем версия кода спагетти.
Там разница почти 1 секунду времени загрузки - 2.39s против 3.81s
Ничего еще изменилось, кроме кода PHP - не JS, а не CSS
Так что проблема здесь ? Должен ли я вернуться к старому коду? Это случилось с другими?
Edit:
- Я сделал некоторый анализ, используя похожий на Cachegrind, Inclued, и я думаю, что код довольно хорошо.
- Я также знаю, что эта проблема не полностью OOPS но больше структуры и т.д. , а также, что ООП вовсе не гарантии лучше производительность.
- Я также запускал код несколько раз.
- Я использовал похожем на Cachegrind с KCachegrind, Inclued, осада (большинство инструменты Rasmus Лердорф, изложенные в его DrupalCon 2008 говорить о 'Simple is Hard')
То, что я хочу знать, как другие справляются с этим.
Уже время загрузки старой системы слишком велико. Возможно, база данных неправильно проиндексирована. Используйте профилировщик, чтобы узнать причину и загрузить страницу за несколько десятков миллисекунд. –
проверьте, является ли его просто процедурный код, похожий на OO. Я видел, что это случается, и чаще всего его плохое ОО, которое убивает – Perpetualcoder
. Производительность PHP в OOP не очень хороша, особенно когда вы сравниваете ее с .NET или Java. К счастью, PHP 5.3 или лучше, 6.0 предложит некоторые улучшения скорости, но не серебряную пулю. – TravisO