ਸਮੱਗਰੀ 'ਤੇ ਜਾਓ

ਬਲੌਗ

ਪੌਲੀਗਲੋਟ ਬੈਂਚਮਾਰਕਸ: ਸਹੀ ਨੌਕਰੀ ਲਈ ਸਹੀ ਟੂਲ ਦੀ ਚੋਣ ਕਰਨਾ

ਪੌਲੀਗਲੋਟ ਬੈਂਚਮਾਰਕ ਤੁਹਾਨੂੰ ਹਰੇਕ ਐਪਲੀਕੇਸ਼ਨ ਲਈ ਸਹੀ ਸਟੈਕ ਚੁਣਨ ਵਿੱਚ ਕਿਵੇਂ ਮਦਦ ਕਰਦੇ ਹਨ — ਉਹਨਾਂ ਸਾਰਿਆਂ 'ਤੇ ਰਾਜ ਕਰਨ ਲਈ ਇੱਕ ਭਾਸ਼ਾ ਨਹੀਂ

  • Balinder Walia
  • 4 ਮਿੰਟ ਦੀ ਪੜ੍ਹਤ
  • Updated

ਇੱਕ ਛੋਟਾ, ਸਕੀਮ-ਪੜ੍ਹਨਯੋਗ ਸਾਥੀ। ਪੂਰੀ ਆਰਕੀਟੈਕਚਰ ਦੀ ਡੂੰਘਾਈ-ਡਾਈਵ ਲਈ — ਹਾਰਨੇਸ ਲੇਆਉਟ, ਨਿਰਣਾਇਕ ਮੈਟ੍ਰਿਕਸ, ਐਂਟੀ-ਪੈਟਰਨ, ਅਤੇ ਬੈਂਚਮਾਰਕਸ ਨੂੰ ਫੋਰਕ ਕਿਵੇਂ ਕਰਨਾ ਹੈ —ਲੰਬਾ ਲੇਖਪੜ੍ਹੋ।

ਤੁਹਾਡੇ ਸੰਗਠਨ ਨੇ 2019 ਵਿੱਚ ਇੱਕ ਸਟੈਕ ਚੁਣਿਆ ਹੈ। ਤੁਹਾਡੇ ਵਰਕਲੋਡ ਨੇ ਨਹੀਂ ਕੀਤਾ।

ਜ਼ਿਆਦਾਤਰ ਟੀਮਾਂ ਅਜੇ ਵੀ ਹਰ ਨਵੀਂ ਸੇਵਾ ਲਈ ਇੱਕ ਭਾਸ਼ਾ 'ਤੇ ਮਾਨਕੀਕਰਨ ਕਰਦੀਆਂ ਹਨ: ਨੋਡ ਵਿੱਚ ਸਭ ਕੁਝ, Python ਵਿੱਚ ਸਭ ਕੁਝ, ਜਾਵਾ ਵਿੱਚ ਸਭ ਕੁਝ, ਜਾਂ ਸਿਰਫ ਗ੍ਰੀਨਫੀਲਡ ਲਈ ਜੰਗਾਲ 'ਤੇ ਇੱਕ ਬਹਾਦਰੀ ਵਾਲਾ ਬਾਜ਼ੀ। ਇਹ ਆਦਤ ਸਮਝਣ ਯੋਗ ਹੈ - ਜਦੋਂ ਸਟੈਕ ਇਕਸਾਰ ਹੁੰਦਾ ਹੈ ਤਾਂ ਭਰਤੀ, CI ਟੈਂਪਲੇਟਸ, ਅਤੇ ਸੁਰੱਖਿਆ ਸਮੀਖਿਆ ਸਭ ਆਸਾਨ ਹੋ ਜਾਂਦੇ ਹਨ। ਸਮੱਸਿਆ ਇਹ ਹੈ ਕਿ ਕੰਮ ਦਾ ਬੋਝ ਇਕਸਾਰ ਨਹੀਂ ਹੈ। ਇੱਕ API ਗੇਟਵੇ, ਇੱਕ ਰਾਤ ਦੀ ETL ਨੌਕਰੀ, ਇੱਕ NGINX ਐਜ ਟ੍ਰਾਂਸਫਾਰਮ, ਇੱਕ JVM ਮਾਈਕ੍ਰੋਸਰਵਿਸ ਅਸਟੇਟ, ਅਤੇ ਲੰਬੇ ਸਮੇਂ ਤੱਕ ਚੱਲਣ ਵਾਲੇ ਕਨੈਕਸ਼ਨਾਂ ਦੇ ਨਾਲ ਇੱਕ ਚੈਟ ਬੈਕਐਂਡ ਰਨਟਾਈਮ ਦੇ ਵੱਖ-ਵੱਖ ਹਿੱਸਿਆਂ 'ਤੇ ਜ਼ੋਰ ਦਿੰਦਾ ਹੈ। ਇੱਕ ਹਾਲਵੇਅ ਬਹਿਸ ਜਾਂ ਇੱਕ ਸਿੰਗਲ ਮਾਈਕਰੋ-ਬੈਂਚਮਾਰਕ ਵਿੱਚੋਂ ਇੱਕ ਜੇਤੂ ਨੂੰ ਚੁਣਨਾ ਇਹ ਹੈ ਕਿ ਤੁਸੀਂ ਗਲਤ ਲੋਡ ਚੁੱਕਣ ਵਾਲੇ ਗਲਤ ਟੂਲ ਨਾਲ ਕਿਵੇਂ ਖਤਮ ਹੁੰਦੇ ਹੋ।

