在菲罗,我怎样才能找到目前正在评估栈?

有帮助吗?

解决方案

唉,其实,AINT这么简单的问题:thisContext可以是相当昂贵的操作,比较喜欢一个消息发送。

在VisualWorks中Smalltalk中,栈接入是 extermly 昂贵的,因为它使用的天然C-栈,从而thisContext任何访问都必须具体化整个C堆栈成因果关系 Smalltalk的对象。也就是说,对于每个C堆栈帧一个Smalltalk的目的是要创建(包括可能的JIT去最佳化),并进一步对这些对象的所有更改都必须被反射回C堆栈。

在菲罗(和佳乐,就此而言)它不太别扭,因为它使用的Smalltalk对象为堆栈。不过还是用于缓存堆栈帧中的对象池在每次调用刷新。 (是的,比如JAVA等,汇集对象确实提高佳乐性能...欢迎回到90ies:)

其他提示

您评估

thisContext contextStack

下面,thisContext确实指向当前有效的堆栈帧的特殊变量。然后,contextStack返回与整个堆叠阵列。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top