Moose是一個了不起的對象框架。麻煩的是,連同它的依賴關係,它的非常大。我們的分析表明,在我們的平臺上,只需加載Moose就會在非持久性CGI應用程序腳本上產生5-6秒的開銷。這對於這些一次性應用程序來說是不可接受的。相比之下,當我們使用一個持久的流程系統(如FCGI)時,這個啓動開銷被消除了(或者說,只發生一次),並且一切都很好。我們遇到的問題是,我們無法保證我們的所有代碼將始終運行在持續的過程中。如何提高非持久性CGI流程中的Moose性能?
我們使用Mouse作爲Moose的功能受限下拉替換進行了調查,但事實證明(如this answer中所述),這不是一個可行的選擇。我們編寫的任何與Moose一起工作的庫都不能以微妙而重要的方式與Mouse一起工作。而我們真的不想分叉我們所有的模塊,這樣我們就可以在持久環境中支持Moose和爲「香草」CGI鼠標。
鑑於此,我們有以下幾種選擇:
- 叉我們的內部模塊與任何穆斯或鼠標的工作,適當的。 (Yuck!)
- 只開發適用於FCGI/Moose的模塊。不再支持「香草」CGI了。如果我們必須編寫不持久的腳本,他們將無法利用我們的內部模塊。
- 不要使用駝鹿或鼠標,但一些其他的對象框架。
哪個選項最好?我們現在傾向於2,如果我們必須讓某些東西像香草CGI那樣運行,我們就會吮吸它。其他框架呢?有什麼更輕量的,我們應該看?
pperl由Matt Sergeant(波特)而非Matt Trout(mst)撰寫。 – perigrin 2009-09-11 15:23:22
不是那個波特寫的質量比mst更少......只是他們不是同一個人。 – perigrin 2009-09-11 15:23:54
啊。 thx清除它。我的錯。 – 2009-09-11 19:15:50