回答
馬克·R·布朗的whitepaper on the subject聲稱的FastCGI的的主要優點之一是,不同請求可以共享一個緩存,使緩存實用:
目前應用最广部署的Web服務器API基於進程池服務器模型。 Web服務器由父進程和子進程池組成。進程不共享內存。傳入的請求隨機分配給空閒的孩子。孩子在接受新請求之前運行完成請求。一個典型的服務器有32個個子進程,大型服務器有100或200
在內存中緩存的工作非常差在這個服務器模式,因爲進程不共享內存和傳入的請求被隨機分配給進程。例如,要在內存中保存常用文件,服務器必須爲每個子文件保留一個文件副本,這會浪費內存。當文件被修改時,所有的孩子都需要得到通知,這很複雜(API不提供這種方式)。
FastCGI的被設計爲允許有效的內存緩存。請求從任何子進程路由到FastCGI應用程序服務器。 FastCGI應用程序進程維護一個內存中的緩存。
謝謝WCWedin :) –
它重用從池中,而不是產卵爲每個請求一個新的進程。
有很多的重新使用過程(正)副作用:也許你可以解釋一下? –
「相反的 每個請求創建一個新的進程,FastCGI的使用持久 進程來處理一系列 請求。這些過程由 擁有的FastCGI的服務器,而不是Web服務器 。」
- 1. apache + fastcgi + fpm爲什麼需要suexec?
- 2. 爲什麼groupby這麼快?
- 3. BCP爲什麼這麼快?
- 4. 這爲什麼這麼快?
- 5. 爲什麼鉻這麼快?
- 6. 什麼是更快,爲什麼?
- 7. 爲什麼在IIS上使用open_basedir和PHP作爲FastCGI?
- 8. 爲什麼b比b快?
- 9. 爲什麼Android-Volley更快
- 10. 爲什麼headOption更快
- 11. 爲什麼memcpy()更快?
- 12. 爲什麼Array.reverse_each比Array.reverse.each快
- 13. 什麼值用於FastCGI maxrequests,maxspare,minspare,maxchildren?
- 14. 爲什麼mod_php比fastcgi效率低(php-fpm)
- 15. 爲什麼我必須重新啓動Django的fastcgi進程?
- 16. 爲什麼getenv(「QUERY_STRING」)在FastCGI C++程序中返回null?
- 17. 爲什麼我的簡單fastCGI Perl腳本失敗?
- 18. 爲什麼我的Perl FastCGI的腳本不打開插座
- 19. 爲什麼鏈接到FastCGI庫會導致段錯誤?
- 20. 這爲什麼這麼快就運行?
- 21. 爲什麼列表乘法這麼快?
- 22. 自定義PHP FastCGI接口? (更快?)
- 23. Nginx + FastCGI使用管理記錄?如果不是,那麼什麼?
- 24. 回聲爲什麼比打印更快?
- 25. 爲什麼Matlab比C++快11倍
- 26. C#:這會更快,多少,爲什麼?
- 27. 爲什麼Code 1比Code 2快?
- 28. 爲什麼do_GET比do_POST快得多
- 29. 爲什麼BLE 4.2比BLE更快4.1
- 30. 爲什麼jQuery.extend()比Lodash快.clone()
我不知道我的「不是一個真正的問題」票同意。對我來說似乎足夠合理。 – Flexo
看來好像答案是隻有兩次點擊..... http://www.fastcgi.com/drupal/node/6?q=node/16 – 2011-06-30 18:56:47
@awoodland同意。這個問題可以使用快速編輯,但它確實是有效的。 @Jack Maney在這裏得到答案也沒有錯。 – WCWedin