【发布时间】:2011-08-29 08:32:15
【问题描述】:
为什么让 http 连接保持打开直到内容出现然后重新打开连接比简单地定期打开连接更有效?
当然,后一种情况可能更受打击或错过,但我纯粹是从资源效率的角度提出问题。
【问题讨论】:
标签: comet polling tornado long-polling
为什么让 http 连接保持打开直到内容出现然后重新打开连接比简单地定期打开连接更有效?
当然,后一种情况可能更受打击或错过,但我纯粹是从资源效率的角度提出问题。
【问题讨论】:
标签: comet polling tornado long-polling
通过保持连接打开,您会阻塞资源,但不会产生定期断开连接和设置连接的开销。在函数调用下设置和关闭套接字连接要昂贵得多。将关闭意图发送到连接端点,释放与之关联的内核资源和内存。对于打开连接,同样会发生相反的情况。对于分配内核资源,可能会有序列化调用(取决于内核实现),这会影响整体系统性能。最后但同样重要的是,hit-n-miss 方法不是确定性模型。
【讨论】:
假设您有一个线程阻塞在等待响应的套接字上。 (如彗星)。在此期间,内核不调度线程,机器上的其他东西可以运行。但是,如果您正在轮询线程,则该线程正忙于短暂的等待期。这也会增加延迟,因为在轮询发生之前您不会知道需要做某事。
【讨论】: