2013-05-08 80 views

回答

0

雖然有幾個限制,但我想你的意思是你可以用ini_set來設置的「memory_limit」值。那麼答案實際上是否定的。

如果您將該值設置爲確切的限制,那麼您將會很好(如果這就是腳本中的所有內容)。但問題是,當你使用比這更多的1個字節時。所以你不能在腳本中做任何事情。如果您嘗試複製該值或對其進行操作,則會超出限制,並且會崩潰。所以它沒有用像這樣的字符串。

這個問題,這是最近發佈上有一些很好的答案:memory-get-peak-usage-with-real-usage

+0

應該指出,memory_limit是集體的,並且一個字節的內存可以來自任何地方。除非您意識到風險並謹慎行事,否則不要隨意使用與memory_limit非常接近的數據。即使如此,如果答案是「讓我們通過增加內存限制和冒着應用程序關閉的風險讓PHP陷入困境」,那麼你最有可能接近錯誤的問題。如果您需要在運行時耗盡大量內存,這可能表示您需要進行垃圾回收,或找到更具可擴展性的解決方案。 – Ultimater 2015-11-23 20:36:09

0

是的,它會失敗,出現以下錯誤,你可以嘗試:

Fatal error: Allowed memory size of xxxxxx bytes exhausted (tried to allocate xxxxxxx bytes)

而這也是預期的結果,因爲該字符串的數據必須保存的地方 - >在內存中)