28

PHP出力バッファリングに関する専門家の頭脳を選びたいだけです。何らかの理由でそれを実装したいと思ったことがありますが、それを回避するために常にコードを再配置することができました.

リソースがかかりそうなので使わないようにしています。つまり、コード作成者にこれほど優れた柔軟性を提供できるのであれば、出力を常にバッファリングしないのはなぜでしょうか? 私が思いつく唯一の答えは次のとおりです。バッファリングしないとリソースが大幅に節約され、適切なコーディング慣行があれば必要ないからです。

私はここから離れていますか?

4

4 に答える 4

23

私の経験から、パフォーマンスに大きな影響はありません。また、この件に関して一貫した答えを見つけることもできません。パフォーマンスへの影響はほとんどないと主張する人もいれば、マイナーではあるが重大な影響があると言う人もいます。php.netには、バッファリングが複数の出力関数と比較してパフォーマンスを向上させることを示唆するコメントさえありますが、私がそれを確認したことなどはありません。

バッファリングするかどうかの問題は、アプリケーションの使用目的に関係していると思います。出力を送信する前に圧縮したい場合、またはコード内で出力がいつどこで行われるかを正確に制御したい場合、バッファリングは非常に理にかなっています。バッファリングを追加するのにそれほど手間がかからないので、試してみることもできます。必要に応じて削除するのは比較的簡単です。

于 2009-10-12T20:27:57.940 に答える
9

私は逆だと思います。本当に必要な状況に遭遇しない限り、出力をバッファリングしないのは悪い考えです。たとえば、大量の出力を作成するスクリプトです。

ほとんどの場合、未知の量の (安価な) メモリを節約するために大量のプログラマの時間を費やすことは、リソースの浪費のように思えます。

于 2009-10-12T20:19:02.140 に答える
6

コンテンツがヘッダーの前に出力される状況にある場合は、コンテンツをバッファーに詰め込む必要があります。そうしないと、コンテンツがヘッダーの前に出力されたというページのエラーが発生します。これは共有ライブラリで発生しましたが、立ち上げて適切な修正を行うのに十分な時間がありませんでした。これは、//TODO / FIXME をマークしてから、戻って後で適切にするものの 1 つです。

于 2009-10-12T20:27:36.913 に答える
4

出力バッファリングを使用して、前回の PHP プロジェクト用に自作の MVC バックエンド用の軽量テンプレート システムをすばやく作成することができました。私はそれが大好きで、とても便利だと思います。

リソースに関しては、それほどリソースを集中的に使用するわけではありません。使用するわずかな部分が心配な場合、PHP はその仕事に適したツールではありません。私は PHP が大好きですが、最も軽いオプションではありません。ただし、合理的に最新のサーバーでは、それは問題になりません。

于 2009-10-12T20:22:11.277 に答える