Benchmark w Node.js pokazuje, że pięć popularnych usług video-API wykazuje drastyczne różnice w wydajności w zależności od rozmiaru pliku. Na ograniczonym łączu 4G (10 Mb/s) FastPix zdominował test dużych plików, podczas gdy Cloudinary wyprzedził konkurencję w przypadku mniejszego klipu.
Dlaczego ten test jest ważny
Dostawcy video-API nieustannie chwalą się „najszybszym przesyłaniem” lub „błyskawicznym odtwarzaniem” na swoich stronach marketingowych. Twierdzenia te zazwyczaj opierają się na starannie dobranych plikach testowych, które trafiają w optymalne parametry każdego dostawcy. Gdy zespół produktowy opiera decyzję o wyborze dostawcy na takich nagłówkach, ryzykuje niedopasowanie między reklamowanymi a rzeczywistymi opóźnieniami, zwłaszcza jeśli ich użytkownicy przesyłają treści o różnych rozmiarach lub korzystają z różnej jakości sieci.
Jak zbudowano benchmark
Autor napisał prosty mechanizm testowy (harness) w Node.js, który mierzy dwie metryki dla każdego przesyłania:
- Czas przesyłania – czas rzeczywisty (w sekundach) wymagany do przesłania surowych bajtów do API.
- Time-to-ready – interwał od rozpoczęcia przesyłania do momentu, w którym wideo może być strumieniowane (tj. API zgłasza zasób jako gotowy do odtwarzania).
Pięć usług zostało poddanych temu samemu skryptowi: FastPix, Mux, api.video, Cloudinary oraz Gumlet. Wszystkie testy przeprowadzono z tej samej maszyny, przy ograniczeniu przepustowości sieci do 10 Mb/s, aby odwzorować typowe doświadczenie z mobilną siecią 4G. Użyto dwóch reprezentatywnych plików:
- Duży plik: 177 MB, odpowiadający treściom długofalowym lub materiałom master w wysokiej rozdzielczości.
- Mały plik: 65 MB, typowy dla krótkich klipów lub fragmentów z mediów społecznościowych.
Mechanizm automatyzował przesyłanie, a następnie odpytywał punkt końcowy (endpoint) statusu każdego dostawcy, aż wideo osiągnęło stan „ready”, rejestrując oba znaczniki czasu.
Co mówią liczby
Duży plik (177 MB)
- FastPix uzyskał najniższy czas przesyłania i najkrótszy całkowity czas „time-to-ready”, co czyni go wyraźnym liderem w przypadku masowych transferów.
- Mux zapewnił najszybszy „cold-startup”, co oznacza, że pierwsza klatka pojawiła się szybciej po tym, jak wideo zostało oznaczone jako gotowe.
Mały plik (65 MB)
- Cloudinary przet
