Действительно производит буферизацию в PHP, требуют большего количества ресурсов?

Я также добрался для понимания проектирования баз данных, SQL, и особенно данные центрировали мировоззрение прежде, чем заняться объектно-ориентированным подходом. object-relational-impedance-mismatch все еще экранирует меня.

самая близкая вещь я нашел к тому, чтобы разобраться, это - это: рассмотрение объектов не с объектно-ориентированной progamming точки зрения, или даже с точки зрения объектно-ориентированного проектирования, но с объектно-ориентированной аналитической точки зрения. Лучшая книга по OOA, который я получил, была записана в начале 90-х Peter Coad.

На стороне базы данных, лучшая модель для сравнения OOA не является реляционной моделью данных, но моделью Entity-Relationship (ER). Модель ER не является действительно реляционной, и она не указывает логическую структуру. Многие реляционные апологеты думают, что это - слабость ER, но это - на самом деле своя сила. ER лучше всего используется не для проектирования баз данных, а для анализа требований базы данных, иначе известной как анализ данных.

анализ данных ER и OOA удивительно совместимы друг с другом. ER, в свою очередь довольно совместимо с реляционным моделированием данных и следовательно к дизайну базы данных SQL. OOA, конечно, совместим с OOD и следовательно к ООП.

Это может походить на длинный путь вокруг. Но если Вы сохраните вещи достаточно кратким обзором, то Вы не потратите впустую слишком много времени на аналитические модели, и Вам удивительно будет легко преодолеть несоответствие импеданса.

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

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

ООП содержит волновой эффект, прежде всего, посредством инкапсуляции и сокрытия информации.

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

На поверхности, эти два походят на существенно противоречащие способы мышления. В конечном счете Вы изучите, как использовать их обоих для хорошего преимущества.

8
задан JasonDavis 1 October 2009 в 09:45
поделиться

2 ответа

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

Отправляя весь ответ за один раз, вы освобождаете все ресурсы, используемые скриптом php, поэтому он более эффективен.

3
ответ дан 5 December 2019 в 21:20
поделиться

Есть две причины, по которым буферизация вывода полезна

  1. Для производительности, поэтому вы не можете ожидая, пока сетевой сокет будет доступно каждый раз, когда вы эхо.
  2. Чтобы не отправлять и заголовки рано. Как только вы отправили контент в браузер заголовки также должны быть отправлены, после этого готово, вы не можете их изменить например, если вы хотите установить cookie или изменить тип содержимого.

Конечно, есть штраф за хранение всего в памяти до конца запроса. Обычно это должно быть довольно мало по сравнению с общим размером процесса PHP. То есть, если только вы не планируете отправлять по сети массивный файл. В этом случае вы можете периодически очищать буфер с помощью ob_flush () и flush () (или временно отключать буфер полностью), чтобы уменьшить пиковую используемую память.

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

4
ответ дан 5 December 2019 в 21:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: