为什么在内容出现然后重新打开连接之前保持http连接打开比仅定期打开连接更有效?
当然,后一种情况可能更受欢迎,但我纯粹是从资源效率的角度来看。
答案 0 :(得分:2)
通过保持连接打开,您可以阻止资源,但不会产生定期拆除连接和建立连接的开销。设置&在函数调用下关闭套接字连接要贵得多。将关闭意图发送到连接端点,释放内核资源和与之关联的内存。为了打开连接,发生相反的情况。对于分配内核资源,可能存在序列化调用(取决于内核实现),这会影响整体系统性能。最后但并非最不重要的是,hit-n-miss方法不是确定性模型。
答案 1 :(得分:1)
假设您在套接字上阻塞了一个等待响应的线程。 (如彗星)。在此期间,内核不会调度线程,并且机器上的其他内容可以运行。但是,如果您正在轮询,则线程正忙于短暂的等待时间。这也增加了延迟,因为在轮询发生之前你不会知道需要做什么。