ಒಂದು Node.js ಬೆಂಚ್‌ಮಾರ್ಕ್ ವರದಿಯು, ಐದು ಜನಪ್ರಿಯ ವಿಡಿಯೋ-API ಸೇವೆಗಳು ಫೈಲ್ ಗಾತ್ರಕ್ಕೆ ಅನುಗುಣವಾಗಿ ಕಾರ್ಯಕ್ಷಮತೆಯಲ್ಲಿ ಹೇಗೆ ಭಿನ್ನವಾಗಿವೆ ಎಂಬುದನ್ನು ತೋರಿಸುತ್ತದೆ. 10 Mbps ವೇಗವಿರುವ ಸೀಮಿತ (throttled) 4G ಸಂಪರ್ಕದಲ್ಲಿ, ದೊಡ್ಡ ಫೈಲ್ ಪರೀಕ್ಷೆಯಲ್ಲಿ FastPix ಪ್ರಾಬಲ್ಯ ಸಾಧಿಸಿದರೆ, ಸಣ್ಣ ಕ್ಲಿಪ್‌ನಲ್ಲಿ Cloudinary ಮುಂಚೂಣಿಯಲ್ಲಿತ್ತು.

ಈ ಪರೀಕ್ಷೆಯ ಮಹತ್ವವೇನು

ವಿಡಿಯೋ-API ಪೂರೈಕೆದಾರರು ತಮ್ಮ ಮಾರ್ಕೆಟಿಂಗ್ ಪುಟಗಳಲ್ಲಿ ನಿರಂತರವಾಗಿ "ಅತ್ಯಂತ ವೇಗದ ಅಪ್‌ಲೋಡ್" ಅಥವಾ "ತಕ್ಷಣದ ಪ್ಲೇಬ್ಯಾಕ್" ಎಂದು ಪ್ರಚಾರ ಮಾಡುತ್ತಾರೆ. ಅಂತಹ ಪ್ರತಿಪಾದನೆಗಳು ಸಾಮಾನ್ಯವಾಗಿ ಪ್ರತಿಯೊಬ್ಬ ಪೂರೈಕೆದಾರರ ಅತ್ಯುತ್ತಮ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ತೋರಿಸುವಂತಹ ನಿರ್ದಿಷ್ಟ ಪರೀಕ್ಷಾ ಫೈಲ್‌ಗಳ ಮೇಲೆ ಅವಲಂಬಿತವಾಗಿರುತ್ತವೆ. ಉತ್ಪನ್ನ ತಂಡವು ಇಂತಹ ಹೆಡ್‌ಲೈನ್‌ಗಳ ಆಧಾರದ ಮೇಲೆ ಮಾರಾಟಗಾರರನ್ನು (vendor) ಆಯ್ಕೆ ಮಾಡಿದಾಗ, ಜಾಹೀರಾತು ಮತ್ತು ನೈಜ ಪ್ರಪಂಚದ ವಿಳಂಬದ (latency) ನಡುವೆ ವ್ಯತ್ಯಾಸವಿರುವ ಅಪಾಯವಿರುತ್ತದೆ, ವಿಶೇಷವಾಗಿ ಬಳಕೆದಾರರು ವಿಭಿನ್ನ ಗಾತ್ರದ ಅಥವಾ ವಿಭಿನ್ನ ನೆಟ್‌ವರ್ಕ್ ಗುಣಮಟ್ಟದ ಕಂಟೆಂಟ್ ಅಪ್‌ಲೋಡ್ ಮಾಡುವಾಗ ಇದು ಕಂಡುಬರುತ್ತದೆ.

ಬೆಂಚ್‌ಮಾರ್ಕ್ ಅನ್ನು ಹೇಗೆ ನಿರ್ಮಿಸಲಾಯಿತು

ಲೇಖಕರು Node.js ನಲ್ಲಿ ಒಂದು ಸರಳ ಹಾರ್ನೆಸ್ (harness) ಅನ್ನು ಬರೆದಿದ್ದಾರೆ, ಇದು ಪ್ರತಿ ಅಪ್‌ಲೋಡ್‌ಗಾಗಿ ಎರಡು ಮಾಪನಗಳನ್ನು ಅಳೆಯುತ್ತದೆ:

  • Upload time – ಕಚ್ಚಾ ಬೈಟ್‌ಗಳನ್ನು (raw bytes) API ಗೆ ಕಳುಹಿಸಲು ಬೇಕಾಗುವ ಒಟ್ಟು ಸೆಕೆಂಡುಗಳು.
  • Time-to-ready – ಅಪ್‌ಲೋಡ್ ಪ್ರಾರಂಭವಾದವರಿಂದ ವಿಡಿಯೋ ಸ್ಟ್ರೀಮ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗುವವರೆಗೆ (ಅಂದರೆ, API ಆ ಅಸೆಟ್ ಅನ್ನು ಪ್ಲೇ ಮಾಡಬಹುದಾಗಿದೆ ಎಂದು ವರದಿ ಮಾಡುವವರೆಗೆ) ಬೇಕಾಗುವ ಸಮಯದ ಅಂತರ.

