Magentoコンパイラを使用する必要がある場合


44

Magentoのコンパイラ機能を使用しているとよく言われます。

どのような場合に使用すべきか、そしてどの程度のパフォーマンス向上が得られるのか、私は決して知りません。

[免責事項]:最近、これに関する編集の提案を受けました。この質問はmagento2のディコンパイルに関するものではなく、magento2についてもわずかではありません。


1
コンパイラーでベンチマークを参照してください:byte.nl/blog/should-i-use-the-magento-compiler
Willem

1
apc configが欠落しています。また、現在のバージョンにはopcacheモジュールがあり、apcで動作するサポートされているphpバージョンはありません。ソフトウェアの変更。ソリューションと回避策も変更されます。
フライングマナ14年

回答:


43

[免責事項] この回答は、Magento 1のコンパイラのみを対象としています。Magento2のコンパイラは、完全に異なる目的/効果を持っています。

絶対に使用しないでください。

PHPは、多くのファイルを含むアプリケーションを改善するためのメカニズムをいくつか開発しているためです。

意味:現在のphpバージョンのphp opCacheは、正しく構成されていれば、パフォーマンスが改善されます。たとえば、キャッシュファイルに十分高い制限を使用します。また、opCacheには、ファイルシステムにアクセスする関数が改善されており、aoe_classpathcacheよりも深いレベルで機能し、パフォーマンスがさらに向上します。

最後に、コンパイラなしで数ミリ秒以上を必要としない自動ロードがあります。コンパイラがパフォーマンスに悪影響を与えた場合もあります。コンパイラを使用してアプリケーションをデバッグするための、非常に時間がかかる問題は言うまでもありません。

また、opCacheは自動ロードを改善するだけでなく、ファイルシステム機能の最適化はテンプレートおよびレイアウトファイルのロードを改善します。

http://php.net/manual/en/opcache.configuration.php


2
したがって、コンパイルを無効にし、コンパイル済みファイルをクリアし、代わりにopCacheを使用することをお勧めしますか?
perissf 14年

1
要約すると、はい
フライングマナ14年

3
コンパイラーは、1.4.1.1、1.4.2.0、および場合によっては1.5.1.0バージョンで最も有用なクラッジです。1.5.1.0以降では、コードの最適化が有効になり始めました。1.6または1.7前後のどこかで、誰かがA / Bテストを行い、特定のサーバー構成で実際にシステムの速度が低下することがわかった。
Fiasco Labs 14年

3
PHPインタープリターの2つの設定は、システムにアクセスできる場合、またはホスティングプロバイダーに変更を行わせる場合に実行できる膨大な数のファイルを支援するために設定します-> realpath_cache_size=64kおよびrealpath_cache_ttl=3600。64kはスイートスポットであるように思われ、人々はさらに推奨していますが、パフォーマンステストではメモリの浪費であることが示されています。
Fiasco Labs 14年

2
@FiascoLabs「A / Bテスト」の数値へのリンク/ソースはありますか?見るのがいいだろう。
アラムパパジアン

11

「Magentoコンパイラをいつ使用すべきか」

何らかの理由でシステムにPHPアクセラレータがインストールされていない場合(可能性は低いですが可能)

非常に古いバージョンのmagentoを実行している場合(実際には実行しないでください)

なぜ無効にしておく必要がありますか?

上記のFiasco Labsのコメントに全面的に同意します。magentoのバージョン番号を指定しませんでしたが、ストア全体にphpアクセラレータ(PHP-APCなど)が既にあるシステムでコンパイラを有効にすると、これは1.6.1を超えるすべてのmagento(CE)バージョンに当てはまります。 、管理ページから顧客のチェックアウトまではかなり遅くなりますが、さらに悪いことに、magentoの接続で見つかったプラグイン/ MODの多くは、コンパイラがアクティブな状態では正しく機能しません。

つまり、2014年には、コンパイラを有効にする正当な理由はありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.