当前位置:  开发笔记 > 编程语言 > 正文

执行的性能开销:在Smalltalk中(特别是Squeak)

如何解决《执行的性能开销:在Smalltalk中(特别是Squeak)》经验,为你挑选了1个好方法。

perform:平均而言,我可以合理地期望比文字信息发送的速度慢多少?我是否应该避免发送perform:循环,类似于Perl/Python程序员为避免在循环中调用eval("...")(Compiler evaluate:在Smalltalk中)的警告?

我主要关注Squeak,但也对其他Smalltalks感兴趣.此外,perform:with:变体的开销是否更大?谢谢



1> Chuck..:

#perform:不喜欢eval().这个问题eval()(性能明智的,无论如何)是它编译你在运行时将其发送的代码,这是一个非常缓慢的操作.#perform:另一方面,Smalltalk 相当于Ruby send()或Objective-C performSelector:(事实上​​,这两种语言都受到了Smalltalk的强烈启发).这些语言已经根据名称查找方法 - #perform:只允许您在运行时指定名称而不是写入时间.它不必解析任何语法或编译任何类似的东西eval().

它会慢一点(至少一个额外的方法调用的成本),但它不是eval().此外,具有更多参数的变体不应该显示速度与简单的任何差异perform:whatever.我不能特别谈论有关Squeak的那些经验,但这是它通常的工作方式.

推荐阅读
手机用户2402851155
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有