ಐದು ಸೇವೆಗಳನ್ನು ಒಂದೇ ಸ್ಕ್ರಿಪ್ಟ್ ಮೂಲಕ ಪರೀಕ್ಷಿಸಲಾಯಿತು: FastPix, Mux, api.video, Cloudinary, ಮತ್ತು Gumlet. ಎಲ್ಲಾ ಪರೀಕ್ಷೆಗಳನ್ನು ಒಂದೇ ಯಂತ್ರದಿಂದ ನಡೆಸಲಾಯಿತು ಮತ್ತು ಸಾಮಾನ್ಯ ಮೊಬೈಲ್ 4G ಅನುಭವವನ್ನು ಅನುಕರಿಸಲು ನೆಟ್‌ವರ್ಕ್ ಅನ್ನು 10 Mbps ಗೆ ಸೀಮಿತಗೊಳಿಸಲಾಯಿತು (throttled). ಎರಡು ಪ್ರಾತಿನಿಧಿಕ ಫೈಲ್‌ಗಳನ್ನು ಬಳಸಲಾಯಿತು:

  • Large file: 177 MB, ಇದು ದೀರ್ಘಾವಧಿಯ ಕಂಟೆಂಟ್ ಅಥವಾ ಹೈ-ರೆಸಲ್ಯೂಶನ್ ಕ್ಯಾಮೆರಾ ಮಾಸ್ಟರ್‌ಗಳಿಗೆ ಸಮಾನವಾಗಿದೆ.
  • Small file: 65 MB, ಇದು ಸಣ್ಣ ಕ್ಲಿಪ್‌ಗಳು ಅಥವಾ ಸೋಶಿಯಲ್ ಮೀಡಿಯಾ ಸ್ನಿಪ್ಪೆಟ್‌ಗಳಿಗೆ ಸಾಮಾನ್ಯವಾಗಿದೆ.

ಈ ಹಾರ್ನೆಸ್ ಅಪ್‌ಲೋಡ್ ಅನ್ನು ಸ್ವಯಂಚಾಲಿತಗೊಳಿಸಿತು, ನಂತರ ವಿಡಿಯೋ “ready” ಸ್ಥಿತಿಗೆ ತಲುಪುವವರೆಗೆ ಪ್ರತಿಯೊಬ್ಬ ಪೂರೈಕೆದಾರರ ಸ್ಟೇಟಸ್ ಎಂಡ್‌ಪಾಯಿಂಟ್ ಅನ್ನು ಪರಿಶೀಲಿಸಿ (poll), ಎರಡೂ ಟೈಮ್‌ಸ್ಟ್ಯಾಂಪ್‌ಗಳನ್ನು ದಾಖಲಿಸಿತು.

ಅಂಕಿಅಂಶಗಳು ಏನನ್ನು ಬಹಿರಂಗಪಡಿಸುತ್ತವೆ

ದೊಡ್ಡ ಫೈಲ್ (177 MB)

  • FastPix ಅತ್ಯಂತ ಕಡಿಮೆ ಅಪ್‌ಲೋಡ್ ಸಮಯ ಮತ್ತು ಅತ್ಯಂತ ವೇಗದ ಒಟ್ಟಾರೆ time-to-ready ಅನ್ನು ದಾಖಲಿಸಿತು, ಇದು ಬಲ್ಕ್ ಟ್ರಾನ್ಸ್‌ಫರ್‌ಗಳಿಗೆ ಸ್ಪಷ್ಟವಾದ ನಾಯಕನಾಗಿದೆ.
  • Mux ಅತ್ಯಂತ ವೇಗದ cold-startup ಅನ್ನು ನೀಡಿತು, ಅಂದರೆ ವಿಡಿಯೋ 'ready' ಎಂದು ಗುರುತಿಸಲ್ಪಟ್ಟ ತಕ್ಷಣ ಮೊದಲ ಫ್ರೇಮ್ ಶೀಘ್ರವಾಗಿ ಕಾಣಿಸಿಕೊಳ್ಳುತ್ತದೆ.

