客户端Comet的性能优化目的是:减少数据传输的延迟、HTTP连接的保存和管理、远程消息和处理跨域问题。服务器端的性能优化目的是:保存和共享HTTP的连接数、并尽量较少每个连接所消耗的内存、CPU、I/O和宽带。
连接管理
即便是很少的数据,服务器也会永久地为每一个用户打开一个HTTP连接,这导致打开很多连接。连接有两个限制:内存和CPU。但无论如何,每个连接都会因操作系统或开发语言而产生内存占用。如果每个连接使用一个线程就会导致一个完整执行堆栈的内存占用,即使它能被降到几乎合理的程度,通常大小也为2MB。另外,如果线程数的增加超过进程数,那么我们将会以超负荷而告终,因为操作系统在线程与进程之间切换的开销比我们实际执行代码的开销还要多。正是这个原因,我们需要选择一个异步网路架构。