Perl解釋器(又名「perl」)在內存不足時有什麼標準(ish)方法嗎?是否以任何方式記錄/標出?以統一的方式編碼?有沒有一種標準的方式讓Perl在內存不足時運行?
我特別感興趣的是任何標準都表達爲立法Perl代碼正在運行 - 例如,將調用die
? END
塊會被執行嗎?等...
我很好,都有一個「理論」的答案(例如某種通用的「這是perl代碼應該做的一般內存不足」的任務說明文件從拉里/ P5P/etc ...,即使不是100%的malloc()調用遵循此規則);或者一個「實用的」語句(例如Perl中的所有malloc()調用都被包裝成通用的「allocate_memory」函數,該函數統一處理所有失敗)。
答案可能有可能取決於具體導致內存不足的原因(例如,爲Perl代碼的數據結構提供更多內存的請求與內部Perl代碼分配的內存無關,而與顯式「需要存儲更多數據」邏輯無關在Perl程序中)。
如果答案與實施有很大關係,則假定perl用於Solaris/Linux,並且縮小到任何最新的穩定版本(5.8到5.16)都是可以接受的。
這個問題僅限於標準的Perl解釋器,但是您希望將預編譯配置(例如,隨主要Linux發行版附帶的perl,或編譯所有默認值的編譯器等等)定義爲... )。
注:這個問題就出來了吉爾的評論來another Q