blackfire:在您的宅基地改进的应用程序中的精确定位和固定性能瓶颈
>
>键洞察:
在开始之前,让我们定义Blackfire性能图中使用的关键术语:
>
参考资料:
>不按下这些行,并用您的帐户详细信息替换占位符值。 :一个案例研究 我们的初始应用程序按年龄按负载和分类所有画廊。 要配置文件,打开主页,单击“黑火扩展”按钮,然后选择“配置文件!”。
初始配置文件结果:
>消耗了包含时间的100%(深色粉红色部分),表明它是主要的瓶颈。 虽然其他方法可能显示出更大的浅粉红色条(包括时间),但这些方法代表其依赖功能的累积时间。 深色粉红色部分代表需要立即注意的功能。 切换到RAM模式表明,Twig渲染消耗了RAM的大部分(约40MB)。鉴于大量数据呈现。 热路径(厚边界)清楚地突出了瓶颈。 密集的节点(花费时间的节点)也可能表明问题,即使不是热路径的一部分。
(高RAM使用)是由在主页上加载所有画廊引起的。解决方案:实施分页。
> 常数 修改画廊获取过程以使用分页: >
>记忆使用率减少了十倍,并且加载几乎是瞬时的。 新的瓶颈是开发环境的结果。切换到生产模式进一步提高了性能:
结论: 经常询问问题(FAQ): 提供的FAQ部分在很大程度上保持不变,因为它提供了与PHP性能优化相关的有价值的信息。 它准确地涵盖了监视工具,常见问题,优化技术,可伸缩性和最佳实践等主题。
用黑火优化PDOExecute
>
>分析表明,
PDOExecute
实现分页:unserialize
PER_PAGE
HomeController
<code class="language-yaml"># blackfire:
# - id: foo
# token: bar
# client-id: foo
# client-token: bar</code>
>为懒惰加载画廊添加新方法:
性能比较:<code class="language-php">$galleries = $this->em->getRepository(Gallery::class)->findBy([], ['createdAt' => 'DESC'], self::PER_PAGE);</code>
实施分页后,
HomeController
<code class="language-html+php">{% block javascripts %}
{{ parent() }}
{% endblock %}</code>
DebugClass
以上是php级级别的性能优化的详细内容。更多信息请关注PHP中文网其他相关文章!