回答
確定它會降低服務器的速度,這也取決於您使用的圖像的大小。你爲什麼不保存縮略圖?
如果您在每次頁面加載時生成新的縮略圖,則需要額外的處理時間。根據您縮略圖的圖像數量以及原始尺寸,您可能會注意或不會注意到緩慢。如果無論如何,您可以在第一頁加載時創建縮略圖並保存,並加載預先創建的其他頁面加載版本,則會更好。
GD使用大量內存。它將圖像完全加載到內存中並對其進行解壓縮,因此每像素至少需要32位。與大小800×600的圖像做然後用起來:
800 * 600個* 32個比特= 15.4兆比特= 2 MB
這只是加載圖像。我聽說如果你調整大小,它會使用這個的兩倍,如果你的圖像更大,它會更多的記憶。
你應該真的考慮緩存你的縮略圖,這樣它們只需要生成一次(這也會加快訪問者的頁面速度!)。
我也讀過現在您正在從外部服務器加載圖像,在這種情況下,您真的必須緩存圖像,否則您的訪問者必須等待您首先下載整個圖像。如果外部服務器關閉或超載,訪問者將不得不等待超時(這看起來像是你的服務很慢),這會變得更糟。除此之外,如果每次用戶請求縮略圖時下載圖像,則會浪費大量帶寬。
由於GD使用這麼多的內存,所以使用IMagick擴展代替生成縮略圖可能是值得的。 ImageMagick在內存消耗方面的擴展性更好,而且速度也非常快(但由於上述原因,您仍然應該緩存圖像)。
+1 for *「ImageMagick在內存消耗方面做得更好」*,這是您應該以粗體顯示的關鍵信息!你可以刪除其餘的。 :-) – TMS 2012-04-17 20:54:55
取決於你用它做什麼,但爲什麼不嘗試自己:
- memory_get_usage() - 返回的內存分配給PHP
- memory_get_peak_usage()量 - 返回PHP 分配的內存峯值
任何類型的圖像處理都可能是內存密集型的。
如果您可以緩存這些圖片以避免每次點擊頁面時重新生成圖片,那將是一個很好的舉措。
爲您處理大量緩存的PHP庫是phpThumb--它可能是這類任務的理想選擇。
- 1. GD在調整大小時是否需要這麼多內存?
- 2. 使用不可變列表是否需要大量內存?
- 3. MongoDB使用大量內存
- 4. Nhibernate使用大量內存
- 5. PHP腳本GD庫內存問題
- 6. 使用PHP GD庫來調整大小和保存圖像HELL
- 7. 使用大量內存的矢量Drawables
- 8. 使用大量模塊編譯NodeMCU是否會影響內存使用?
- 9. Cassandra數據庫行大小是否受可用內存限制?
- 10. IntelliJ插件是否佔用大量內存?
- 11. SQLite中的數據庫遷移期間,內存使用量和/或數據庫大小是否會翻倍?
- 12. 使用大量參數調用函數是否消耗更多內存?
- 13. 使用分配是否減少使用的內存量?
- 14. 使用AJAX是否會增加PHP的內存使用量?
- 15. 是否可以使用d8來衡量內存使用情況?
- 16. GD庫安裝,但我使用的是安裝了XAMPP GD庫工作不
- 17. 使用大量內存的Xcode儀器。
- 18. Visual Studio Profiler使用大量的內存
- 19. 測量最大PHP內存使用
- 20. 進程使用大量內存
- 21. 使用PHP + MySQL緩存大量內容
- 22. UITableView中的內存使用量很大
- 23. Redis Data Structures使用大量內存
- 24. 核心繪圖使用大量內存
- 25. BitmapImages使用大量的內存
- 26. 使用大量內存的PHP-FPM
- 27. 使用大量內存的WordPress的
- 28. 的std ::使用大量的內存
- 29. Concrete5 PHP GD內存不足
- 30. GD庫保存圖像
重新生成縮略圖需要服務器時間。要知道它是否「太慢」,唯一的方法就是試試看。另外,「記憶」和「速度」是兩個完全不同的概念。 – 2010-01-13 21:05:56