【技术实现步骤摘要】
【国外来华专利技术】背景将电子表格应用程序用于数据分析已变得普及。此外,随着越来越多的企业依赖于这些应用程序来进行复杂数据计算,对这些程序的更快且更高效的处理的需求也变得十分渴求。Microsoft ExcelTM是这一电子表格应用程序的一个示例。电子表格应用程序的一个单元格中被称为“依赖”公式的公式依赖于另一单元格的内容或其中被称为“支持”公式的公式是典型的。当单元格的内容改变时,可触发重新计算(“重计算(recalc)”)操作,其中使用一程序线程来迭代通过各公式并基于这些改变来重计算需要重新计算的任何公式。当重计算程序线程面临依赖于尚未被计算的支持公式的公式时,用于计算操作的处理时间即使没有完全暂停相当长的一段时间也会在速度上减慢。即使在这些应用程序中采用多个处理器或多个程序线程的情况下,计算和重计算的执行速度在至少一个处理器不能在等待支持公式被计算的同时完成计算或重计算的情况下也不能提高。该问题随着电子表格应用程序中的依赖公式的数目增加而恶化。虽然本背景一节中着眼于特定的问题,但本专利技术决不旨在限于解决那些特定问题。概述本专利技术的各实施例一般涉及在有一个以上处理器或处理引擎可用时用多个处理器或多个并发线程来处理电子表格计算和重新计算。其它实施例涉及在对输入项链重新排序时使用树结构和依赖性等级来执行重计算操作的多线程处理。此外,某些实施例涉及对重计算操作的多线程处理的同步。如此处所讨论的,一特定实施例的一 ...
【技术保护点】
一种处理电子表格程序(1520,500)中的公式的方法,包括: 将所述公式排序成单计算链(500,626); 试图对所述单计算链中的第一个公式求值(500,628); 如果所述第一个公式依赖于所述单计算链中的支持公式,则将 所述第一个公式移至所述支持公式的子位置(604、630、634);以及 继续对所述单计算链中的所有公式排序,直到每一依赖公式都成为其各自的支持公式的子并且得到具有一个或多个公式子链的统一链(602、604、644);。
【技术特征摘要】
【国外来华专利技术】US 2006-5-8 11/430,4861.一种处理电子表格程序(1520,500)中的公式的方法,包括:
将所述公式排序成单计算链(500,626);
试图对所述单计算链中的第一个公式求值(500,628);
如果所述第一个公式依赖于所述单计算链中的支持公式,则将所述第一个
公式移至所述支持公式的子位置(604、630、634);以及
继续对所述单计算链中的所有公式排序,直到每一依赖公式都成为其各自
的支持公式的子并且得到具有一个或多个公式子链的统一链(602、604、644);。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
将所述统一链(602、604)划分成多个依赖性等级(618、620),其中每
一依赖性等级包括仅依赖于来自前一依赖性等级(618)的公式或其自己的子
链内的公式(608、610、640、642)的公式(608、610、612、642、640)。
3.如权利要求2所述的方法,其特征在于,如果一依赖公式(612)是第
一个支持公式(610)的子并且依赖于未计算的第二个支持公式(608、636、
642),则所述依赖公式被移至下一依赖性等级。
4.如权利要求2所述的方法,其特征在于,一支持公式具有第一个依赖
公式和第二个依赖公式,并且所述第一个和第二个依赖公式被移至下一依赖性
等级(638、640)。
5.一种可由计算机系统(1500)读取并且有形地包含可由所述计算机系
统执行来执行如权利要求1所述的方法的指令的程序的计算机程序产品(1508、
1520)。
6.一种使用多个处理器来计算电子表格程序中的公式的方法(200、1000),
包括:
确定处理器的个数(206);
将重新结算引擎分配给每一处理器(209);
维护一控制线程以同步所述重新计算引擎的处理(1004);
将所述公式排序成单计算链(700、626);
试图用第一重新计算引擎对所述单计算链中的第一个公式求值(708、628、
1120);
如果所述第一个公式依赖于第一个支持公式,则将所述第一个依赖公式和
第一个支持公式移至所述第一重新计算引擎的队列(706、636、1122);
试图用第二重新计算引擎对所述单计算链中的第二个公式求值(708、
1124、1138);
如果所述第二个公式依赖于第二个支持公式,则将所述第二个依赖公式和
第二个支持公式移至所述第二重新计算引擎的队列(710、1138、1140);以
及
继续沿着所述单计算链向下迭代,直到到达所述链的末尾(708、706、710、
1142、644)。
7.如权利要求6所述的方法,其特征在于,所述方法还包括:
清空每一重新计算引擎的队列以便重新排序(1122、1140),其中所述第
一个依赖公式成为所述第一个支持公式的子,并且其中所述第二个依赖公式成
为所述第二个支持公式的子(802、804、630、634)。
8.如权利要求7所述的方法,其特征在于,所述第二个支持公式本身是
第三个支持公式的子(804)。
9.如权利要求6所述的方法,其特征在于,所述方法还包括:
如果所述第一个公式依赖于第一个支持公式,则标记所述第一个依赖公式
以跟踪它(1420);
确定所述第一个支持公式是否依赖于所述第一个依赖公式(1414、1418);
如果所述第一个支持公式依赖于所述第一个依赖公式,则标记所述第一个
支持公式以跟踪它(1420);
在完成通过所述单计算链的迭代后,检索被跟踪公式(1422、1424...
【专利技术属性】
技术研发人员:JJ杜扎克,A贝克,MJ安德罗斯奇,D坎贝尔,
申请(专利权)人:微软公司,
类型:发明
国别省市:US[美国]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。