ਪੌਲੀਗਲੋਟ ਬੈਂਚਮਾਰਕਸਇੱਕ ਐਂਟੀਡੋਟ ਹੈ: ਇੱਕ ਪ੍ਰਜਨਨਯੋਗ ਹਾਰਨੈੱਸ ਅਤੇ ਲਾਈਵ ਡੈਸ਼ਬੋਰਡ ਜੋਇੱਕੋHTTP ਵਰਕਲੋਡਾਂ 'ਤੇਅੱਠਰਨਟਾਈਮ ਦੀ ਤੁਲਨਾ ਕਰਦਾ ਹੈ, ਇਸਲਈ ਸਬੂਤਾਂ ਦੀ ਬਜਾਏ ਆਰਕੀਟੈਕਟ ਦੇ ਸੰਦਰਭ ਨਾਲ ਮੇਲ ਕਰ ਸਕਦੇ ਹਨ। ਪੱਖਪਾਤ

Polyglot Benchmarks — right tool, right job cover

ਇਹ

ਨੂੰ ਕੀ ਮਾਪਦਾ ਹੈ

ਜਨਤਕ ਡੈਸ਼ਬੋਰਡNGINX njs,OpenResty Lua,Python (FastAPI),Go (net/http), ,Rust (XTAG3ct7X Ru) ਦੀ ਤੁਲਨਾ ਕਰਦਾ ਹੈ ਬਨ,Java (Javalin / Jetty), ਅਤੇKotlin (Ktor / Netty)ਸੱਤ ਸਿੰਥੈਟਿਕ ਟੈਸਟਾਂ ਵਿੱਚ ਜੋ ਅਸਲ API ਅਤੇ ਕਿਨਾਰੇ ਦੇ ਪੈਟਰਨਾਂ ਨੂੰ ਪ੍ਰਤੀਬਿੰਬਤ ਕਰਦੇ ਹਨ: ਪਲੇਨ ਟੈਕਸਟ ਬੇਸਲਾਈਨ, JSON ਸੀਰੀਅਲਾਈਜ਼ੇਸ਼ਨ, JSON ਸੀਰੀਅਲਾਈਜ਼ੇਸ਼ਨ, JSON ਸੀਰੀਅਲਾਈਜ਼ੇਸ਼ਨ, ਸਟਿਪ-ਐਕਸਬੀਐਕਸਬੀਨ ਨਿਰੀਖਣ, ਅੰਦਰੂਨੀ ਸਬ-ਰਿਕੁਸਟ + ਟ੍ਰਾਂਸਫਾਰਮ, ਅਤੇ ਰੂਟਿੰਗ ਤਰਕ। ਹਰੇਕ ਟੈਸਟ ਪ੍ਰਤੀ ਸਕਿੰਟ, ਔਸਤ ਅਤੇ ਟੇਲ ਲੇਟੈਂਸੀ (P99 ਸਮੇਤ), ਕਰਲ ਤੋਂ ਪਹਿਲੇ ਬਾਈਟ ਤੱਕ ਦਾ ਸਮਾਂ, ਅਤੇ ਗਲਤੀਆਂ ਦੀ ਗਿਣਤੀ -bench.shਦੇ ਪੂਰਾ ਹੋਣ 'ਤੇ ਲਾਈਵ ਸਟ੍ਰੀਮ ਦੀ ਰਿਪੋਰਟ ਕਰਦਾ ਹੈ।

