Symfony2中的快速ajax响应

Symfony2中的快速ajax响应,ajax,performance,symfony,tags,Ajax,Performance,Symfony,Tags,我有一个标记文本字段,在键入新标记时,它会提示类似的现有标记。 这些建议由一个ajax请求检索到控制器,控制器从DB with条令中提取这些建议。i、 e: 请求/tags/suggestions?q=foo 响应[“foo”、“food”、“傻瓜”] 问题是请求太慢(至少2秒,在prod中),在这种情况下太慢 有没有办法加快请求速度? 根据探查器,主要的时间消耗者是kernel.request,占总时间的50%。您可以使用以下命令(如果您还没有这样做)以数组形式获取结果(无需将整个查询转换

我有一个标记文本字段,在键入新标记时,它会提示类似的现有标记。 这些建议由一个ajax请求检索到控制器,控制器从DB with条令中提取这些建议。i、 e:

  • 请求
    /tags/suggestions?q=foo
  • 响应
    [“foo”、“food”、“傻瓜”]
问题是请求太慢(至少2秒,在prod中),在这种情况下太慢

有没有办法加快请求速度? 根据探查器,主要的时间消耗者是kernel.request,占总时间的50%。

您可以使用以下命令(如果您还没有这样做)以数组形式获取结果(无需将整个查询转换为一组对象):

$q = $em->createQueryBuilder('t')->(...);
$q -> getQuery() -> fetchArrayResult();

如果kernel.request很慢,那么这不一定是symfony方面的问题

您应该通过使用php fastPGM而不是php标准模块更新Apache来优化服务器

您还应该激活一个缓存管理器,比如php APC,它可以减少更多的请求

例如,我在raspberry pi上运行一个symfony项目。在这些调整之前,显示一个包含8个数据库请求的请求大约需要25秒。经过这些调整后,页面显示时间不到3秒(平均2.5秒)

其他可能的调整列表:


对于像ajax autocomplete这样的小页面,我决定使用它,这是一个micro Symfony2,它为我提供了一个优雅而快速的解决方案。

如果我错了,请纠正我,但是kernel.request是由内核调度的事件,它被捕获并处理。我想你应该看看控制器中的代码基准测试。我也不确定kernel.request是什么,但时间线中也有一个控制器,所以我不确定这是控制器问题。这也可能取决于你的机器。使用更好的maschine设置,它可能会执行得更快。如果您在探查器中谈论时间线,那么您并不是真正处于生产模式。评测本身花费了相当长的时间。我在dev中使用评测来查看什么花费了大部分时间,但是在prod中测量了延迟响应。这里的问题实际上不是数据库操作,即使我返回一个硬编码数组,但响应很慢。。