約50のフィールドを持つノード追加フォームを高速化する方法は?


7

約50のフィールドを持つノード追加フォームがあり、ほとんどが1つのフィールドコレクション(別の5つのフィールドを持つ)を持つテキストと、いくつかのエンティティと用語参照があります。

ページの読み込みに約30秒かかり、使用できなくなります。

いくつかの遅いクエリがあります(99.28-DrupalDatabaseCache :: getMultiple34.21-views_plugin_query_default :: execute20.51-DrupalDefaultEntityController :: load、18.46-DrupalDatabaseCache :: getMultiple、17.46-DrupalDatabaseCache :: getMultiple ..

Cache :: getMultipleクエリには1087のプレースホルダーがあり、EntityController :: loadには1084のプレースホルダーがあります。

完了までにさらに30秒かかるフィールドコレクションの[別のアイテムを追加]をクリックした場合。

ページの読み込み時間を短縮するにはどうすればよいですか?

編集:私はAPCをインストールしましたが、すべてのキャッシュクエリが削除されましたが、問題は解決しませんでした-まだ約30秒の読み込み時間です。遅いロード時間はキャッシングに関連しているとは思いません。約280MBのメモリロードを使用してページを構築しています。

編集:フィールドコレクションを削除し、memcacheとentitycacheをインストールすると、読み込み時間が20秒短縮されました。ただし、最初にページをロードするのに10秒かかり、ajaxリクエストごとにさらに10秒は許容されません。多数のフィールドでWebフォームはどのように機能しますか?多分それはより良いオプションでしょうか?


4
キャッシュビンストレージにはmemcache、オペコードキャッシングにはAPCを試すこともできます。その後、エンティティキャッシュはエンティティロードのパフォーマンスを改善する簡単な方法です
David Thomas

1
XHProfログを確認した後、フィールドコレクションを削除したところ、15秒かかりました。現在は不安定ですが、代わりにマルチフィールドモジュールを使用してます。memcacheとentitycacheのインストールにはさらに5秒かかったので、今では10秒未満になっています。
Felix Eve

回答:


3

ノードの作成にマルチステップフォームの使用を検討しましたか?

多くのフィールドがある場合、さまざまな論理ステップを使用して、複数のページの読み込みでそれを行うことができます。あり、多くチュートリアル多段階のDrupalのフォームの実装と1と例モジュール船のために。


これは素晴らしい提案だと思います。フォームを1ページに収めるのと同じ速さで作成しました。クライアントがロード時間に不満を持っている場合は、これを代替手段として提案します。
Felix Eve
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.