我已经将Excel退休计算器移植到了Javascript中。在原始Excel中有35个工作表,其中包含许多递归计算,所有这些我都已转换为Javascript。Javascript的运行速度较慢(与Excel的瞬时运行速度相比,运行速度为1-2秒)。
我已经缓存了递归计算,以加快速度并防止浏览器中的堆栈溢出。
尝试让Javascript变得更快是现实的吗?Excel是如何做到如此高效的呢?
我在某处读到Excel只有在单元格的引用被修改时才会重新计算。尽管如此,在我看来,无论有多少数据需要重新计算,Excel似乎都是即时的。
发布于 2009-01-12 10:30:55
Excel的速度更快,因为它离CPU更近几层--在操作系统中运行编译后的字节码,而不是在浏览器中运行解释过的JavaScript。
我会将性能与使用新一代JavaScript引擎的Google Chrome或FF3进行比较,看看它们是如何改进的。请参阅John Resig的帖子:http://ejohn.org/blog/javascript-performance-rundown/。
发布于 2009-01-12 10:32:10
JavaScript比任何一种编译语言都慢,这就是为什么它快得多的原因。我会使用Firebug的分析器来找出你的代码在哪里花费了大部分时间,并专注于改进它。
发布于 2009-01-12 10:39:08
如果您已经将Excel公式移植到JavaScript,同时保持算法不变,那么您最终得到的JavaScript代码可能不是JavaScript最理想的代码。您是否考虑过通过重构来利用JavaScript强大的语言特性?
另外,你是否渲染了一些东西(更新表单元格等)?在做计算的时候?请记住,一些DHTML更新可能会给浏览器带来很大的负担(嘿,您是在浏览器中运行的,对吧?)也许分离计算和渲染可能会有所帮助。你首先要忙着做所有的计算,然后做演示作为最后一步。
https://stackoverflow.com/questions/436445
复制相似问题