从脚本语言运行应用程序时出现奇怪的性能行为
我编写了 tcl 脚本作为计算密集型不同应用程序之间的粘合剂。
当我运行 top
命令时,我看到 2 个 cpu 的利用率为 100%。
第一个用于 tcl,第二个用于我正在运行的应用程序。
问题是:当二进制应用程序计算量很大时,为什么 tcl 充分利用其中一个处理器?
谢谢。
I wrote tcl script as an glue between different apps which are computationally intensive.
When I run top
command I see that 2 cpu's are 100% utilized.
The one is for the tcl and the second is for the application I am running.
The question is: why the tcl is utilizing fully one of the processors when the binary application is heavily computationally?
Thx.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果我猜的话,我会说 TCL 脚本正在轮询某些内容;也许返回消息? “正确”的方法是使用中断,但这始终是一个有趣的 TCL 练习。另一方面,TCL 也有可能根本不是问题 - 如果您可以获取 TCL 源代码,请在工具调用后添加“after 1000000”或类似内容;然后你就会知道它是否真的是你拥有的 TCL,或者是被 DLL 掩盖的其他东西。
如果没有好的方法来编辑供应商 TCL,那么也许您可以在“慢速”远程计算机上使用 TCL,并使用 SSH 或 telnet 在“快速”计算机上调用应用程序本身。
If I were guessing I'd say the TCL script is polling something; returned messages perhaps? The 'right' way is to use interrupts, but that's always a fun TCL exercise. On the other hand there's a possibility the TCL isn't the problem at all - if you can get at the TCL source, put "after 1000000" or the like after the tool call; then you'll know if it's really the TCL you have, or something else masked by the DLL.
If there's no good way to edit the vendor TCL then perhaps you can use TCL on a 'slow' remote machine, and call the application itself on the 'fast' machine using SSH or telnet.
更多细节会有所帮助:您正在谈论哪些工具?他们提供 Tcl 接口的目的是什么?您创建了 Tcl 脚本吗?你如何调用它?
More specifics would be helpful: which tools are you speaking about? For what purpose do they provide a Tcl interface? Did you create the Tcl script? How do you invoke it?