Вопрос по структуре скрипта и производительности

KIRALEX

Новичок
писать надо сначала подумав.
если у тебя объекты всех классов дергают методы всех других, то что-то с архитектурой не в порядке.
Скажем классы БД или кеш или шаблонизатор или фильтры не тягают друг друга?
 

fixxxer

К.О.
Партнер клуба
не знаю, что такое у тебя "фильтры", но из первых трех перечисленных точно доступ друг к другу не нужен.
 

A1x

Новичок
KIRALEX
я вообще то и не собирался вас утешать

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

тем более что на локальном компе с Win XP AMD Sempron 1.4 GHz 1.5 G та же страница например:
execution time: 0.29813591194153 sec; SQL queries: 13; memory usage: 3313240

13 запросов потому что на странице выводится много разных данных - сама цмс использует 1-2 запроса на аутентификацию и навигацию

(не видели вы цмс - вот например есть такая открытая цмс cmsmadesimple - так она использует где-то 30 запросов на ровном месте )))
 

kode

never knows best
Кстате, никто не помнит: сколько TYPO использует на "ровном месте"? Просто ради интереса :)

Кстате, KIRALEX почитай про ООП. Это не такая простая вещь как кажется в начале. И ещё - купит себе книжку Erich Gamma, Richard Helm - Desing Patterns, так-же неплохо почитать Martin Fowler - Refactoring. Очень нужные вещи, 100% понадобятся тебе в будущем и не только в PHP.
 

atv

Новичок
KIRALEX
Качественную оптимизацию можно проделать только на основе статистических данных профайлера.

Большинство проблем с производительностью связано с неоптимальными алгоритмами, неоптимальным использованием памяти, а не с комментариями в коде, размером или количеством функций.

Соответственно, наибольший выигрыш от оптимизации можно получить избавившись от этих проблем. Без профайлера, эти проблемы останутся незамеченными.

В первую очередь тебе нужно сосредоточиться на архитектуре системы, и повышении качества кода. Для этого нужно много почитать, что является хорошей архитектурой, что плохой, как оценить качество кода и как его улучшить. Советую почитать Гради Буча "Объектно-ориентированный анализ и проектирование" и Фаулера "Улучшение существующего кода".

Во вторых, нужно обязательно написать тесты на систему. И только потом можно приступать к оптимизации.

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

A1x

Новичок
Автор оригинала: KIRALEX

Да я назвал это рекурсивный обьект потомучто он и в самом деле некурсивный и содержит сам себя
Рекурсии бывают нетолько в функциях
Скажем есть рекурсивный массив $GLOBALS который содержит сам себя $GLOBALS['GLOBALS']['GLOBALS'] итд
содержит не сам себя а ссылку на себя. Я не слышал чтобы такие массивы или объекты где-то называли рекурсивными.
Есть такое название "циклические ссылки". Циклические ссылки потенциально могут быть причиной утечек памяти
 

romy4

invoke [brain]
var_dump($GLOBALS);

array(8) {
["GLOBALS"]=>
array(8) {
["GLOBALS"]=>
*RECURSION*

var_dump называет рекурсивным
 

KIRALEX

Новичок
Cпасибо за дельные советы будем идти в направлении к лучшему
 
Сверху