首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用tcl编写的irc机器人如何与python/node.js克隆相抗衡?

用tcl编写的irc机器人如何与python/node.js克隆相抗衡?
EN

Stack Overflow用户
提问于 2010-07-26 05:13:21
回答 2查看 941关注 0票数 3

我相信eggdrop是最活跃/最流行的机器人,而且它是用tcl编写的(根据wiki的说法,它的核心是C,但我还没有证实这一点)。

我想知道除了让它更容易访问之外,用node.js或Python语言重新编码它的功能是否会对性能有任何好处,因为Python和JS可以说是更受欢迎的语言,而熟悉tcl的人并不多。

那么,在性能方面,它们与tcl相比会有什么区别呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-07-26 05:37:57

如您所料,eggdrop不是用tcl编写的,它是用C编写的,但是它确实使用tcl作为脚本/扩展语言。

我希望在使用eggdrop的情况下,使用tcl作为脚本语言与使用Python、Lua、JS或几乎任何其他语言之间的性能差异可以忽略不计,因为eggdrop通常不会执行高负载任务。

如果这真的是一个问题,你的问题需要更多的细节。在什么条件下,什么任务的性能?内存使用情况?CPU效率?延迟?答案可能是“测量并找出”。考虑到eggdrop的典型用法,不需要特别高效的代码就可以每隔几分钟或几个小时响应一次偶尔出现的IRC触发器命令。

作为更一般的情况,我相信您可以找到在特定操作系统或环境下由各种脚本语言执行的特定算法或任务的基准比较,在这一点上,它实际上与IRC或eggdrop没有任何关系。

票数 6
EN

Stack Overflow用户

发布于 2010-07-26 08:07:58

如果除了等待某件事发生之外,您没有做太多的事情,那么性能几乎是无关紧要的。您可能可以用BF编写(好吧,添加了网络连接原语),并使其执行正常。

如果你在许多繁忙的频道上运行,有很多东西被观看,那就不一样了。Tcl非常擅长事件驱动的IO,这是这种情况下的理想选择。(Python可以做到这一点,但需要外部库,Lua也是如此。我对JS的了解还不够多,无法在这里发表评论。)

如果您需要对某些消息响应进行重要的非IO绑定处理,则需要线程。我知道Tcl和Python都支持线程,但使用完全不同的线程模型(Python有一个共享内存模型,这使得传递某些类型的任务变得更容易,特别是当数据很大的时候,而Tcl有一个公寓模型,它极大地减少了实现中所需的锁定量,以便在CPU受限的代码中获得良好的性能提升)。

这与IRC机器人有什么关系?好吧,这完全取决于你在机器人中做了什么。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3331027

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档