Posts for: #Profiling

工程上的一些想法

由于过往的各种条件限制,如数据库性能不够、PaaS 平台功能不足、对特定领域的问题理解不充分,线上的服务一定会有很多妥协解决方案。这些问题不会让服务彻底不可用,但一定会困扰团队,容易让人担忧系统的可靠性。特别是提供 toB 服务而言可靠性与准确性是一样重要的。

Read more

对 Flask 应用做采样分析

在 Python3.7 环境下,Uber 开源的 PyFlame 无法使用,而在容器环境中,py-spy 又有诡异的问题。考量各种「采样」工具后,发现只有内置的 cProfile 才是稳定、可靠的。

但是对于复杂的 Flask App,大量使用 cProfile 执行采样非常不方便。本文将给出一个在 Python3.7 的容器环境下经测试可以正常工作的例子。原理是在 app 初始化后,添加 werkzeug ProfilerMiddleware(也许可以翻译成采样中间件)。

Read more