Java ਅਤੇ Kotlin ਕੰਪਾਇਲ ਕੀਤੇ ਅਤੇ ਸਕ੍ਰਿਪਟਿੰਗ ਰਨਟਾਈਮ ਦੇ ਨਾਲ ਬੈਠਦੇ ਹਨ ਤਾਂ ਕਿ JVM ਦੁਕਾਨਾਂ ਇਹ ਦੇਖ ਸਕਣ ਕਿ ਕਿਵੇਂ Javalin ਅਤੇ Ktor ਸਮਾਨ ਰੂਟਾਂ 'ਤੇ Go, Rust, Bun, ਅਤੇ FastAPI ਦੇ ਵਿਰੁੱਧ ਵਪਾਰ ਕਰਦੇ ਹਨ — ਹੱਥ-ਲਹਿਰ ਵਾਲੇ “ਐਂਟਰਪ੍ਰਾਈਜ਼ ਬਨਾਮ ਗ੍ਰੀਨਫੀਲਡ” ਬਿਰਤਾਂਤ ਦੇ ਵਿਰੁੱਧ ਨਹੀਂ। ਹਾਰਨੇਸਵਰਕਫਲੋ-ਉਦਾਹਰਨਾਂ/ਬੈਂਚਮਾਰਕਸ: Docker ਕੰਪੋਜ਼ ਸੇਵਾਵਾਂ, ਇੱਕ ਸ਼ੇਅਰਡwrkਪ੍ਰੋਫਾਈਲ (10 ਸਕਿੰਟ, 4 ਥ੍ਰੈਡ, 100 ਕਨੈਕਸ਼ਨ), ਅਤੇ ਡੈਸ਼ਬੋਰਡ ਦੁਆਰਾ ਖਪਤ ਕੀਤੇ JSON ਨਤੀਜਿਆਂ ਵਿੱਚ ਰਹਿੰਦਾ ਹੈ। ਤੁਸੀਂ ਇਸਨੂੰ ਆਪਣੇ ਖੁਦ ਦੇ ਉਮੀਦਵਾਰਾਂ ਅਤੇ ਗਰਮ ਮਾਰਗਾਂ ਲਈ ਫੋਰਕ ਕਰ ਸਕਦੇ ਹੋ.

ਇਹ ਇੱਕ ਫੈਸਲੇ ਦਾ ਫਰੇਮਵਰਕ ਕਿਉਂ ਹੈ, ਇੱਕ ਲੀਡਰਬੋਰਡ

ਨਹੀਂ

