মূল বিষয়বস্তুতে যান

ব্লগ

পলিগ্লট বেঞ্চমার্কস: সঠিক কাজের জন্য সঠিক টুল নির্বাচন করা

পলিগ্লট বেঞ্চমার্কগুলি কীভাবে আপনাকে প্রতিটি অ্যাপ্লিকেশনের জন্য সঠিক স্ট্যাক বাছাই করতে সহায়তা করে — সেগুলিকে শাসন করার জন্য একটি ভাষা নয়

  • Balinder Walia
  • 3 মিনিটে পড়া
  • 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), , X , XTAG3ct5X Run এর সাথে তুলনা করে Bun,Java (Javalin / Jetty), এবংKotlin (Ktor / Netty)সাতটি সিন্থেটিক পরীক্ষা জুড়ে যা বাস্তব API এবং প্রান্তের প্যাটার্নগুলিকে প্রতিফলিত করে: প্লেইন টেক্সট বেসলাইন, JSON ক্রমিককরণ, JSON ম্যানেজমেন্ট রিকোয়েস্ট, JSON ক্রমানুসারে, JSON, ম্যানেজমেন্ট ম্যানেজমেন্ট, এক্সপিআর-এক্স-এক্স-প্রস্তুতি পরিদর্শন, অভ্যন্তরীণ সাবরিকোয়েস্ট + ট্রান্সফর্ম এবং রাউটিং লজিক। প্রতিটি পরীক্ষা প্রতি সেকেন্ডে অনুরোধের প্রতিবেদন করে, গড় এবং টেল লেটেন্সি (P99 সহ), কার্ল থেকে প্রথম বাইট পর্যন্ত সময় এবং ত্রুটির সংখ্যা —bench.shসম্পূর্ণ হওয়ার সাথে সাথে লাইভ স্ট্রিম করা হয়।

Java এবং Kotlin সংকলিত এবং স্ক্রিপ্টিং রানটাইমগুলির পাশাপাশি বসে যাতে JVM শপগুলি দেখতে পারে কিভাবে Javalin এবং Ktor অভিন্ন রুটে Go, Rust, Bun, এবং FastAPI-এর বিরুদ্ধে বাণিজ্য করে — হাতে-তরঙ্গিত "এন্টারপ্রাইজ বনাম গ্রীনফিল্ড" বর্ণনার বিরুদ্ধে নয়। জোতাওয়ার্কফ্লো-উদাহরণ/বেঞ্চমার্ক: Docker রচনা পরিষেবা, একটি শেয়ার করাwrkপ্রোফাইল (10 সেকেন্ড, 4 থ্রেড, 100 সংযোগ), এবং ড্যাশবোর্ড দ্বারা ব্যবহৃত JSON ফলাফলগুলিতে থাকে৷ আপনি আপনার নিজের প্রার্থী এবং গরম পাথ জন্য এটি কাঁটাচামচ করতে পারেন.

কেন এটি একটি সিদ্ধান্ত কাঠামো, লিডারবোর্ড নয়

৷

পলিগ্লট বেঞ্চমার্ক সব সময়ের জন্য একটি ভাষাকে মুকুট দেয় না। প্রতি পরীক্ষার সারিতে বিজয়ীদের পরিবর্তন হয় — মাইক্রোসার্ভিস ডিজাইন করার সময় আপনি ঠিক যা চান। ড্যাশবোর্ডের রায় বিভাগটি কেসগুলি ব্যবহার করার জন্য ফলাফলগুলি ম্যাপ করে (Lua/njs-এ প্রান্ত রাউটিং, মরিচা/গোতে কোর কনকারেন্সি, Java/Kotlin-এ JVM পরিষেবা, Python-এ বেগ)। এটি হল থিসিস:ডিজাইনদ্বারা পলিগ্লট, মতামতের পরিবর্তে স্থাপত্য পর্যালোচনা বোর্ডের জন্য ডেটা সহ।

Polyglot Benchmarks four-step approach: define workload, run harness, compare, decide
একটি ফ্রেমে চার-পদক্ষেপ পদ্ধতি: কাজের চাপ সংজ্ঞায়িত করুন, জোতা চালান, লাইভ ড্যাশবোর্ডে তুলনা করুন, তারপর একটি ADR দিয়ে সিদ্ধান্ত নিন।

প্ল্যাটফর্ম এবং ইঞ্জিনিয়ারিং লিড

এর জন্য ছয়টি সুবিধা
  • মতামতের উপর প্রমাণ— ADR-এর সাথে চার্ট এবং কনফিগারেশন সংযুক্ত করুন; পরিমাপ রান সঙ্গে স্ট্যাক বিতর্ক নিষ্পত্তি.
  • ওয়ার্কলোড-নির্দিষ্ট বিজয়ী— লেটেন্সি-সংবেদনশীল পাথ বনাম ব্যাচ বনাম প্রান্ত রূপান্তর বনাম 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