PHP resim küçük resim performansı hakkında soru

5 Cevap php

Ben bir küçük resim görüntüleri boyutlandırır PHP bir işlevi var, benim resim yükleme komut dosyası yüklenen görüntü alır ve geniş ise 700 piksel o zaman da 2 farklı büyüklükteki küçük resim oluşturmak için daha fazla kez fonksiyonunu 2 çalışır görüntüyü yeniden boyutlandırmak için bu fonksiyonu çalışır görüntüler, kaydedilen 3 görüntülerin toplam bir kullanıcı bir görüntü yükler her zaman var bu yüzden. Dosya boyutları geniş için ise benim yeniden boyutlandırma / resim işlevi küçük ve arada 3 defa 2 defa denir.

Şimdi bu boy işlevi boyutlarını almak için () getimagesize kullanır, bu yüzden benim uplaod komut dosyası bu işlevi çağırır, sonra yeniden boyutlandırma fonksiyonu diğer boyutlu resimler yapmak için () fonksiyonu 2-3 kez daha getimagesize kullanır.

Ben yükleme sürecinde onları almak çünkü ben sadece yeniden boyutlandırma fonksiyonu üzerine ölçüler geçmesi gerektiğini düşünüyorum?

Benim asıl soru, getimagesize mümkün olduğunca az kullanmak için iyi olurdu, () bir kaynak aç functon olduğu veya 1 image ince yüklendiğinde birkaç kez arıyor?

5 Cevap

Sadece bir ipucu / precausion, seni GD fonksiyonlarını kullanarak konum asssume. Her zaman orijinal görüntüyü okuma ve daha sonra yeniden boyutlandırılabilir bir tasarruf - Birden fazla üzerlerine oluştururken, her zamanki darboğaz yanlış fonksiyonlarını resim boyutlandırma uygulanmaktadır. Işlevine görüntünün boyutlara geçmek yapmak değil, sadece - - Ayrıca GD başvuru geçirmek daha iyi bir şekilde bir kez resim yüklemek ve imagecopyresampled ile tüm küçük yapmak için görüntü kaynak kullanmaktır. Thay yolu orijinal dosya yalnızca bir kez yüklü alır.

Sadece yüklenme üzerinde çalışan bir şey için, o kadar çok rahatsız olmamalıdır. Yükleme kullanıcı süper hızlı tepki bekler bir eylem değildir. Premature optimization is the root of all evil.

Söyleniyor, getimagesize(), özellikle pahalı değil, ama sadece bir kez bunu diyoruz eğer. Ama ben bir hız artışı o kadar tahmin yok. Senaryonuzun pahalı kısmı kendini yeniden boyutlandırma görüntü.

Özellikle aç kaynak değil - bir dosyayı açmak ve görüntü başlığı okumak zorundadır.

O uzakta optimize etmek için kendi yolumdan gitmeyin - çok kolay, bunu yapmak. Aksi takdirde, beklemek ve real darboğazlar optimize önce uygulamanızda nerede görmek.

Yapılacak en iyi şey, komut profile etmektir.

Bunun yerine belirli bir durum için geçerli olmayabilir teorik cevaplar, gerçek bir cevap almak ve gerçekten öğreticidir.

Ayrıca, bu alışkanlığı ile, size mümkün olacaktır:

  • darboğazları keşfetmek
  • Bir mikro optimizasyonu ve büyük bir optimizasyon arasındaki fark.

Ben şahsen dev. Windows ve * nix üzerinde dağıtın.

Benim dev doks, ben sonuçlarını okumak XDebug + WinCacheGrind kullanın.

Ben onlar olmadan yaşayamam. :)

http://elrems.wordpress.com/2008/02/12/profiling-php-with-xdebug-and-wincachegrind/

Ben görüntüyü yeniden boyutlandırmak nerede yükleme parçası olması gerektiğini sanmıyorum. Sen bir cron işi olarak daha sonraki bir zamanda görüntüyü yeniden boyutlandırmak gerekir. Siz imagemagic'den veya görüntüleri yeniden boyutlandırmak için diğer bazı boyutlandırma uygulaması gibi bir üçüncü taraf uygulamasını kullanabilirsiniz. Bu şekilde ön ucunda zaman kazandırır. Sen boyutlandırma işi her 5 dakika kadar çalıştırabilirsiniz.