ಸಣ್ಣ ಫೈಲ್ (65 MB)

  • Cloudinary ಕೇವಲ 2 ಸೆಕೆಂಡುಗಳಲ್ಲಿ ಕ್ಲಿಪ್ ಅನ್ನು ಪ್ರೊಸೆಸ್ ಮಾಡಿತು, ಇದು ಇತರ ಎಲ್ಲಾ ಸೇವೆಗಳನ್ನು ಹಿಂದಿಕ್ಕಿತು.
  • FastPix ಐದನೇ ಸ್ಥಾನಕ್ಕೆ ಇಳಿಯಿತು.

ವಿಡಿಯೋ API ಆಯ್ಕೆ ಮಾಡುವಾಗ ಗಮನಿಸಬೇಕಾದ ಅಂಶಗಳು

  • ದೀರ್ಘಾವಧಿಯ ಅಥವಾ ಹೈ-ರೆಸಲ್ಯೂಶನ್ ಅಪ್‌ಲೋಡ್‌ಗಳು – ಹೆಚ್ಚಿನ ಡೇಟಾ ವರ್ಗಾವಣೆ (raw throughput) ಮತ್ತು ಇಂಜೆಸ್ಟ್ ವೇಗದಲ್ಲಿ (ingest speed) ಉತ್ತಮವಾಗಿರುವ ಸೇವೆಗಳಿಗೆ ಆದ್ಯತೆ ನೀಡಿ. ಈ ಪರೀಕ್ಷೆಯಲ್ಲಿ, FastPix ಸುರಕ್ಷಿತ ಆಯ್ಕೆಯಾಗಿದೆ.
  • ಸಣ್ಣ, ಆನ್-ಡಿಮಾಂಡ್ ಕ್ಲಿಪ್‌ಗಳು – cold-startup ವಿಳಂಬವನ್ನು (latency) ಕಡಿಮೆ ಮಾಡುವ API ಗಳನ್ನು ಆರಿಸಿ. Cloudinary ನ 2-ಸೆಕೆಂಡ್ ಟರ್ನ್ಅೌಂಡ್ (turnaround) ಇದು ತಕ್ಷಣದ ಪ್ಲೇಬ್ಯಾಕ್ ಸನ್ನಿವೇಶಗಳಿಗೆ ಸೂಕ್ತವಾಗಿದೆ ಎಂದು ಸೂಚಿಸುತ್ತದೆ.

ಕೇವಲ ಅಂಕಿಅಂಶಗಳಿಗಿಂತ ಹೆಚ್ಚಾಗಿ, ತಂಡಗಳು ಬೆಲೆ ಪಟ್ಟಿಯನ್ನು (pricing tiers), ಭೌಗೋಳಿಕ CDN ವ್ಯಾಪ್ತಿಯನ್ನು ಮತ್ತು ಟ್ರಾನ್ಸ್‌ಕೋಡಿಂಗ್ ಆಯ್ಕೆಗಳು ಅಥವಾ DRM ನಂತಹ ಫೀಚರ್‌ಗಳನ್ನು ಪರಿಗಣಿಸಬೇಕು. ಪೂರೈಕೆದಾರರ ಲೀಡರ್‌ಬೋರ್ಡ್ ಒಂದು ಕ್ಷಣದ ಪರಿಶೀಲನೆಗೆ ಸಹಾಯ ಮಾಡಬಹುದು, ಆದರೆ ಅದು ಕೆಲಸದ ನಿರ್ದಿಷ್ಟ ಪರೀಕ್ಷೆಯನ್ನು (workload-specific test) ಬದಲಿಸಬಾರದು.