ਪੌਲੀਗਲੋਟ ਬੈਂਚਮਾਰਕ ਹਰ ਸਮੇਂ ਲਈ ਇੱਕ ਭਾਸ਼ਾ ਦਾ ਤਾਜ ਨਹੀਂ ਰੱਖਦੇ ਹਨ। ਵਿਜੇਤਾ ਪ੍ਰਤੀ ਟੈਸਟ ਕਤਾਰ ਬਦਲਦੇ ਹਨ — ਬਿਲਕੁਲ ਉਹੀ ਹੈ ਜੋ ਤੁਸੀਂ ਮਾਈਕ੍ਰੋ ਸਰਵਿਸਿਜ਼ ਡਿਜ਼ਾਈਨ ਕਰਨ ਵੇਲੇ ਚਾਹੁੰਦੇ ਹੋ। ਡੈਸ਼ਬੋਰਡ ਦਾ ਫੈਸਲਾ ਭਾਗ ਕੇਸਾਂ ਦੀ ਵਰਤੋਂ ਕਰਨ ਲਈ ਨਤੀਜਿਆਂ ਨੂੰ ਨਕਸ਼ੇ ਕਰਦਾ ਹੈ (ਲੁਆ/ਐਨਜੇਐਸ ਵਿੱਚ ਕਿਨਾਰੇ ਰੂਟਿੰਗ, ਰਸਟ/ਗੋ ਵਿੱਚ ਕੋਰ ਕਨਕਰੈਂਸੀ, Java/Kotlin ਵਿੱਚ JVM ਸੇਵਾਵਾਂ, Python ਵਿੱਚ ਵੇਗ)। ਇਹ ਥੀਸਿਸ ਹੈ:ਡਿਜ਼ਾਈਨ ਦੁਆਰਾਪੌਲੀਗਲੋਟ, ਰਾਏ ਦੀ ਬਜਾਏ ਆਰਕੀਟੈਕਚਰ ਸਮੀਖਿਆ ਬੋਰਡਾਂ ਲਈ ਡੇਟਾ ਦੇ ਨਾਲ।

Polyglot Benchmarks four-step approach: define workload, run harness, compare, decide
ਇੱਕ ਫਰੇਮ ਵਿੱਚ ਚਾਰ-ਪੜਾਅ ਪਹੁੰਚ: ਵਰਕਲੋਡ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰੋ, ਹਾਰਨੈੱਸ ਚਲਾਓ, ਲਾਈਵ ਡੈਸ਼ਬੋਰਡ 'ਤੇ ਤੁਲਨਾ ਕਰੋ, ਫਿਰ ਇੱਕ ADR ਨਾਲ ਫੈਸਲਾ ਕਰੋ।

ਪਲੇਟਫਾਰਮ ਅਤੇ ਇੰਜੀਨੀਅਰਿੰਗ ਲੀਡ

ਲਈ ਛੇ ਲਾਭ
  • ਰਾਏਬਾਰੇ ਸਬੂਤ — ADRs ਨਾਲ ਚਾਰਟ ਅਤੇ ਸੰਰਚਨਾ ਨੱਥੀ ਕਰੋ; ਮਾਪੀਆਂ ਦੌੜਾਂ ਨਾਲ ਸਟੈਕ ਬਹਿਸਾਂ ਦਾ ਨਿਪਟਾਰਾ ਕਰੋ।
  • ਵਰਕਲੋਡ-ਵਿਸ਼ੇਸ਼ ਜੇਤੂ— ਲੇਟੈਂਸੀ-ਸੰਵੇਦਨਸ਼ੀਲ ਮਾਰਗ ਬਨਾਮ ਬੈਚ ਬਨਾਮ ਐਜ ਟ੍ਰਾਂਸਫਾਰਮਸ ਬਨਾਮ JVM ਅਸਟੇਟ ਵੱਖ-ਵੱਖ ਲੀਡਰ ਪ੍ਰਾਪਤ ਕਰਦੇ ਹਨ।
  • ਮਲਕੀਅਤ ਦੀ ਕੁੱਲ ਲਾਗਤ— ਕੱਚਾ RPS ਕਾਫ਼ੀ ਨਹੀਂ ਹੈ; ਬਿਲਡ ਟਾਈਮ, ਚਿੱਤਰ ਦਾ ਆਕਾਰ, ਟੀਮ ਹੁਨਰ ਫਿੱਟ, ਅਤੇ ਓਪਸ ਬੋਝ ਦਾ ਤੋਲ ਕਰੋ।
  • ਰੀਪ੍ਰੋਡਿਊਸੀਬਲ ਵਰਕਫਲੋਜ਼— ਉਹੀ ਰੈਪੋ, ਉਹੀ ਕੰਪੋਜ਼ ਫਾਈਲ, ਉਹੀ wrk ਸਕ੍ਰਿਪਟ; CI ਵਿੱਚ ਮੁੜ ਚਲਾਉਣ ਯੋਗ।
  • ਜਾਇਜ਼ ਪੌਲੀਗਲੋਟ ਮਾਈਕ੍ਰੋਸਰਵਿਸਿਜ਼— ਬਿਨਾਂ ਸ਼ਰਮ ਜਾਂ ਹੈਰਾਨੀ ਦੇ ਪ੍ਰਤੀ ਸੇਵਾ ਸੀਮਾ ਵੱਖ-ਵੱਖ ਭਾਸ਼ਾਵਾਂ।
  • ਜੋਖਮ ਘਟਾਉਣਾ— ਇੱਕ ਸੰਗਠਨ-ਵਿਆਪਕ ਆਦੇਸ਼ ਤੋਂ ਪਹਿਲਾਂ ਰਨਰ-ਅੱਪ ਵਿੱਚ ਪ੍ਰੋਟੋਟਾਈਪ।

