सामग्री पर जाएँ

लेख

पॉलीग्लॉट बेंचमार्क: सही कार्य के लिए सही उपकरण चुनना

आठ रनटाइम (एनजेएस, लुआ, पायथन, गो, रस्ट, बन, जावा, एक्सपीआर0एक्स), सात HTTP परीक्षण, प्रतिलिपि प्रस्तुत करने योग्य डॉकर हार्नेस: निर्णय मैट्रिक्स, एआरबी साक्ष्य, वर्कफ़्लो-उदाहरण रेपो, और पॉलीग्लोट-बेंचमार्क.फिक्शनली.ओआरजी लाइव डैशबोर्ड

  • 13 मिनट में पढ़ें
इस पृष्ठ पर

यह दीर्घ-रूप वाला डीप-डाइव है। त्वरित, स्किम-पठनीय संस्करण के लिए, देखें साथी ब्लॉग पोस्ट.

पॉलीग्लॉट बेंचमार्क कवर - सही उपकरण, सही काम

1. परिचय: आदत ढेर बनाम वास्तविक कार्यभार

परिपक्व संगठनों में प्रौद्योगिकी विकल्प शायद ही कभी विफल होते हैं क्योंकि कोई भी बेंचमार्क ब्लॉग पोस्ट नहीं पढ़ता है। वे असफल हो जाते हैं क्योंकि प्रक्रिया चुनने के लिए कमजोर है: एक जोरदार वरिष्ठ इंजीनियर की प्राथमिकता, एक भाषा से भरी भर्ती पाइपलाइन, या एक सम्मेलन में एक प्रभावशाली डेमो। इस बीच उत्पाद में विलंबता-संवेदनशील APIs, बैच सामंजस्य, NGINX में एज प्रमाणीकरण, आंतरिक CLI और कभी-कभी सर्वर रहित स्पाइक का मिश्रण होता है। उन सभी आकृतियों के लिए एक रनटाइम इष्टतम नहीं हो सकता।

यह लेख बताता है पॉलीग्लॉट बेंचमार्क - एक लाइव तुलना डैशबोर्ड और खुला वर्कफ़्लो-उदाहरण/बेंचमार्क इसके पीछे हार्नेस - एक के रूप में निर्णय रूपरेखा, कोई फैनबॉय लीडरबोर्ड नहीं। लक्ष्य वह साक्ष्य है जिसे आप आर्किटेक्चर निर्णय रिकॉर्ड (एडीआर) से जोड़ सकते हैं: समान समापन बिंदु, समान लोड जनरेटर, समान कंटेनर लेआउट, कई भाषाएं।

मैं गद्य में थ्रूपुट संख्याओं का आविष्कार नहीं करूंगा। जब आप हार्नेस चलाते हैं, तो डैशबोर्ड उस हार्डवेयर और डॉकर सेटअप के लिए मापी गई आवश्यकताएं और विलंबता प्रतिशत दिखाता है। यहां किसी भी स्थिर रैंकिंग को हार्नेस के परीक्षण परिवारों और डैशबोर्ड की अंतर्निहित निर्णय प्रतिलिपि के साथ संरेखित गुणात्मक पैटर्न के रूप में मानें।

पॉलीग्लॉट बेंचमार्क चार-चरणीय दृष्टिकोण: कार्यभार को परिभाषित करें, हार्नेस चलाएं, तुलना करें, निर्णय लें
निर्णय रूपरेखा एक नज़र में - कार्यभार को परिभाषित करें, हार्नेस चलाएं, लाइव डैशबोर्ड पर तुलना करें, फिर मापा साक्ष्य द्वारा समर्थित एडीआर के साथ निर्णय लें।

2. पॉलीग्लॉट बेंचमार्क क्या है?

पॉलीग्लॉट बेंचमार्क पर होस्ट किया गया है Polyglot-benchmarks.fictionally.org (वर्कफ़्लो-उदाहरण पारिस्थितिकी तंत्र में काल्पनिक-ब्रांडेड बुनियादी ढाँचा)। लैंडिंग शीर्षक तुलना करता है:

  • एनजीआईएनएक्स एनजेएस - स्टॉक एनजीआईएनएक्स के अंदर जावास्क्रिप्ट मॉड्यूल
  • ओपनरेस्टी लुआ - ओपनरेस्टी पर लुआ किनारे पर
  • पायथन फास्टएक्सपीआर0एक्स - यूविकॉर्न एएसजीआई ऐप
  • नेट/एचटीटीपी पर जाएं - मानक पुस्तकालय सर्वर
  • रस्ट एक्टिक्स-वेब - एक्टिक्स पर एसिंक HTTP
  • बन - मूल HTTP सर्वर के साथ जावास्क्रिप्ट रनटाइम
  • जावा (Javalin / Jetty) - Jetty पर हल्का JVM HTTP
  • एक्सपीआर2एक्स (एक्सपीआर0एक्स/एक्सपीआर1एक्स) - Netty पर कोरआउटिन-अनुकूल JVM HTTP

