在tcl中编写的irc bot如何与python/node.js克隆进行比较?

在tcl中编写的irc bot如何与python/node.js克隆进行比较?,python,tcl,irc,node.js,eggdrop,Python,Tcl,Irc,Node.js,Eggdrop,我相信eggdrop是最活跃/最受欢迎的机器人,它是用tcl编写的(根据wiki,核心是C,但我还没有证实这一点) 我想知道,在node.js或Python中重新编码它的功能,除了使它更易于访问之外,是否还有任何性能上的好处,因为Python和js可以说是更流行的语言,而且没有多少人熟悉tcl 那么,在性能方面,与tcl相比,它们的总体性能如何?正如您所怀疑的,eggdrop不是用tcl编写的,它是用C编写的,但它确实使用tcl作为脚本/扩展语言 我希望在eggdrop的情况下,使用tcl作为脚

我相信eggdrop是最活跃/最受欢迎的机器人,它是用tcl编写的(根据wiki,核心是C,但我还没有证实这一点)

我想知道,在node.js或Python中重新编码它的功能,除了使它更易于访问之外,是否还有任何性能上的好处,因为Python和js可以说是更流行的语言,而且没有多少人熟悉tcl


那么,在性能方面,与tcl相比,它们的总体性能如何?

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

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

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


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

如果你除了等待一个安静的频道发生一些事情之外,没有做其他事情,那么性能几乎是无关紧要的。您可以将其写入(添加了网络连接原语)并使其正常运行

如果你在很多繁忙的频道上运行,有很多事情需要关注,那就不同了。Tcl非常擅长事件驱动IO,非常适合这种情况。(Python可以做到这一点,但需要外部库,Lua也是如此。我对JS了解不够,无法在这里发表评论。)

如果您需要对某些消息响应执行重要的非IO绑定处理,则需要线程。我知道Tcl和Python都支持线程,但线程模型完全不同(Python有一个共享内存模型,可以更容易地传递某些类型的任务,尤其是在数据较大的情况下,而Tcl有一个单元模型,可以大大减少实现中所需的锁定量,从而在CPU受限的代码中获得良好的性能提升)


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

node.js基于Python的Twisted和ruby的事件机,非常受事件驱动。我选择了node.js路线,因为我对js非常熟练:。谢谢你的回答。