在 ruby 中使用线程优化 ping,可能吗?
我正在使用 ruby 1.8.7,短期内无法升级到 1.9+。
我知道 ruby 有绿色线程,任何基于 cpu 的东西都不会通过多线程获得太多好处。
然而,我正在尝试在 ruby 中进行多线程 ping,因为在我的脚本中将尝试 ping 网络中的 N 台机器——在机器回复时,有足够的时间来创建新线程并启动与另一台主机的连接。然而,我发现多线程实际上降低了性能。
有什么建议可以在 ruby 中使用线程进行优化 ping 操作吗?
I am using ruby 1.8.7 and I cannot upgrade to 1.9+ anytime soon.
I understand that ruby has green threads, and anything cpu based does not gain much by way of multithreading.
However, I was trying a multithreaded ping in ruby, as in my script will try to ping N machines in the network -- in the time a machine replies back there's enough time to create a new thread and initiate connection with another host. However what I see is that multithreading has actually worsened performance.
Any suggestions to do an optimized ping with threads in ruby?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您应该将 EventMachine 与 ICMP 实施。 icmp4em 的作者还提供了两个如何使用所有这些东西的示例。
You should use EventMachine with an ICMP implementation. The author of icmp4em also provides two examples how to use all this stuff.