એક Node.js બેન્ચમાર્ક દર્શાવે છે કે ફાઇલના કદના આધારે પાંચ લોકપ્રિય video-API સેવાઓના પ્રદર્શનમાં મોટો તફાવત જોવા મળે છે. 10 Mbps ની મર્યાદિત 4G કનેક્શન પર, મોટી ફાઇલના ટેસ્ટમાં FastPixનું વર્ચસ્વ રહ્યું, જ્યારે નાની ક્લિપ માટે Cloudinary આગળ નીકળી ગયું.
આ ટેસ્ટ શા માટે મહત્વપૂર્ણ છે
Video-API પ્રદાતાઓ તેમની માર્કેટિંગ પેજ પર સતત "સૌથી ઝડપી અપલોડ" અથવા "ઇન્સ્ટન્ટ પ્લેબેક" જેવા દાવાઓ કરતા હોય છે. આ દાવાઓ સામાન્ય રીતે પસંદ કરેલી એવી ટેસ્ટ ફાઇલો પર આધારિત હોય છે જે દરેક પ્રદાતાના શ્રેષ્ઠ સ્તર (sweet spot) ને સ્પર્શે છે. જ્યારે કોઈ પ્રોડક્ટ ટીમ આવા હેડલાઇન્સના આધારે વેન્ડર પસંદ કરવાનો નિર્ણય લે છે, ત્યારે તેઓ જાહેરાત કરેલ અને વાસ્તવિક લેટન્સી (latency) વચ્ચેના તફાવતનું જોખમ ઉઠાવે છે, ખાસ કરીને જો તેમના વપરાશકર્તાઓ અલગ-અલગ કદ અથવા નેટવર્ક ગુણવત્તા ધરાવતું કન્ટેન્ટ અપલોડ કરતા હોય.
બેન્ચમાર્ક કેવી રીતે બનાવવામાં આવ્યો હતો
લેખકે Node.js માં એક સરળ હાર્નેસ (harness) લખ્યું છે જે દરેક અપલોડ માટે બે મેટ્રિક્સ માપે છે:
- Upload time – API માં રો (raw) બાઇટ્સ મોકલવા માટે જરૂરી સમય (સેકન્ડમાં).
- Time-to-ready – અપલોડની શરૂઆતથી લઈને વિડિયો સ્ટ્રીમ કરી શકાય ત્યાં સુધીનો સમયગાળો (એટલે કે, જ્યારે API એસેટને પ્લે કરી શકાય તેવા તરીકે રિપોર્ટ કરે છે).
પાંચ સેવાઓ એક જ સ્ક્રિપ્ટ દ્વારા ચલાવવામાં આવી હતી: FastPix, Mux, api.video, Cloudinary, અને Gumlet. તમામ ટેસ્ટ એક જ મશીન પરથી ચલાવવામાં આવ્યા હતા, જેમાં સામાન્ય મોબાઈલ 4G અનુભવની નકલ કરવા માટે નેટવર્કને 10 Mbps સુધી મર્યાદિત (throttle) કરવામાં આવ્યું હતું. બે પ્રતિનિધિ ફાઇલોનો ઉપયોગ કરવામાં આવ્યો હતો:
- Large file: 177 MB, જે લાંબા કન્ટેન્ટ અથવા હાઇ-રિઝોલ્યુશન કેમેરા માસ્ટર્સની નજીક છે.
- Small file: 65 MB, જે ટૂંકી ક્લિપ્સ અથવા સોશિયલ મીડિયા સ્નિપેટ્સ જેવી છે.
હાર્નેસે અપલોડને ઓટોમેટ કર્યું, અને પછી વિડિયો "ready" સ્ટેટમાં ન આવે ત્યાં સુધી દરેક પ્રદાતાના સ્ટેટસ એન્ડપોઇન્ટને પોલ (poll) કર્યું અને બંને ટાઇમસ્ટેમ્પ રેકોર્ડ કર્યા.
આંકડા શું દર્શાવે છે
Large file (177 MB)
- FastPix એ સૌથી ઓછો અપલોડ સમય અને સૌથી ઝડપી એકંદર time-to-ready નોંધાવ્યો, જે તેને બલ્ક ટ્રાન્સફર માટે સ્પષ્ટ લીડર બનાવે છે.
- Mux એ સૌથી ઝડપી cold-startup આપ્યું, જેનો અર્થ છે કે વિડિયો 'ready' તરીકે માર્ક થયા પછી પહેલો ફ્રેમ વહેલો દેખાયો.
Small file (65 MB)
- Cloudinary એ ક્લિપને માત્ર 2 સેકન્ડમાં પ્રોસેસ કરી, જે અન્ય તમામ સેવાઓ કરતા વધુ ઝડપી હતી.
- FastPix પાંચમા સ્થાને આવી ગયું.
Video API પસંદ કરવા માટેના સૂચનો
- Long-form અથવા high-resolution અપલોડ્સ – એવી સેવાઓને પ્રાથમિકતા આપો જે રો થ્રુપુટ (raw throughput) અને ઇન્જેસ્ટ સ્પીડમાં શ્રેષ્ઠ હોય. આ ટેસ્ટમાં, FastPix વધુ સુરક્ષિત વિકલ્પ છે.
- ટૂંકી, ઓન-ડિમાન્ડ ક્લિપ્સ – એવા API પસંદ કરો જે cold-startup લેટન્સીને ઘટાડે છે. Cloudinary નો 2-સેકન્ડનો ટર્નઅરાઉન્ડ સૂચવે છે કે તે ઇન્સ્ટન્ટ-પ્લેબેક માટે યોગ્ય છે.
માત્ર આંકડાઓ સિવાય, ટીમોએ પ્રાઇસિંગ ટિયર્સ, ભૌગોલિક CDN કવરેજ અને ટ્રાન્સકોડિંગ વિકલ્પો અથવા DRM જેવા ફીચર સેટ્સને પણ ધ્યાનમાં લેવા જોઈએ. પ્રદાતાનું લીડરબોર્ડ ઝડપી તપાસમાં મદદ કરી શકે છે, પરંતુ તે વર્કલોડ-સ્પેસિફિક ટેસ્ટનું સ્થાન લેવું જોઈએ નહીં.
તમારો પોતાનો ટેસ્ટ કેવી રીતે કરવો
- ફ્લો સ્ક્રિપ્ટ કરો – ફાઇલ અપલોડ કરવા અને "ready" ફ્લેગ દેખાય ત્યાં સુધી સ્ટેટસ એન્ડપોઇન્ટને પોલ કરવા માટે તમે વિશ્વાસ કરતા હોવ તેવી ભાષા (Node.js, Python, વગેરે) નો ઉપયોગ કરો.
- પર્યાવરણને નિયંત્રિત કરો – વિવિધતાને દૂર કરવા માટે દરેક પ્રદાતાનો ટેસ્ટ એક જ મશીન અને નેટવર્ક પરથી ચલાવો.
- બેન્ડવિડ્થ મર્યાદિત કરો (Throttle) – તમે અપેક્ષા રાખતા સૌથી ધીમા યુઝર સેગમેન્ટને પ્રતિબિંબિત કરવા માટે કનેક્શનને મર્યાદિત કરો (દા.ત., 4G માટે 10 Mbps).
- વાસ્તવિક એસેટ્સનો ઉપયોગ કરો – સામાન્ય ટેસ્ટ ક્લિપ્સને બદલે તમારા પ્રોડક્ટના લાક્ષણિક અપલોડ્સ જેવી ફૂટેજનો ઉપયોગ કરો; કોડેક, રિઝોલ્યુશન અને બિટરેટ ઇન્જેસ્ટ પાઇપલાઇનને અસર કરી શકે છે.
માત્ર એ જ બેન્ચમાર્ક ખરેખર મહત્વનો છે જે તમારા પોતાના ટ્રાફિક પેટર્ન અને ગુણવત્તાની અપેક્ષાઓને પ્રતિબિંબિત કરે છે.
આગળ શું જોવું
જેમ જેમ video APIs વિકસિત થાય છે, તેમ તેઓ નવા ઇન્જેસ્ટ પાથવે, એજ કેશિંગ લેયર્સ અને AI-સંચાલિત ટ્રાન્સકોડિંગ રજૂ કરે છે. તમારા CI પાઇપલાઇનમાં ઓટોમેટેડ બેન્ચમાર્ક રાખવાથી યુઝર્સને અસર કરતા પહેલા રગ્રેસન (regressions) શોધી શકાય છે. નીચે આપેલ લિંક જેવા સમુદાય દ્વારા શેર કરાયેલા પરિણામો પણ ઇકોસિસ્ટમનું વધુ પારદર્શક ચિત્ર બનાવવામાં મદદ કરે છે.
