Zend Frameworkの速度を10倍にする方法。

いつものように、予期しないことに、プロジェクトの最後にあらゆる種類の不快なものがポップアップし、Zend Frameworkで書かれたプロジェクトのページがアクセラレータをオンにした高速ラップトップで300ミリ秒から1秒で生成することがわかりました。 ベンチマークabは、1秒間に4つの要求を失望させました。 XDebugを手に入れて、真実を求めて出発しました。



10ページの要素と各ページのいくつかのカタログ要素のブロックを含むカタログページが最も長く生成されました。 90%がZend_Currencyコンポーネントの作業で占められており、Zend_Currencyコンポーネントはロケールに応じて価格をフォーマットするだけです。 このために、テンプレートで呼び出されるヘルパーが作成されました。 2行コメントアウトするだけで、100ミリ秒以内にページ生成時間が得られ、1秒あたり40件のリクエストを送信してabが既に輝いています。

Zend_CurrencyはZend_Localeに基づいており、Zend_Localeは6メガバイトのXMLファイルを使用してデータを保存します。 そのため、1ページあたり数百kbのXMLを少なくとも5回解析したことがわかりました。

公平に言うと、フレームワークのドキュメントには、これらのコンポーネントの速度を最適化する方法が示されていることに注意してください。キャッシングを使用することをお勧めします。 しかし、そのようなささいなことは大したことではありませんか?

多くの場所で説明されているフレームワークの標準的な方法の後、abによって速度は毎秒65リクエストに増加しましたが、不快な残留物が残りました。



All Articles