4

Symfony2 フォーム コンポーネントを使用してパフォーマンスの問題が発生しました。このコンポーネントを使用して、300 個のチェックボックスを含むフォームを作成しています。このフォームは柔軟でなければなりません (チェックボックスは、特定のデータ ツリーを使用して SET_DATA イベントで作成する必要があります。フォームを柔軟にするために、サブスクライバーも使用しています。

問題:

  • フォームの生成には平均 900 ミリ秒かかりました (入力サイズを考えると、これはかなりの時間です)。
  • フォームのバインドにかなりの時間がかかりました (平均 1 秒)

仮定:

  • propertyPathMapper がパスを作成し、正しいパスを探して検証時にエラー メッセージを取得するのに時間がかかりすぎています。

私の質問:

  • PropertyPath の問題の場合、それを修正する方法を知っていますか? そうでない場合、フォームを最適化する方法についてのアイデアはありますか?

私たちのコード:

github Gist を作成しました > https://gist.github.com/2867617

  • data.array は、検索フォームを生成するために使用しているデータ形式です。(ツリーには多くのサブレベルを含めることができ、データベースから作成されます)
  • SearchType.php はメインの検索タイプです
  • 使用している他のクラスは、すべての検索基準要素を反復して生成するのに役立ちます。

PS: Symfony2 の 2.0.15 バージョンを使用しています。

ありがとう、

4

1 に答える 1

1
  • 最初の問題は、生成されたフォームの html を Memcache でキャッシュすることで解決できます。フォームを保存した後、キャッシュ インデックスを無効にすることを忘れないでください。
  • 2 番目の問題では、プロファイラーを使用して時間がかかっていることを確認します。Doctrine のハイドレーションの問題である可能性があります。
于 2012-06-06T08:29:26.280 に答える