代码之家  ›  专栏  ›  技术社区  ›  Christophe Herreman

性能重构(和测试)

  •  0
  • Christophe Herreman  · 技术社区  · 16 年前

    我有一个库,它在describeType()之上提供了一个反射API(这个方法返回一个包含类或实例的所有规范的XML对象)。由于这个库在其他几个库和框架中使用,我真的希望它尽可能快。

    这就引出了以下问题:

    • 以前有人做过类似的事情吗?
    • 你是如何测试和比较这些变化的结果的?
    • 是否有任何测试框架(也非actionscript)可以帮助在这样的场景中进行性能测试?
    • 你还有其他一般的建议吗?
    3 回复  |  直到 16 年前
        1
  •  1
  •   Patrick    16 年前

    您可以从中使用探查器 FlashBuilder (不是免费的)看看哪里可以改进。

    TDSI 例如(仍在开发中,将进行更多优化)

    如果您想了解引擎盖下发生了什么并了解更多已编译的代码,请查看 tamarin 源代码(adobevm在flashplayer中的使用)并学习 abc bytecode

    或者编写多个函数并测量它们的性能,一步一步地进行小的重构,看看有什么好处,可以使用 gskinner library 对于测量(不要使用调试播放器,因为某些函数比它慢)。

    读一些关于 as3 optimisation . 有很多像你这样的好人 Joa Ebert , Grant Skinner

    但是,如果优化后的增益很小,您最好保持代码的可读性。

        2
  •  1
  •   anon anon    16 年前

    profiler . 您的编译器应该附带一个,例如gprof附带GCC—有 a tutorial here

        3
  •  1
  •   Community Mohan Dere    8 年前

    测量 发现

    您可以通过查找和修复花费最多时间的内容来加快代码的速度,这不是测量,而是采样—时间越长,找到它所需的样本就越少。

    测量的好处是看实际节省了多少时间。

    取样时不丢弃信息是很重要的。只有程序计数器( as in gprof gprof公司 以及其他探查器)。随机CPU时间的样本对花费在不必要的I/O或系统函数中的时间是盲目的。

    一个好的探查器是 RotateRight/Zoom . 我用 this technique .