लाइव हेडलाइन एक है 8-भाषा तुलना: एनजेएस बनाम लुआ बनाम पायथन बनाम गो बनाम रस्ट बनाम बन बनाम जावा बनाम एक्सपीआर0एक्स. उपशीर्षक इरादे को फ्रेम करता है: प्रदर्शन के लिए लंबी पोलिंग / चैट / कतार / API कार्यभार - एकल "हैलो वर्ल्ड" रथ दौड़ के बजाय कनेक्शन-भारी, JSON-भारी, और रूटिंग-भारी पथ। जेवीएम दुकानों को अंततः एक अलग "उद्यम" उपाख्यान के बजाय गो/रस्ट/बन जैसी ही निष्पक्ष सतह मिलती है।

2.1 डैशबोर्ड क्या दिखाता है

जैसे ही रन आगे बढ़ता है, यूआई पोल करता है /data/results.json हर दो सेकंड में और प्रस्तुत करता है:

  • अनुरोध/सेकंड (थ्रूपुट) - से एकत्रित wrk प्रति भाषा प्रति परीक्षण
  • औसत विलंबता और P99 पूँछ विलंबता - वर्क के विलंबता मॉडल से मिलीसेकंड में
  • टीटीएफबी (पहली बाइट का समय) - कर्ल टाइमिंग JSON से wrk के साथ
  • सार तालिका - सर्वोत्तम कोशिकाओं पर ★ मार्करों के साथ प्रति-परीक्षण विजेता
  • विस्तृत परीक्षण कार्ड - बार चार्ट और मीट्रिक तालिकाएँ (P50, P90, P99.9, त्रुटियाँ)
  • विलंबता प्रतिशत वितरण - परीक्षणों में औसत
  • निर्णय - आपके उपयोग के मामले के लिए सर्वोत्तम - कथा एक बार स्थिति है complete

वह संरचना जानबूझकर एआरबी-अनुकूल है: स्लाइड के लिए चार्ट, स्प्रेडशीट के लिए टेबल, एडीआर के जोखिम अनुभाग के लिए कथा।

3. वर्कफ़्लो-उदाहरण हार्नेस

प्रतिलिपि प्रस्तुत करने योग्य हर चीज़ नीचे रहती है benchmarks/ में कार्यप्रवाह-उदाहरण भण्डार. शीर्ष-स्तरीय लेआउट:

benchmarks/
  bench.sh              # orchestrates tests, writes results.json
  wrk_json.lua          # wrk done() → JSON summary (RPS, percentiles)
  docker-compose.yml    # eight app services + dashboard + bench runner
  njs/                  # NGINX + njs module
  lua/                  # OpenResty nginx.conf
  python/               # FastAPI + Dockerfile
  golang/               # net/http main.go
  rust/                 # Actix-web + Cargo
  bun/                  # Bun server.ts
  java/                 # Javalin on Jetty
  kotlin/               # Ktor on Netty
  dashboard/            # static index.html + nginx.conf

3.1 डॉकर कंपोज़ टोपोलॉजी

docker-compose.yml साझा नेटवर्क पर पृथक सेवाओं को परिभाषित करता है:

  • nginx-njs — पोर्ट 8081, कॉन्फिगरेशन से ./njs
  • openresty-lua — पोर्ट 8082
  • python-fastapi — पोर्ट 8084, से निर्मित ./python
  • go-server — पोर्ट 8085
  • rust-actix — पोर्ट 8086
  • bun-server — पोर्ट 8087
  • java-server — पोर्ट 8088, Javalin / Jetty से ./java
  • kotlin-server — पोर्ट 8089, Ktor / Netty से ./kotlin
  • dashboard - पोर्ट 8083, HTML परोसता है और माउंट करता है results वॉल्यूम पर /data
  • bench - अल्पाइन कंटेनर जो स्थापित करता है curl, wrk, jq, निर्भरता की प्रतीक्षा करता है, चलता है bench.sh

