首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    [python][profiling]python的性能监控的几种方法

    前言: 编译型语言,比如C,C++,Go编译出来的二进制,可以使用perf来分析性能。对于编译出来的elf格式,使用dwarf来分析symbol。 对于python这种解释型语言,就会比较麻烦。因为python进程的stack是Cpython的stack,并非对应的py的stack。 分析: 1,cProfile python的官方提供了profiling工具,https://docs.python.org/2/library/profile.html 用法上,需要修改代码,重新执行。对于线上业务,其实是不太友好的。另外就是如果父进程启动之后,启动子进程执行,就没法工作了。 相比这种方式,作者更倾向旁路的方式,对于一个running的python进程进行profiling,业务进程不需要修改,也无感知(允许一定范围内的性能下降)。像perf一样,不侵入进程的情况下进行性能分析,用起来更舒服一些。 2,cpython的stack 来一段测试代码:

    01

    【Rust 日报】2021-07-02 Facebook 从 Java 到 Rust | Buck 的未来

    Buck 是 Facebook 在 2013 年的Facebook Mobile DevCon上亮相的一个快速的 Android 构建系统。从那时起,它已经扩展到支持用15种以上的语言编写的应用程序,目标平台包括手机、服务器、智能设备和VR头盔等等。不过,随着时间的推移,Buck并没有跟上这种功能和灵活性的增长,没有进行必要的架构改变和改进来管理这种复杂性。随着Facebook内部和外部开发新的功能,发现这导致了巨大的实施复杂性,对核心和语言规则进行修改的挑战越来越大。虽然该团队在近4年前就开始了一项举措,逐步对 Buck 进行一些这样的跨领域的架构改进,但这些改变是非常困难的。所以,从2020年开始,该团队开始构思,如果从零开始构建 Buck 会怎么样?怎样才能写出一个可以在未来10年或20年中继续扩展的构建系统?以下是Facebook团队的思考

    04
    领券