【发布时间】:2016-06-08 10:28:51
【问题描述】:
参见下面的 Tcl 8.4 代码和下面的 shell 输出:(我需要元编码):
% set k a
% set m k
% puts [set $m ]
a
% puts [subst $$m]
a
因此,set $m 和 subst $$m 似乎具有相同的功能。但是,运行时(在简单的测试用例中)是相当不同的(请参阅下面的 shell 结果的延续:
% time { set $m } 1000000
0.256435 microseconds per iteration
% time { subst $$m } 1000000
0.627714 microseconds per iteration
可以看出,set 比 subst 快约 2.5。 2个问题是: 待问:
1. 为什么?
2. 我已经看到它在 Tcl 8.5 中快了 ~3.6。我们能否期望在未来的版本中保持这种情况?
谢谢
【问题讨论】:
-
让我们正确看待这一点:我们所说的时间不到一微秒。
-
是的。但是,如果您必须这样做数亿次,会发生什么?
-
嗯,每次迭代半微秒乘以 5 亿次迭代大约是 4 分钟。当然值得一看,但可能不是你最大的瓶颈。
-
不。但是这段代码可能会在以后被使用,在被访问数十亿次的东西(VLSI 芯片晶体管)上运行很多次,在昂贵的许可 EDA 软件上,它开始显现出来。
标签: performance variables runtime tcl