鍍金池/ 問答/PHP  網(wǎng)絡(luò)安全/ 通過GD庫生成的圖片,在項目一般是保存起來,還是在線生成

通過GD庫生成的圖片,在項目一般是保存起來,還是在線生成

$src="a.png";
$info=getimagesize($src);
$type=image_type_to_extension($info[2],false);
$fun="imagecreatefrom{$type}";
$image=$fun($src);
$image_thumb=imagecreatetruecolor(100,100);
imagecopyresampled($image_thumb,$image,0,0,0,0,100,100,$info[0],$info[1]);
imagedestroy($image);

//1.在線生成圖片
header("content-type:".$info['mime']);
$funs="image{$type}";
//2.保存圖片
$funs($image_thumb);
$funs($image_thumb,"image_thumb.".$type);

imagedestroy($image_thumb);

保存的話,占物理內(nèi)存
不保存的話,占運行內(nèi)存
一般這種情況,大中小型項目分別都是怎么處理的?

回答
編輯回答
不討喜

保存的話,占物理內(nèi)存=>站硬盤,不占內(nèi)存

臨時圖片不用保存,就像樓上說的驗證碼,其他的都先檢測有沒有生成好的,有就發(fā)給瀏覽器,沒有就生成

2018年6月21日 01:06
編輯回答
安淺陌

像驗證碼這種不用保存吧,像縮略圖這種會保存吧,所以有用的就保存,沒用的不存

2018年2月26日 17:50
編輯回答
寫榮

其實并不占。內(nèi)存的占用一般都是系統(tǒng)進程在占用,就拿PHP來說一般一個環(huán)境中php-fpm進程會有10幾個長期占用,而圖片處理只是這些進程執(zhí)行的工作之一罷了。所謂的存儲與否只是根據(jù)不同場景的不同選擇罷了。要知道IO的直接讀取要比從物理存儲中讀取數(shù)據(jù)然后通過進程交給CPU進行處理后再返回圖像的二進制數(shù)據(jù)要快的多。所以有時候你會看到cpu負載會很高

2018年8月13日 07:12
編輯回答
伐木累

如果是臨時資源,臨時生成。

非臨時資源或非常頻繁調(diào)用的,生成后保存。

消耗的不僅僅是硬盤更大的是CPU。

2017年5月8日 20:37