ನಿಮ್ಮದೇ ಆದ ಪರೀಕ್ಷೆಯನ್ನು ನಡೆಸಿ

  1. ಫ್ಲೋ ಅನ್ನು ಸ್ಕ್ರಿಪ್ಟ್ ಮಾಡಿ – ಫೈಲ್ ಅಪ್‌ಲೋಡ್ ಮಾಡಲು ಮತ್ತು “ready” ಫ್ಲಾಗ್ ಕಾಣಿಸಿಕೊಳ್ಳುವವರೆಗೆ ಸ್ಟೇಟಸ್ ಎಂಡ್‌ಪಾಯಿಂಟ್ ಅನ್ನು ಪರಿಶೀಲಿಸಲು ನೀವು ನಂಬುವ ಭಾಷೆಯನ್ನು (Node.js, Python, ಇತ್ಯಾದಿ) ಬಳಸಿ.
  2. ಪರಿಸರವನ್ನು ನಿಯಂತ್ರಿಸಿ – ವ್ಯತ್ಯಾಸಗಳನ್ನು ತಪ್ಪಿಸಲು ಪ್ರತಿಯೊಬ್ಬ ಪೂರೈಕೆದಾರರ ಪರೀಕ್ಷೆಯನ್ನು ಒಂದೇ ಯಂತ್ರ ಮತ್ತು ನೆಟ್‌ವರ್ಕ್‌ನಿಂದ ನಡೆಸಲು.
  3. ಬ್ಯಾಂಡ್‌ವಿಡ್ತ್ ಅನ್ನು ಸೀಮಿತಗೊಳಿಸಿ (Throttle) – ನೀವು ನಿರೀಕ್ಷಿಸುವ ಅತ್ಯಂತ ನಿಧಾನಗತಿಯ ಬಳಕೆದಾರರ ವಿಭಾಗವನ್ನು ಪ್ರತಿಬಿಂಬಿಸಲು ಸಂಪರ್ಕವನ್ನು ಸೀಮಿತಗೊಳಿಸಿ (ಉದಾಹರಣೆಗೆ, 4G ಗಾಗಿ 10 Mbps).
  4. ನೈಜ ಅಸೆಟ್‌ಗಳನ್ನು ಬಳಸಿ – ಸಾಮಾನ್ಯ ಪರೀಕ್ಷಾ ಕ್ಲಿಪ್‌ಗಳ ಬದಲಿಗೆ ನಿಮ್ಮ ಉತ್ಪನ್ನದ ಸಾಮಾನ್ಯ ಅಪ್‌ಲೋಡ್‌ಗಳನ್ನು ಪ್ರತಿಬಿಂಬಿಸುವ ದೃಶ್ಯಗಳನ್ನು ಬಳಸಿ; ಕೋಡೆಕ್ (codec), ರೆಸಲ್ಯೂಶನ್ ಮತ್ತು ಬಿಟ್‌ರೇಟ್ ಇಂಜೆಸ್ಟ್ ಪೈಪ್‌ಲೈನ್‌ಗಳ ಮೇಲೆ ಪರಿಣಾಮ ಬೀರಬಹುದು.

ನಿಜವಾಗಿಯೂ ಮುಖ್ಯವಾದ ಏಕೈಕ ಬೆಂಚ್‌ಮಾರ್ಕ್ ಎಂದರೆ ಅದು ನಿಮ್ಮ ಸ್ವಂತ ಟ್ರಾಫಿಕ್ ಮಾದರಿಗಳು ಮತ್ತು ಗುಣಮಟ್ಟದ ನಿರೀಕ್ಷೆಗಳನ್ನು ಪ್ರತಿಬಿಂಬಿಸಬೇಕು.

ಮುಂದೆ ಏನನ್ನು ಗಮನಿಸಬೇಕು

ವಿಡಿಯೋ APIಗಳು ವಿಕಸನಗೊಳ್ಳುತ್ತಿದ್ದಂತೆ, ಅವು ಹೊಸ ಇಂಜೆಸ್ಟ್ ಮಾರ್ಗಗಳು, ಎಡ್ಜ್ ಕ್ಯಾಶಿಂಗ್ ಲೇಯರ್‌ಗಳು ಮತ್ತು AI-ಚಾಲಿತ ಟ್ರಾನ್ಸ್‌ಕೋಡಿಂಗ್ ಅನ್ನು ಪರಿಚಯಿಸುತ್ತಿವೆ. ನಿಮ್ಮ CI ಪೈಪ್‌ಲೈನ್‌ನಲ್ಲಿ ಸ್ವಯಂಚಾಲಿತ ಬೆಂಚ್‌ಮಾರ್ಕ್ ಅನ್ನು ಇಟ್ಟುಕೊಳ್ಳುವುದು ಬಳಕೆದಾರರ ಮೇಲೆ ಪರಿಣಾಮ ಬೀರುವ ಮೊದಲೇ ದೋಷಗಳನ್ನು (regressions) ಪತ್ತೆಹಚ್ಚಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ. ಕೆಳಗೆ ಲಿಂಕ್ ಮಾಡಲಾದ ಫಲಿತಾಂಶದಂತೆ ಸಮುದಾಯವು ಹಂಚಿಕೊಂಡ ಫಲಿತಾಂಶಗಳು ಪರಿಸರ ವ್ಯವಸ್ಥೆಯ (ecosystem) ಬಗ್ಗೆ ಹೆಚ್ಚು ಪಾರದರ್ಶಕ ಚಿತ್ರಣವನ್ನು ನೀಡಲು ಸಹಾಯ ಮಾಡುತ್ತವೆ.

ಮೂಲ: https://dev.to/masonwritescode/benchmark-video-apis-yourself-upload-to-playable-measured-across-five-providers-3ap0