/ / Chcę utworzyć wiele miniatur za pomocą biblioteki GD w php, co jest lepsze tworzenie w locie czy tworzenie fizycznej? - php, miniatury

Chcę utworzyć wiele miniatur przy użyciu biblioteki GD w php, która jest lepsza do tworzenia w locie lub tworzenia fizycznej? - php, miniatury

Chcę utworzyć wiele miniatur za pomocą GDbiblioteki w php, a ja już mam skrypt, aby to zrobić, pytanie brzmi, co jest dla mnie lepsze .. czy lepiej jest tworzyć miniatury w locie? lub utworzyć plik fizyczny na moim serwerze za każdym razem, gdy chcę kciuk? i dlaczego?

Proszę wziąć pod uwagę czasochłonność i pojemność oraz inne wady obu

Odpowiedzi:

1 dla odpowiedzi № 1

Żadne / oba - nie generuj miniatur, dopóki ich nie potrzebujesz - ale zachowaj generowane pliki.

W ten sposób zminimalizujesz ilość wymaganej pracy i będziesz mieć system samonaprawiający się

DO.


3 dla odpowiedzi № 2

Podczas tworzenia miniatury zależy od paryczynników (w które się wezmę), ale nigdy nie powinieneś odrzucać wyjścia czegoś takiego (chyba że nigdy więcej go nie użyjesz), ponieważ jest to naprawdę kosztowna operacja.

W każdym razie dwie główne opcje „kiedy wygenerować miniaturę” to:

  1. Kiedy jest to pierwszy raz. Jest to powszechne i oznacza, że ​​nie generujesz miniatur, które nigdy nie są używane, ale oznacza to, że jeśli masz stronę pełną miniatur po raz pierwszy, serwer może zostać przytłoczony procesami PHP generującymi miniatury.

    Miałem podobny problem z Sorl + Django, gdzie jagenerował ponad 100 miniatur na żądanie dla pierwszych kilku żądań po przesłaniu i zasadniczo zawiesił cały serwer na 20 minut. Niedobrze.

  2. Wygeneruj wszystkie wymagane miniatury podczas przesyłania. Ponieważ przesyłanie zajmuje dużo czasu, bardzo często psujesz przetwarzanie. Możesz także wyciągnąć go z procesu (tj. Użyć innego skryptu do przetworzenia przesłanych plików - być może nawet w PHP).

    Oczywistym minusem jest to, że zużywasz dyskmiejsce, którego w innym przypadku nie musiałbyś zużywać ... Ale jeśli nie mówisz o setkach tysięcy miniatur, mały procent nieużywanych prawdopodobnie nie rozwali banku.

    Oczywiście, jeśli problemem jest miejsce na dysku, może istnieć argument przemawiający za przeniesieniem miniatury do CDN w tym samym czasie, w którym ją przetwarzasz.

Jedna uwaga, kiedy zapisujesz miniatury, to jestdość często zdarza się, że będziesz chciał zmienić rozmiar miniaturek w pewnym momencie w dół wiersza lub może potrzebujesz dwóch małych wariantów. Uważam, że bardzo przydatne jest określenie bardzo konkretnych nazw plików, więc jeśli oryginalny obraz jest image.jpg, wersja 200x200 to image-200x200.jpg.


1 dla odpowiedzi nr 3

GD jest naprawdę obciążony zasobami, więc powinieneś sprawdzić, czy możesz zamiast tego użyć ImageMagick (który ma również jaśniejszą składnię).

Zdecydowanie lepiej będzie buforować plikutworzono miniaturę po pierwszym uruchomieniu (niezależnie od tego, czy uruchamiasz GD czy ImageMagick) i serwujesz je z pamięci podręcznej. Jeśli martwisz się o przechowywanie, od czasu do czasu usuwaj stare pliki z pamięci podręcznej.


0 dla odpowiedzi nr 4

Zawsze buforuj (= zapisuj na dysku) wynikiOperacje GD. Są zbyt drogie zarówno pod względem czasu procesora, jak i pamięci, aby za każdym razem wykonywać je w locie. Staje się to coraz bardziej prawdziwe, im więcej masz odwiedzających / odwiedzin.