2015-08-28 49 views
1

上傳大文件到EC2服務器, 我的配置是:PHP:是否ini_set(「memory_limit」,「1024M」);隱式地關閉PHP腳本執行結束的內存資源?

ini_set("display_errors",1); 
ini_set("memory_limit","1024M"); 
ini_set('upload_max_filesize', '500M'); 
ini_set('post_max_size', '5000M'); 
ini_set('max_input_time', 300); 
ini_set('max_execution_time', 0); 

它的正常工作

但將腳本會自動釋放所有的資源相關

程序員應該免費資源明確

什麼默認(最佳)值a程序員應設置

+1

它會釋放所有資源一旦完成 – Farhan

+0

好吧,如果在EC2的RAM是5GB,我上傳文件時分配1GB呢?如果我在ini_set()中設置了128MB內存,那麼你說什麼,哪個更好1GB或128MB?所以服務器有足夠的內存,我的文件上傳沒有崩潰。並在上面的代碼中應該使用哪些ini_set配置,而不應該使用? –

+1

php有最大內存限制分配。如果你在內存限制中設置-1,它將使用PHP設置的最大限制。它不會超過。這需要在服務器端處理超出PHP – Farhan

回答

1

ini_set

設置給定的配置選項的值。配置選項將在腳本執行過程中保留這個新值,並在腳本結尾恢復。

需要說什麼更多?是的一件事!垃圾收集與您所調用的ini_set無關。兩者都是兩種不同的東西。

+0

好吧,如果在EC2的RAM是5GB,而我在文件上傳時分配1GB呢?如果我在'ini_set()' 中設置了128MB內存,你會說什麼,哪個更好1GB或128MB?所以服務器有足夠的內存,我的文件上傳沒有崩潰。 和上面的代碼應該使用什麼'ini_set'配置,不應該使用? –

+1

1GB文件上傳不需要1 GB RAM用於腳本。如果你爲腳本提供了一個上限,這並不意味着它會使用它的全部。爲什麼你會讓別人首先上傳1GB文件? –

+0

我必須上傳多個文件,例如圖片,遊戲APK,視頻等。 和EC2上的空間用完了,因此計劃將數據移動到S3。 –

1

當腳本執行停止時,資源將被自動釋放。

什麼缺省(最佳)值一個程序員應該設置

有沒有這樣的事情。這取決於實際使用的內存...

+0

如果內存在EC2是5GB和什麼我在文件上傳時分配1GB。如果我在ini_set()中設置了128MB內存,那麼你說什麼,哪個更好1GB或128MB?所以服務器有足夠的內存,我的文件上傳沒有崩潰。並在上面的代碼中應該使用哪些ini_set配置,而不應該使用? –

+0

@ LukyBoy-KU您正在爲腳本分配1GB。我不知道那裏會發生什麼......如果你在內存中創建了一個2GB數據的數組,你需要更多(好吧,愚蠢的例子)。無論如何,取決於你在腳本內做什麼。 – Cosmin

+0

我爲文件分配1G不是腳本,因爲我必須上傳一些大於512MB的時間文件。所以請告訴我,如果我做錯了什麼。 –

2

一旦完成,它將釋放所有資源。 php有最大的內存限制分配。如果你在內存限制中設置-1,它將使用PHP設置的最大限制。它不會超過。這需要在服務器端處理超出PHP 但是,如果你已經設置了更多,然後允許PHP的內存然後服務器將取代它從默認的內存從php.ini我認爲它是128M。爲PHP ini_set('memory_limit','-1')使用MAX可用內存。這將允許您爲PHP執行使用最大可用內存。