投机执行

November 11, 2009 at 3:16 pm (29675) ()

有的时候当你的选择的代价很大时,不如跳过选择两种都尝试一下,一旦等你决定后,可以直接选用其中一种结果。这种方法在对时间敏感的任务中特别的有用。

在计算机理论中有种代码的执行方式叫做投机执行,意指计算的结果可能是不需要的.通常程序中的指令可以分三种:一定需要执行的,一定不需要执行的,和无法确定是否需要执行的.最后一种情况就是和进行投机执行.

现代CPU流水线有一种设计,对于分支的流程代码,可以先猜测哪种是最可能的分支,或者干脆两个分支都执行。这样当实际的判断条件知道之后,直接获取结果就行了。这样的好处是可以提高程序的执行时间,但是浪费电能,对移动应用杀伤力很大。

在分布式计算系统中也有类似的应用,比如Hadoop会把执行得相对过慢的任务用同样的数据再启动一个。以保证一次计算作业能够尽快的完成。


Advertisement

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.