बेंच रनर साझा करता है results डैशबोर्ड के साथ वॉल्यूम बढ़ाएं ताकि परिणाम मैन्युअल कॉपी के बिना लाइव दिखाई दें।

3.2 बेंच.श पद्धति

शेल ड्राइवर निष्पक्षता नियमों को स्पष्ट रूप से एन्कोड करता है:

  • अवधि: 10s प्रति समापन बिंदु प्रति भाषा
  • धागे: 4
  • कनेक्शन: 100 समवर्ती
  • जोश में आना: 50 राउंड की मार /hello समयबद्ध परीक्षण से पहले प्रत्येक सर्वर पर
  • प्रति सर्वर: कर्ल टाइमिंग JSON (डीएनएस, कनेक्ट, टीटीएफबी, टोटल) प्लस वर्क विथ wrk_json.lua

स्क्रिप्ट में सात परीक्षण पाइप-सीमांकित हैं:

पहचान नाम इरादा endpoint
1सादे पाठबेसलाइन - न्यूनतम प्रतिक्रिया, रूपरेखा ओवरहेड/hello
2JSON क्रमांकन100-आइटम JSON सरणी बनाएं और क्रमबद्ध करें/json
3CPU-बाउंड (फाइबर 30)पुनरावर्ती फाइबोनैचि (30) - शुद्ध CPU/cpu?n=30
4स्ट्रिंग हेरफेरनिर्माण करें, विभाजित करें, अपरकेस बनाएं, 1000 खंडों को फिर से जोड़ें/string
5निरीक्षण का अनुरोध करेंशीर्षलेख, विधि, तर्क → JSON/request_info?foo=bar&baz=123
6सबरेक्वेस्ट + ट्रांसफॉर्मआंतरिक उपअनुरोध, पार्स JSON, परिवर्तन/subrequest
7रूटिंग लॉजिकक्वेरी पैरामीटर पर सशर्त रूटिंग/route?action=greet&name=bench

प्रत्येक भाषा समान मार्ग सतह लागू करती है (देखें)। golang/main.go, python/main.py, java/, kotlin/, एनजीआईएनएक्स कॉन्फ़िगरेशन इत्यादि) इसलिए अंतर रनटाइम और फ्रेमवर्क को दर्शाते हैं, बेमेल विशिष्टताओं को नहीं।

4. "बहुभाषी" क्यों मायने रखता है (कट्टरता के बिना)

पॉलीग्लॉट आर्किटेक्चर का मतलब यह नहीं है कि हर इंजीनियर आठ भाषाएँ सीखता है। इसका मतलब है बंधे हुए संदर्भ ऐसा रनटाइम प्राप्त करें जो फिट बैठता हो:

  • किनारे का तल - प्रमाणीकरण, दर सीमा, रूटिंग: एनजीआईएनएक्स के अंदर लुआ या एनजे जो आप पहले से ही संचालित करते हैं
  • कोर API विमान - एसएलओ के साथ व्यावसायिक तर्क: जाओ या जंग
  • जेवीएम विमान - मौजूदा स्प्रिंग/जकार्ता संपदा, साझा पुस्तकालय, नियुक्ति की गहराई: जावा (Javalin) या Kotlin (Ktor)
  • डेटा प्लेन - ईटीएल, नोटबुक, एमएल गोंद: पायथन
  • वास्तविक समय जेएस विमान - वेबसॉकेट, फ्रंटएंड के साथ साझा प्रकार: बन या नोड जहां वेग जीतता है

यूनिफ़ॉर्म स्टैक मानव संसाधन और खरीद को अनुकूलित करते हैं। पॉलीग्लॉट बेंचमार्क अनुकूलित करते हैं प्रति कार्यभार के अनुरूप मेज पर मापने योग्य व्यापार-बंद के साथ।

5. आयाम जो मायने रखते हैं

रॉ रिक्यू/एस वह मीट्रिक है जो स्लैक पर सबसे तेज़ गति से चलती है। इसे गलत तरीके से पढ़ना भी सबसे आसान है। बहु-स्तंभ रूब्रिक का उपयोग करें:

