我正在为 libvisual 开发音乐可视化插件。这是一个 AVS 克隆—— AVS 来自 Winamp。现在我有一个超级作用域插件。该元素有 4 个脚本,“点”在每个像素处运行。你可以想象它必须相当快。最初的 libvisual avs 克隆有一个非常快的 JIT 编译器,但它有一些错误并且没有完全实现,所以我决定尝试 v8。好吧,v8 在每个像素处运行编译脚本太慢了。为此目的,是否有任何其他脚本引擎会非常快?
问问题
374 次
2 回答
2
如果您在每像素级别上运行更新,我建议您使用屏幕的屏幕外内存表示,并将屏幕作为一个整体更新,而不是每个单独的像素。我知道这通常是位图更新的常见问题,而不是 V8 本身。我对您正在工作的特定环境知之甚少,无法提供太多帮助,只是正如我所说,尝试一次针对 UI 画布更新单个像素是一个常见的性能问题。如果您可以对您的画布/ui 表面进行离线/离屏表示,然后一次全部更新,您的性能会好得多。
此外,您的事件模型的制定方式也会有一些依赖性。如果这不能正常工作,您可能需要将此逻辑带入已编译的 COM 对象或其他东西中,但在逐像素更新方案中,您在尝试进行逐像素更新时会遇到类似的问题。不是说你是,只是再次注意这是这类问题最常见的问题。
于 2010-06-06T17:46:00.560 回答
1
听起来您需要使用本机代码,或者可能是 Java Applet(我不推荐 Java Applet,只有在您完全控制客户端环境时才使用它)。
于 2010-06-06T17:20:02.730 回答