Polyglot benchmarks workflow from problem spec to ADR

ਤੇਜ਼ ਸ਼ੁਰੂਆਤ

  1. ਲਾਈਵ ਡੈਸ਼ਬੋਰਡਖੋਲ੍ਹੋ ਜਦੋਂ ਇੱਕ ਰਨ ਚੱਲ ਰਿਹਾ ਹੋਵੇ (ਜਾਂ ਇੱਕ ਸਥਾਨਕ ਤੌਰ 'ਤੇ ਸ਼ੁਰੂ ਕਰੋ)।
  2. ਕਲੋਨworkflow-examples,cd benchmarks,docker compose up— ਅੱਠ ਭਾਸ਼ਾ ਸੇਵਾਵਾਂ ਅਤੇ ਡੈਸ਼ਬੋਰਡ ਅਤੇ ਬੈਂਚ ਰਨਰ।
  3. ਡੈਸ਼ਬੋਰਡ ਵਾਲੀਅਮ 'ਤੇresults.jsonਪੜ੍ਹੋ ਅਤੇ ਜੇਤੂਆਂ ਨੂੰਕਰਨ ਲਈ ਆਪਣੀਆਂਵਰਕਲੋਡ ਕਤਾਰਾਂ ਦਾ ਨਕਸ਼ਾ ਬਣਾਓ।
  4. ADR ਲਿਖੋ — ਮਿਆਦ, ਥ੍ਰੈੱਡ, ਕਨੈਕਸ਼ਨ ਅਤੇ ਹਾਰਡਵੇਅਰ ਕਲਾਸ ਸ਼ਾਮਲ ਕਰੋ।

ਲੰਬਾ ਸੰਸਕਰਣ

ਪੜ੍ਹੋ

ਲੰਬੇ ਲੇਖਵਿੱਚ ਪੂਰੇ ਰੈਪੋ ਲੇਆਉਟ, ਇੱਕ ਮਾਪਦੰਡ ਸਾਰਣੀ, ਫੈਸਲਾ-ਮੈਟ੍ਰਿਕਸ ਚਿੱਤਰ, ਕੇਸ ਪੈਟਰਨ ਪ੍ਰਤੀ ਟੈਸਟ ਪਰਿਵਾਰ (ਜਾਵਾ ਅਤੇ Kotlin ਸਮੇਤ), ਐਂਟੀ-ਪੈਟਰਨ, ਸੀਮਾਵਾਂ, ਅਤੇ ਤੁਹਾਡੇ ARB ਨਾਲ ਸਾਂਝਾ ਕਰਨ ਲਈ SEO-ਤਿਆਰ ਸਨਿੱਪਟ ਸ਼ਾਮਲ ਹਨ।TenthMatrixਦੁਆਰਾ ਪ੍ਰਕਾਸ਼ਿਤ;polyglot-benchmarks.fictionally.org'ਤੇ ਹੋਸਟ ਕੀਤੀ ਬੈਂਚਮਾਰਕ ਸਾਈਟ।

#Rust #GoLang #Bunjs #Java #Kotlin #Lua #Python #njs #FastAPI #Javalin #Ktor #OpenResty #polyglot #benchmarks