繼使用,簡單驗證其性能。windows
比對對象:Apache、Nginx與Mongoose;服務器
比對方法:訪問簡單靜態頁面;socket
比對結果:用圖表說話以下:mongoose
比對結論:Mongoose不適合做爲高性能服務器。ide
關於性能不優的緣由,在Mongoose的源碼也略有一斑:函數
源碼:http://code.google.com/p/mongoose/source/browse/mongoose.c性能
一、其中包含不少對Windows的兼容;this
二、更關鍵的是master_thread函數,使用的select方法而非epoll:google
if (select(max_fd+1,&read_set,NULL,NULL,&tv) <0) {
#ifdef _WIN32
/*
* On windows, if read_set and write_set are empty,
* select() returns "Invalid parameter" error
* (at least on my Windows XP Pro). So in this case,
* we sleep here.
*/
sleep(1);
#endif /* _WIN32 */
}else{
for (sp =ctx->listening_sockets;
sp !=NULL; sp = sp->next)
if (FD_ISSET(sp->sock,&read_set))
accept_new_connection(sp,ctx);
}spa