flash - Flash/ActionScript 3 中 is 运算符的性能?

标签 flash apache-flex actionscript-3 actionscript air

有人有关于 is 运算符性能的文章/测试吗?我在 Google 上找不到任何东西,它只是因为太小而吃掉了我的“is”关键字。

我计划在我的组件的消息传递系统中广泛使用 is 运算符,因此性能需要稳定。如果我能做到的话,它将使我不必为每条消息提出一个 id 和 id-lookups 的方案:

function onMessage(message : Message, type : Class) : void
{
    switch(type)
    {
        case MessageOne:
            // whatever
        break;
        case MessageTwo:
            // whatever
        break;
    }
}

我所做的时序测试表明它几乎与整数比较一样快,所以我只想确定一下。

有人做过自己的测试或知道一些文章吗?

谢谢。

最佳答案

“is”运算符非常快,即使每秒进行数万次测试。

不仅如此,它确实是比较继承层次结构的最佳实践,而不仅仅是类名(例如比较 Image 是否为 UIComponent)以及对接口(interface)实现的支持(所以比较Image is IEventDispatcher 例如)。

更多:http://livedocs.adobe.com/flex/3/html/03_Language_and_Syntax_09.html#122921

所以,是的,它已经足够快了——而且,如果不是这样,并且你不得不打破语言的基本最佳实践以使其符合你的设计意愿——那么你做错了。

:)

关于flash - Flash/ActionScript 3 中 is 运算符的性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6619784/

相关文章:

actionscript-3 - AS中的内部类

silverlight - Firefox 上的无窗口 Silverlight(和 Flash?)应用程序 : wrong mouse positions reported

android - 离开 WebView 后如何停止 Flash?

apache-flex - 找出按下的字符

jquery - IE8 - 在可拖动的 div 中带有 flash 的 iframe - 糟糕的重绘

apache-flex - 如何获取 AIR 应用程序中 AIR 运行时的版本?

android - 开发适用于 Android 和桌面的 Air (Flex) 应用程序

html - 光标在 flex 应用程序上时禁用鼠标滚轮滚动?

javascript - 有效的 JavaScript 代码不是有效的 ActionScript 3.0 代码?

actionscript-3 - 检测/记录 AS3 "stop the world"GC 暂停