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
  • 您可以通过使用 Memcache 缓存生成的表单 html 来解决第一个问题。请记住在保存表单后使缓存索引无效。
  • 对于第二个问题,使用分析器检查需要这么长时间的原因,可能是 Doctrine 水合作用问题。
于 2012-06-06T08:29:26.280 回答