मापदंड हावी तब होता है जब... हार्नेस संकेत
p50 / p99 विलंबताउपयोगकर्ता-सामना वाले APIs, चैट, लंबा मतदानकार्य विलंबता प्रतिशतक; डैशबोर्ड P99 चार्ट
थ्रूपुट (आरपीएस)हाई फैन-आउट गेटवे, बैच एग्रीगेटरवर्क आरपीएस; सारांश विजेता कॉलम
प्रति कनेक्शन मेमोरीहजारों निष्क्रिय वेबसाकेटगुणात्मक + उत्पादन प्रोफ़ाइलिंग (पूरी तरह से उपयोग में नहीं)
टीटीएफबीसीडीएन मिस, ठंडे रास्ते, मोबाइल नेटवर्ककर्ल time_starttransfer परिणाम JSON में
एलओसी/जटिलतास्टार्टअप, विनियमित परिवर्तन नियंत्रणसभी फ़ोल्डरों में कार्यान्वयन की तुलना करें
निर्माण एवं सीआई समयबारंबार तैनाती, अनेक सेवाएँडॉकर प्रति भाषा प्रोफाइल बनाता है
ऑप्स बोझछोटी मंच टीममौजूदा एनजीआईएनएक्स कौशल → लुआ/एनजेएस; अन्य कंटेनर
होस्टिंग लागतऑलवेज़-ऑन बनाम स्केल-टू-ज़ीरोलोड के तहत मेमोरी + CPU से व्युत्पन्न (उत्पादन)

6. निर्णय मैट्रिक्स

नीचे दिया गया आरेख वह गुणात्मक मानचित्र है जिसका उपयोग हम समीक्षाओं में करते हैं - उदाहरणात्मक नेता, आपके किट पर हार्नेस चलाने का विकल्प नहीं।

कार्यभार बनाम मानदंड निर्णय मैट्रिक्स - विजेता पंक्ति के अनुसार भिन्न होता है

इसे पहले पंक्ति में पढ़ें: अपना कार्यभार आकार चुनें, फिर भार स्तंभ चुनें। यदि दो मानदंड विरोधाभासी हैं (उदाहरण के लिए सर्वोत्तम आरपीएस बनाम निम्नतम एलओसी), तो वह तनाव एडीआर चर्चा के लायक है।

7. केस पैटर्न (उदाहरण लेबलिंग)

निम्नलिखित मानचित्र वास्तुशिल्प विकल्पों के लिए परीक्षण परिवारों का उपयोग करते हैं। आपकी मशीन के लीडर एक रन के बाद डैशबोर्ड पर दिखाई देते हैं - इस अनुभाग को निश्चित स्कोर के रूप में न मानें।

7.1 API विलंबता-संवेदनशील (परीक्षण 1-2, 5-7)

JSON APIs और रूटिंग-हैवी हैंडलर मिरर टेस्ट 2, 5, और 7. संकलित एसिंक रनटाइम (रस्ट एक्टिक्स, गो) आमतौर पर सिंथेटिक HTTP बेंचमार्क के इस वर्ग में थ्रूपुट और टेल लेटेंसी पर आगे बढ़ते हैं; JS एर्गोनॉमिक्स के साथ बन अक्सर JSON-भारी पथों के करीब बैठता है। जावा (Javalin) और एक्सपीआर1एक्स (एक्सपीआर0एक्स) जेवीएम टीमों को समान मार्गों पर उन नेताओं के खिलाफ निष्पक्ष रूप से पढ़ने दें - यह तब उपयोगी होता है जब सवाल "हल्के स्टैक के साथ जेवीएम पर बने रहें" बनाम "गो/रस्ट में फिर से लिखना" हो। पायथन फास्टएक्सपीआर0एक्स विकास की गति के लिए कच्चे आरपीएस का व्यापार करता है - डैशबोर्ड का फैसला इसे स्पष्ट रूप से बताता है।

7.2 CPU-बाध्य सूक्ष्म कार्य (परीक्षण 3)

फाइबोनैचि(30) I/O के बिना CPU को अलग करता है। जंग की उम्मीद करो और चमकने जाओ; व्याख्या किए गए ढेर ओवरहेड का भुगतान करते हैं; जेवीएम जेआईटी वार्मअप के बाद ठंडी 10s विंडो की तुलना में अधिक मजबूत दिख सकता है - यदि यह आपकी वास्तविक प्रोफ़ाइल है तो अवधि बढ़ाएँ। यदि आपकी वास्तविक सेवा I/O बाध्य है, तो इस पंक्ति को अधिक महत्व न दें - यह गणना-भारी मिडलवेयर के लिए एक तनाव परीक्षण है, न कि सामान्य सीआरयूडी के लिए।

