W tym artykule nie przytaczamy żadnych "średnich w branży" liczb. Przeprowadziliśmy własne testy, aby uzyskać dane kompresji, a obliczenia kosztów oparte są na formułach – wprowadź swoje własne jednostkowe stawki z faktury, aby uzyskać wyniki.
Miesiąc po miesiącu, gdy patrzymy na fakturę chmurową, większość ludzi patrzy tylko na łączną kwotę: była nieco wyższa niż w zeszłym miesiącu, ale wciąż w budżecie, i tak to zostaje.
Ale jeśli rozłożymy fakturę i rozpatrzymy ją według produktów, wiele stron internetowych, aplikacji mini-programs i platform treści odkryje, że na pierwszym miejscu zazwyczaj są dwie pozycje:
- Magazyn obiektów: opłata za magazynowanie w wysokości GB·miesiąc
- CDN / ruch w sieci publicznej: opłata za ruch w dół w wysokości GB
A w tych dwóch pozycjach najbardziej miejsca zajmuje zazwyczaj obrazy.
Problem polega na tym, że znaczna część bajtów tych obrazów użytkownicy w ogóle nie zauważają, a Ty płacisz za nie każdy miesiąc.
I. "Skompresowano podczas przesyłania" nie oznacza, że skompresowano wystarczająco
Wiele zespołów mówi: "Przesyłamy je ze skompresowaniem".
Przeprowadziliśmy specjalne testy w tym zakresie. Próbkiem była strona pozwalająca użytkownikom przesyłać obrazy, która posiadała już jeden cykliczny proces kompresji podczas importu: 78 folderów, 4624 obrazów, łącznie 1,41 GB.
| Objętość | Względem oryginału | |
|---|---|---|
| Plik oryginalny po kompresji strony | 1,41 GB | — |
| Spakowane do zip | 1,41 GB | -0,2% |
| Ponowna kompresja przez ImgZilla | 0,75 GB | -46,8% |
Na bazie "już skompresowanego" oszczędzamy prawie połowę. Ponadto z każdego z 4624 obrazów można dalej wycisnąć więcej, żaden nie jest "już na samym dnie, bezpośrednio pominięty".
Powód nie jest skomplikowany: większość kompresji importowej to po prostu ustawienie jednego parametru jakości lub ograniczenie wymiarów, jest to jednostronna obróbka, która znacznie nie wykorzystuje całego przestrzeni kodowania dla każdego formatu.
Jeśli Twój zbiór obrazów pochodzi bezpośrednio z aparatu, z eksportu projektów graficznych lub jest przesyłany przez operatorkę jako pliki oryginalne, przestrzeń jest jeszcze większa. Przeprowadziliśmy testy na 32 188 obrazach JPEG bezpośrednio z aparatu i zmniejszyliśmy łączną objętość o 76,8%.
II. Opłata za magazyn to dodawanie, opłata za ruch to mnożenie
To jest punkt, który najczęściej jest pomijany.
- Opłata za magazyn: obraz znajduje się w kubełku i płacisz za niego co miesiąc w zależności od jego objętości
- Opłata za ruch: za każdy otwarty obraz płacisz ponownie w zależności od jego objętości
Więc jeśli baner na stronie głównej będzie miał dodatkowe 300 KB niepotrzebnych bajtów, w rachunku za magazyn jest to prawie niewidoczne, ale jeśli jest otwierany 100 000 razy dziennie, to w rachunku za ruch jest to dodatkowe około 29 GB dziennie.
Im bardziej popularny obraz, tym więcej pieniędzy płacisz "na marne". A najpopularniejsze obrazy to dokładnie te z pozycji, które są najczęściej "przesyłane jako oryginały na szybko", takie jak banery strony głównej, główne zdjęcia produktów, nagłówki artykułów.
III. Oblicz własną fakturę
Nie ufaj żadnym szacunkom, weź swoją fakturę z ostatniego miesiąca i wprowadź do poniższych dwóch wzorów:
Miesięczna oszczędność opłaty za magazyn ≈ Całkowita ilość magazynowania obrazów (GB) × współczynnik kompresji × jednostkowa cena magazynowania (¥/GB·miesiąc)
Miesięczna oszczędność opłaty za ruch ≈ Miesięczny ruch w dół obrazów (GB) × współczynnik kompresji × jednostkowa cena ruchu (¥/GB)
Współczynnik kompresji można najpierw oszacować ostrożnie na 40% (co jest niższe niż 46,8%, które uzyskaliśmy na próbce "po kompresji"), a po uruchomieniu własnych obrazów zmień na rzeczywistą liczbę.
Przykład demonstracyjny (wartości są przybliżone, zmień na swoje liczby z faktury):
| Projekt | Wartość |
|---|---|
| Całkowity magazyn obrazów | 500 GB |
| Miesięczny ruch w dół obrazów | 10 TB |
| Jednostkowa cena magazynowania (przybliżenie) | 0,12 ¥/GB·miesiąc |
| Jednostkowa cena ruchu (przybliżenie) | 0,20 ¥/GB |
- Magazyn: 500 × 40% × 0,12 ≈ 24 ¥/miesiąc
- Ruch: 10240 × 40% × 0,20 ≈ 819 ¥/miesiąc
Widać, że prawdziwa część główna to ruch. Oszczędność magazynowania to drobnostka, a oszczędność ruchu to faktycznie poważna kwota. Ponadto te pieniądze płacisz co miesiąc, dopóki obrazy nie zostaną przetworzone, płacisz dalej.
Są też korzyści niewidoczne na fakturze: strona ładuje się szybciej, użytkownicy na urządzeniach mobilnych wydają mniej danych, lepsze wskaźniki LCP, łatwiej spakować pakiet główny aplikacji mini-programu do limitu.
IV. Dlaczego, wiedząc, że trzeba to skompresować, nikt tego nie robi?
Zapytaliśmy wielu programistów i właścicieli stron, odpowiedzi są zasadniczo trzy:
1. Lęk przed zmianą ścieżki.
Tradycyjne narzędzia online do kompresji wymagają "przesyłania → pobierania → zmiany nazwy → zastąpienia → zmiany odniesienia w kodzie", w projektach z tysiącami obrazów nikt się do tego nie odważy.
2. Lęk przed pogorszeniem jakości.
Po kompresji ktoś z zespołu projektowego, operatorka lub szef może powiedzieć "obraz jest rozmyty", nikt nie chce ponosić odpowiedzialności za to.
3. To zbyt uciążliwe.
Katalogi są zagnieżdżone jeden w drugim, przetwarzanie obrazka po obrazku jest niepraktyczne, napisanie skryptu wymaga dostosowania parametrów i radzenia sobie z różnymi formatami.
ImgZilla został stworzony, aby rozwiązać te trzy problemy:
- Kompresja na miejscu: po kompresji plik jest bezpośrednio zastępowany, struktura nazw plików i katalogów pozostaje nienaruszona, w kodzie nie trzeba zmieniać żadnego odniesienia
- Bezstratny pod względem wizualnym: PNG i SVG są prawdziwie bezstratne; JPEG, WebP, AVIF, HEIC są regulowane dla każdego formatu osobno,保持在肉眼分辨不出的范围内. Wbudowana podwójna podziałka do porównania umożliwia powiększenie do rzeczywistych pikseli i własną kontrolę
- Przeciągnij i upuść folder: przetwarzanie rekurencyjne wszystkich podkatalogów, bez konieczności wybierania plików ani dostosowania suwaków
- Całkowicie przetwarzanie lokalne: materiały wewnętrzne, niezatwierdzone zdjęcia produktów nie muszą być przesyłane na serwery stron trzecich
V. Rzeczywisty proces "chudnięcia" kubełka magazynowego
Jeśli Twoje obrazy są już w magazynie obiektów, proces wygląda następująco:
- Synchronizacja na komputer: użyj narzędzi takich jak
rclone,ossutil,coscmd,aws s3 sync, aby pociągnąć katalog obrazów na Mac - Najpierw zrób kopię zapasową: bez obaw, to dobra praktyka, nie dlatego, że narzędzie jest niepewne
- Przeciągnij do ImgZilla: upuść cały katalog, poczekaj na zakończenie
- Synchronizacja z powrotem do kubełka: użyj tego samego narzędzia, aby zastąpić i wysłać w górę, ścieżka pozostaje bez zmian
- Odświeżanie pamięci podręcznej CDN: wykonaj odświeżenie katalogu dla katalogu obrazów, aby węzły brzegowe otrzymały nowe pliki
Nie pomijaj kroku 5. Jeśli tego nie zrobisz, węzły CDN będą nadal rozsyłać stare pliki, a rachunek za ruch spadnie dopiero po wygaśnięciu pamięci podręcznej.
VI. Szczera informacja
- ImgZilla jest obecnie dostępny tylko w wersji macOS (wymaga macOS 12.3 lub nowszego), wersja Windows nie istnieje
- Oprócz PNG i SVG, inne formaty są bezstratne pod względem wizualnym, nie są bezstratne na poziomie pikseli. Jeśli Twoje wymagania biznesowe wymagają całkowitej niezmienności pikseli (np. obrazy medyczne, materiały wymagające porównania proporcji pikseli), nie wykonuj ponownego kodowania dla takich plików
- Współczynnik kompresji zależy od obrazu. W naszym rzeczywistym teście współczynnik kompresji pojedynczego obrazu wahał się od 32% do 86%, zalecamy wybranie katalogu do przetestowania i sprawdzenie rzeczywistych liczb przed podjęciem decyzji
Podsumowanie
Dostawcy chmury nie poinformują Cię, że obrazy mogą być jeszcze mniejsze, a na fakturze nie pojawi się osobna linia "niepotrzebne bajty".
Ale jest tam, liczone co miesiąc w GB, i płacisz za to ponownie za każdym razem, gdy zostanie odwiedzony.
Przeciągnij katalog obrazów do ImgZilla i uruchom go raz, a następnie porównaj fakturę z następnego miesiąca.
👉 Pobierz ImgZilla: https://imagetool.app/ImgZilla
