officeba > 单独文章


Excel 2010 中更多的性能改进

更多的性能改进在Excel 2010
在这个约在Excel 2010年的投资业绩后的第二次我将总结的挑战和机遇,我们这个版本拥抱,对大型数据集的情况,计算性能和投资的新的多核心功能,具体讨论的主题。


大型数据集性能
随着在Excel 2007大网格介绍和了解,64位Excel中(见此帖)将使我们的客户真正开始到所有这些细胞中的优势,我们采取了在我们的大型数据集的表现细看。我们调查并实施围绕共同的活动,人们不喜欢的数据输入和填充了数据,排序,筛选,优化,并复制/粘贴。我们测试了这些情况相当严重,以确保这些作为数据量的规模变得越来越大,特别是超越2GB内存。

我们还花时间确保我们优化的工作集(内存使用),以尽可能高效。我们跑过去的300次测试,包括基本的应用情况,分析工作为每一个测试指标,并调整我们的代码,以减少内存占用。我们还比较64位Excel中2010年的32位版本,以确保任何增加是合理的,我们进一步比较与Excel 2007 Excel中2010年发现和解决回归。这项工作,确保在Excel只使用内存真的需要在运行您的工作簿,并确保Excel中释放内存不再需要尽快。

计算性能
多线程计算在Excel 2007中引入了改进的计算性能,我们希望把针再次释放。 Excel工作簿的一个重要部分的核心业务流程,计算速度可以成为我们的一些客户的瓶颈。 Excel计算性能改进非常有价值的为我们的客户,因此这是我们投资的重要领域。

正如我们与性能方面所做的VBA(见我以前的帖子),我们已经收集了客户对计算性能谁照顾的一群工作簿。我们经常基准套件的工作簿,看一看结果看,看看可以优化,推行改革,重考等,提高到2010年Excel中的计算速度。以下是最近的结果相比,快照与Excel 2007:

  

这表明,近70%,在我们的计算性能测试套件的工作簿大大快于Excel 2007年。

还有另一个在计算领域的独特的投资,我要提一提:异步XLL中用户定义函数(异步XLL中的UDF)。背后的异步XLL中UDF的想法是这样的:我们知道,我们的一些客户使用的一种方式从服务器获取外部数据XLL中的UDF。关于运行Excel机CPU使用率并不很重,但服务器处理请求可能需要一段时间来返回请求的数据。如果您有在A1这些职能100:例如A100,你可以等待一段时间为您的工作簿计算,因为Excel进程中的一次细胞。由于本地的机器没有做任何重型CPU处理,使用Excel 2010年,我们已经启用的功能,把所有100 XLL中UDF的一次电话,让后端服务器的并行处理的要求。我们将对此功能的更多细节,当我们深入到可编程改善在稍后的日期。

新的多核心功能
我们还花时间加入到Excel 2010年,多核心功能。正如我们在研究我所描述的投资到目前为止地区的情况,我们还保持着什么特点将非常适于并行处理的眼睛。当我们完成了算法调整和优化,在这些领域,我们接着通过实施后,多领域的核心,在选择功能更多收益:

File.Open
File.Save
数据透视表刷新(对于外部数据源,除了OLAP和SharePoint列表)
细胞表排序
数据透视表排序
列自动上浆
前三个方面都涉及到推/拉的数据,我们发现,最好分成两个行动:对获取的数据,加工成适当的结构它的保存情况(或者相反,其他一起来)。这里的好处是,一旦第一次提取完成后,第二个线程可以开始处理这些数据到工作簿,而同时获得的第一个线程来获取右后卫的下一个数据集,喜欢它显示在画面:

  

在实施多线程File.Open,这两个进程将堆叠端到端的。所有的阅读需要完成之前加载到内存中开始。现在,以File.Open为例,在“开始”Excel在Excel中为2010年要求在包(工作簿中的部分)的第一部分。只要是在场外磁盘和解压,Excel会告诉第一个线程去获取本书的下一部分(可能是表),启动并在同一时间,第二个线程以获取工作簿的一部分数据到Excel加载内存结构。你可以想像的结构和工作簿的内容将极大地影响了性能提升。如果只有一个巨大的工作簿中的工作表而不是其他,那么,它几乎不需要花时间来加载工作簿的一部分,是大量的时间比例会用简单加载一个工作表。没有多少经验。如果您有两个巨大的表,然后还有很大的收获,因为Excel可以提取过第二张盘的第一个表,而仍在加载到内存中。

本人计时与Excel的2010年Excel 2007年载入中一对夫妇的工作簿:1与数字,300万在Sheet1和Sheet2的300.0万填补600.0万细胞,另一个与数字,在Sheet1和6000000 6000000填补12000000细胞簿在Sheet2:

  

你可以看到有很多人在得到负荷位的开销成立,拉过磁盘的第一部分,但这些都是一些非常好的收益,这样的开放,特别是工作簿的共同行动。数据透视表刷新工程类似,但数据是在同一要求的大小,直到所有被检索的行包。

我们也想改善共同操作的性能,可以花很长时间,由于数据,包括细胞表排序(包括有和没有一个表被应用到该区域)的大小,排序数据透视表和列自动上浆。我们特别选择了汽车大小的列,因为这行动表现了一个“长期运行”,在我们的行动方案,包括数据透视表刷新,刷新的QueryTable和用户数发起列汽车装修。

我希望大家将能够享受和受益于一个活泼的和迅速的Excel的2010年!

声明:欢迎各大网站转载本站文章,还请保留一条能直接指向本站的超级链接,谢谢!

时间:2009-09-10 11:52:18,点击:65824


【OfficeBa论坛】:阅读本文时遇到了什么问题,可以到论坛进行交流!Excel专家邮件:342327115@qq.com(大家在Excel使用中遇到什么问题,可以咨询此邮箱)。

【声明】:以上文章或资料除注明为Office自创或编辑整理外,均为各方收集或网友推荐所得。其中摘录的内容以共享、研究为目的,不存在任何商业考虑。如有任何异议,请与本站联系,本站确认后将立即撤下。谢谢您的支持与理解!


相关评论

我要评论

评论内容