7.3 एज ट्रांसफॉर्म (टेस्ट 6-7, एनजीआईएनएक्स वेरिएंट)

सबरेक्वेस्ट और रूटिंग परीक्षण कहां हैं ओपनरेस्टी लुआ और एनजीआईएनएक्स एनजेएस संबंधित: शून्य अतिरिक्त हॉप, साझा कार्यकर्ता मेमोरी, ऑप्स टीमें पहले से ही एनजीआईएनएक्स का प्रबंधन करती हैं। हार्नेस का फैसला कोर चैट/क्यू बैकएंड के लिए गो/रस्ट और किनारे पर लुआ/एनजे की सिफारिश करता है - एक समझदार विभाजन जो कई उद्यम पहले से ही अनौपचारिक रूप से चलते हैं।

7.4 बैच ईटीएल और डेटा पाइपलाइन

HTTP हार्नेस स्पार्क या वेयरहाउस लोड का अनुकरण नहीं करता है। बैच के लिए, टीमें आमतौर पर थ्रूपुट के लिए पायथन इकोसिस्टम और ऑर्केस्ट्रेशन (एयरफ्लो, डैगस्टर) या गो वर्कर्स को प्राथमिकता देती हैं। के लिए पॉलीग्लॉट बेंचमार्क का उपयोग करें API सतहें और नियंत्रण विमान वे नौकरियाँ उजागर होती हैं, बैच इंजन के लिए नहीं।

7.5 त्वरित आंतरिक उपकरण

कम क्यूपीएस और उच्च परिवर्तन दर के साथ आंतरिक व्यवस्थापक API: पायथन या बन/नोड अक्सर वेग और हायरिंग पर जीतते हैं। ओवरहेड स्वीकार्य है यह सुनिश्चित करने के लिए टेस्ट 2 (JSON) और टेस्ट 5 (निरीक्षण) चलाएँ; यदि पी99 100 कनेक्शन के नीचे बढ़ता है, तो ग्राहक-सामना वाले स्तरों पर प्रचार करने से पहले पुनर्विचार करें।

7.6 जेवीएम एस्टेट (जावा और एक्सपीआर0एक्स)

कई उद्यम पहले से ही साझा पुस्तकालयों, अनुपालन टूलींग और भर्ती गहराई के लिए जावा या एक्सपीआर0एक्स चलाते हैं। हार्नेस का java-server (Jetty पर Javalin, पोर्ट 8088) और kotlin-server (एक्सपीआर2एक्स पर एक्सपीआर1एक्स, पोर्ट 8089) गो और रस्ट के समान सात समापन बिंदुओं को लागू करता है, ताकि आप यह निर्धारित कर सकें कि हल्का जेवीएम HTTP स्टैक पुनर्लेखन से पहले दिए गए एसएलओ के लिए "काफी अच्छा" है या नहीं। जब कोरटाइन-शैली समवर्ती और Kotlin-पहली टीमें मायने रखती हैं तो Kotlin को प्राथमिकता दें; जावा को प्राथमिकता दें जब आसपास की संपत्ति और लाइब्रेरी ग्राफ पहले से ही जावा-केंद्रित हों। लाइव डैशबोर्ड पंक्तियों का उपयोग करें - स्प्रिंग बूट संख्याओं को Javalin/Ktor संख्याओं के बराबर न मानें।

8. वर्कफ़्लो आरेख

पॉलीग्लॉट बेंचमार्क वर्कफ़्लो स्विम लेन

प्रतिलिपि प्रस्तुत करने योग्य लूप: कार्यभार निर्दिष्ट करें → कम्पोज़ हार्नेस चलाएँ → काल्पनिक डैशबोर्ड (या अपने आंतरिक क्लोन) पर परिणाम प्रकाशित करें → कॉन्फ़िगरेशन मेटाडेटा के साथ एक एडीआर रिकॉर्ड करें → रनटाइम या हार्डवेयर बदलने पर पुनः चलाएँ।

