【问题标题】:IRC Bot, performance and scaling [closed]IRC Bot,性能和扩展[关闭]
【发布时间】:2015-10-31 01:13:42
【问题描述】:

我在 python 中为自己制作了一个简单的 IRC 机器人,效果很好,但是现在一些朋友问我这个机器人是否也可以加入他们的 IRC 频道。他们的 IRC 频道非常活跃,它是 Twitch 聊天(IRC 包装器),这意味着很多消息。我希望他们使用我的机器人,但我不知道它会如何执行,这是我制作的第一个机器人。

现在我的代码是这样的:
Connect to IRC server & channel while true: Receive data from the socket (4096, max data to be received at once) do something with data received

我应该做哪些改变以使其表现更好?
1.我应该在循环中设置睡眠功能吗?
2. 我应该使用线程吗?
3. 任何一般注意事项?

感谢您阅读我的帖子。

【问题讨论】:

    标签: python performance scaling bots irc


    【解决方案1】:

    线程是一种选择,但它不会超出某个点(谷歌 Python GIC 限制)。根据您想要进行多少扩展,您需要进行多进程(启动多个实例)。

    一种模式是拥有一个工作线程池来处理一系列待办事项。在大多数语言中创建和销毁线程都有很多开销。

    【讨论】:

    • 感谢您的意见,我尝试 +1,但我需要 15 个代表才能做到这一点。您认为哪种方式最有效,使用线程还是只创建脚本的新实例?
    • @LéoLeGall 线程,通常。但仅比运行机器人的机器中的内核多多少。对于进程,您需要一些奇怪的共享内存或内部消息队列(参见 rabbitmq 或任何其他 mq 系统)来同步所有实例,这可能会降低它的性能。另外,我相信任何足够强大(比如四核)的 CPU 都可以处理 Twitch 流聊天。大多数时候,瓶颈将是互联网!
    猜你喜欢
    • 1970-01-01
    • 2010-11-09
    • 1970-01-01
    • 2012-01-31
    • 2014-07-25
    • 2010-10-04
    • 2011-11-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多