web-dev-qa-db-ja.com

views_embed_viewの関数を使用すると、CPUの負荷が高くなる可能性があります

Drupalサイトのページが原因でCPU /メモリの負荷が高くなっていることがわかりました。各アイテムを削除しようとしました(ブロック、カスタムPHPコードなど)最後に、以下のコードを削除すると、CPU /メモリ使用量が90%から10%に減少することがわかりました。

print views_embed_view('flag_compare', 'block_1');

誰かがビューを埋め込む別の機能を提案できますか?

1
Charles Yeung

関数自体はこれとはあまり関係がなく、ビューを作成および表示するためのラッパーです。表示しているビューはブロックです。ブロックを有効にすることを選択した場合、結果は同じだったと思います。

最も考えられる原因は、表示しているビューです。ビューやパネルなどのツールは、表示内容の処理には優れていますが、代償が伴います。通常、独自のコードで実行した場合よりもはるかに非効率的ですが、使用速度も大幅に向上します。ビューを確認し、簡素化することでワークロードを削減する方法を探すことをお勧めします。または、それが本当に重要な場合は、自分で行って、ビューがもたらす多くの抽象化をスキップすることをお勧めします。

2
googletorp

Tplでviews_embed_viewを使用しないでください。 Drupalはブーストラップを2回行います。前処理関数を使用してブロックを作成し、リージョンに埋め込みます。

1
gagarine