9. अपनी तुलना कैसे चलायें

  1. क्लोन: git clone https://github.com/bwalia/workflow-examples.git && cd workflow-examples/benchmarks
  2. स्टैक प्रारंभ करें: docker compose up --build - सभी भाषा चित्र बनाता है, पोर्ट 8083 पर डैशबोर्ड प्रारंभ करता है, स्वचालित रूप से बेंच चलाता है।
  3. घड़ी: खुला http://localhost:8083 (या सार्वजनिक साइट जब होस्ट किया गया रन सक्रिय हो)।
  4. बढ़ाना: एक फ़ोल्डर जोड़ें myruntime/, समापन बिंदु पथों को प्रतिबिंबित करें, एक सेवा पंजीकृत करें docker-compose.yml, सर्वर को इसमें जोड़ें SERVERS में bench.sh.
  5. लोड अनुकूलित करें: संपादन करना DURATION, THREADS, CONNECTIONS के शीर्ष पर bench.sh - आपके एडीआर में दस्तावेज़ परिवर्तन।
  6. उत्पादन-आकार के परीक्षण जोड़ें: जैसे ऑथ मिडलवेयर, ORM क्वेरी, 50KB पेलोड - सभी भाषाओं में समानता रखें।

सीआई के लिए, रात्रिकालीन वर्कफ़्लो, संग्रह में कंपोज़ चलाएँ results.json एक कलाकृति के रूप में, और केवल आपके द्वारा परिभाषित प्रतिगमन सीमा पर विफल (उदाहरण के लिए परीक्षण 2 पर p99 +20% सप्ताह दर सप्ताह)।

10. विरोधी पैटर्न

  • केवल टेस्ट 1 का विजेता चुनना - सादा पाठ न्यूनतम स्टैक का समर्थन करता है; यह JSON, CPU और रूटिंग दर्द को अनदेखा करता है।
  • टीम कौशल की अनदेखी — गुरुओं के बिना उत्पादन में जंग घटना के समय महंगी होती है।
  • होस्टिंग लागत को नजरअंदाज करना - यदि प्रति पॉड मेमोरी आपके बिल को दोगुना कर देती है तो 2× आरपीएस बेकार है।
  • पूरे संगठन में एक भाषा अनिवार्य करना - वैध बढ़त बनाम कोर विभाजन को नष्ट कर देता है।
  • उत्पादन प्रोफाइलिंग को प्रतिस्थापित करना - सिंथेटिक HTTP ≠ आपका ORM, कैश, या क्षेत्रीय विलंबता।
  • हार्डवेयर के विपरीत तुलना — लैपटॉप डॉकर ≠ बेअर मेटल ≠ K8s सीमाएं; एडीआर में कक्षा नोट करें।

11. इंजीनियरिंग नेतृत्व के लिए लाभ

  • एआरबी पैक्स - डैशबोर्ड स्क्रीनशॉट + निर्यात करें results.json + हैश लिखें.
  • विक्रेता-तटस्थ साक्ष्य - एक भी क्लाउड या फ्रेमवर्क विक्रेता से कोई बिक्री डेक नहीं।
  • ऑनबोर्डिंग स्पष्टता - नए कर्मचारी देखें *क्यों* सेवा ए गो है और सेवा बी पायथन है।
  • जोखिम में कमी - दोबारा लिखने से पहले उपविजेता को छाया सेवा में पायलट करें।
  • फिनऑप्स वार्तालाप - टेल लेटेंसी को ऑटोस्केलिंग और मेमोरी हेडरूम से लिंक करें।
  • प्लेटफार्म रोडमैप - एनजीआईएनएक्स कौशल निवेश बनाम अन्य K8s माइक्रोसर्विस को उचित ठहराएं।

12. सीमाएँ

  • सिंथेटिक कार्यभार - सात HTTP परीक्षण काफ्का उपभोक्ताओं, GPU नौकरियों या जटिल ORM ग्राफ़ का प्रतिनिधित्व नहीं कर सकते।
  • डॉकर नेटवर्किंग - ओवरहेड जोड़ता है; पूर्ण संख्याएँ नंगे धातु से भिन्न होती हैं।
  • एकल मशीन वर्ग - होस्ट किए गए परिणाम काल्पनिक रूप से उपयोग किए जाने वाले किसी भी हार्डवेयर को दर्शाते हैं; आपके नंबर अलग-अलग होंगे.
  • कोई दृढ़ता परत नहीं - डेटाबेस और कैश प्रभाव डिज़ाइन द्वारा अनुपस्थित हैं।
  • अल्पावधि अवधि - प्रति परीक्षण 10s जीसी ठहराव या वार्मअप चट्टानों को उजागर नहीं कर सकता है; तनाव अभियानों के लिए विस्तार करें।

