2010-06-06 90 views
0

我正在为libvisual制作音乐可视化插件。这是一个AVS克隆 - 来自Winamp的AVS。现在我有一个超级插件插件。该元素有4个脚本,并且每个像素都运行“点”。你可以想象它必须相当快。原始的libvisual avs克隆有一个非常快的JIT编译器,但它有一些bug并没有完全实现,所以我决定尝试v8。那么,v8在每个像素上运行编译脚本的速度太慢。有没有其他的脚本引擎可以很快达到这个目的?v8对于我的目的太慢了

回答

2

如果您运行的基于每个像素级别的更新,我会建议有屏幕的屏幕外的内存中表示,并更新屏幕作为一个整体,而不是每个像素。我知道这是一般位图更新的常见问题,而不是V8本身。我不太了解你所工作的特定环境是否有很大帮助,但正如我所说的,尝试逐个更新各个像素对应一个UI画布是一个常见的性能问题。如果您可以对canvas/UI表面进行离线/离线表示,然后一次更新它,您的表现将会更好。

此外,您的事件模型如何制定出来会有一些依赖关系。如果这样做效果不好,您可能需要将此逻辑放入已编译的COM对象中,但在每像素更新方案中,尝试执行每像素更新时会遇到类似的问题。不是说你是,只是再次注意到这是这类问题最常见的问题。

1

听起来像您需要使用本机代码,或者可能是Java Applet(并非我推荐Java Applet,只有在您完全控制客户端环境时才使用它)。

+1

或者silverlight/moonlight脚本。 – liori 2010-06-06 17:28:23