Javascript中的金融计算器运行速度比Excel慢得多

时间:2009-01-12 18:24:33

标签: javascript excel performance

我已将Excel退休计算器移植到Javascript中。原始Excel中有35个工作表,包含许多递归计算,所有这些都已转换为Javascript。 Javascript运行速度较慢(与Excel的瞬间相比为1-2秒)。

我正在缓存递归计算,以加快速度并防止浏览器中的堆栈溢出。

尝试更快地使用Javascript是否现实? Excel如何变得如此高效?

我在某处读过,Excel只会在修改单元格的先例时重新计算。即使如此,在我看来,无论需要重新计算多少数据,Excel都是即时的。

4 个答案:

答案 0 :(得分:6)

Excel更快,因为它离CPU更近一层 - 在操作系统中运行已编译的字节码,而不是在运行解释JavaScript的浏览器中运行。

我会将性能与具有新一代JavaScript引擎的Google Chrome或FF3进行比较,并了解情况如何改进。请参阅John Resig的帖子:http://ejohn.org/blog/javascript-performance-rundown/

答案 1 :(得分:2)

JavaScript比任何编译语言慢,这就是为什么Excel速度要快得多。我会使用Firebug的分析器来确定代码花费大部分时间的位置,并专注于改进它。

答案 2 :(得分:0)

如果您已将Excel公式移植到JavaScript同时保留了完整的算法,那么您最终使用的JavaScript代码可能不是JavaScript的最佳选择。您是否考虑过重构以利用JavaScript强大的语言功能?

另外,您在进行计算时是否渲染事物(更新表格单元格等)?请记住,一些DHTML更新可能会给浏览器带来很大的负担(嘿,你在浏览器中运行它,对吗?)也许分离计算和渲染可能会有所帮助。你首先要忙着做所有的计算,然后做最后一步的演示。

答案 3 :(得分:0)

正如其他人所说,JavaScript远不及编译语言那么快。目前,Chrome,Firefox和Webkit的JavaScript解释器之间存在一些军备竞赛,这确实提高了JavaScript的速度。但是,它仍然很慢,如果你使用的是IE7(甚至更糟的IE6),性能可能会非常糟糕。

你可能想看看那里的一些JavaScript库(我个人喜欢jQuery),看看它们中的一些是否具有你可以利用的实用功能。一些使用较多的JavaScript库可能已经优化了您尝试执行的一些工作。它肯定不会像Excel一样快速地使用JavaScript,但是如果你可以用许多不同的人优化的实用程序替换你的许多功能,你可以看到一点点的速度提升。