उत्पादन के लिए सत्य के स्रोत के रूप में निरंतर प्रोफाइलिंग (ईबीपीएफ, एपीएम, स्टेजिंग के विरुद्ध लोड परीक्षण) रखें। पॉलीग्लॉट बेंचमार्क संकीर्ण करता है भाषा और रूपरेखा प्रतिलिपि प्रस्तुत करने योग्य आधार रेखाओं के साथ बहस।

13. निष्कर्ष

डिफ़ॉल्ट-स्टैक पूर्वाग्रह आरामदायक है; यह भी है कि टीमें कार्य के लिए गलत रनटाइम कैसे भेजती हैं। पॉलीग्लॉट बेंचमार्क और यह कार्यप्रवाह-उदाहरण हार्नेस टर्न "कौन सी भाषा जीतती है?" "कौन सी भाषा जीतती है"। इस कार्यभार पंक्ति के लिए?” - चार्ट के साथ आपका एआरबी उद्धृत कर सकता है।

रेपो को फोर्क करें, अपने हॉट पाथ की तरह दिखने वाले एंडपॉइंट जोड़ें, कंपोज़ चलाएँ, और परिणामों को अगले आर्किटेक्चर निर्णय में संलग्न करें। साथी ब्लॉग भेजा साझा करने के लिए पांच मिनट का संस्करण है; यह लेख संदर्भ है.

द्वारा प्रकाशित TenthMatrix (tenthmatrix.com)। बेंचमार्क डैशबोर्ड पर होस्ट किया गया Polyglot-benchmarks.fictionally.org काल्पनिक उदाहरण पारिस्थितिकी तंत्र में।


इस आलेख के लिए SEO स्नैपशॉट

  • एसईओ शीर्षक: पॉलीग्लॉट बेंचमार्क: कार्य के लिए सही उपकरण
  • मेटा विवरण: समान HTTP वर्कलोड पर njs, Lua, Python, Go, Rust, bun, Java और Kotlin की तुलना करें। आर्किटेक्ट्स के लिए प्रतिलिपि प्रस्तुत करने योग्य हार्नेस, लाइव डैशबोर्ड, निर्णय मैट्रिक्स।
  • प्राथमिक कीवर्ड: पॉलीग्लॉट बेंचमार्क, भाषा तुलना, आर्किटेक्चर निर्णय, वर्कफ़्लो उदाहरण, प्रदर्शन बेंचमार्क, रस्ट बनाम गो, जावा बनाम एक्सपीआर2एक्स, फास्टएक्सपीआर3एक्स, एक्सपीआर0एक्स, एक्सपीआर1एक्स
  • ट्विटर/एक्स (280 अक्षरों से कम): पॉलीग्लॉट बेंचमार्क: एनजेएस, लुआ, पायथन, गो, रस्ट, बन, जावा, एक्सपीआर0एक्स में समान 7 HTTP परीक्षण - लाइव डैशबोर्ड + वर्कफ़्लो-उदाहरण हार्नेस। एक भी विजेता नहीं; एक निर्णय रूपरेखा. #जंग #गोलांग #जावा #एक्सपीआर0एक्स #बंज्स #पॉलीग्लॉट
  • लिंक्डइन पोस्ट: हमने पॉलीग्लॉट बेंचमार्क पर एक गहन जानकारी प्रकाशित की - कैसे आदत से एक ऑर्ग-वाइड स्टैक चुनना बंद करें और वर्कलोड के साथ रनटाइम का मिलान कैसे शुरू करें। आठ भाषाएँ (जावा/Javalin और Kotlin/Ktor सहित), सात तुलनीय परीक्षण, डॉकर कंपोज़ + wrk, पॉलीग्लॉट-बेंचमार्क्स.फिक्शनली.org पर लाइव परिणाम, github.com/bwalia/workflow-examples/tree/main/benchmarks पर स्रोत। निर्णय मैट्रिक्स, एंटी-पैटर्न और एडीआर मार्गदर्शन शामिल है। TenthMatrix इंजीनियरिंग से. #रस्ट #गोलैंग #जावा #Kotlin #बंज्स #लुआ #पायथन #njs #FastAPI #Javalin #Ktor #OpenResty #polyglot #benchmarks