বেঞ্চমার্ক বিল্ডার

বেশ কয়েকটি বাস্তবায়নের raw টাইমিং পেস্ট করুন এবং একটি তুলনা টেবিলে গড়, মধ্যমা, স্ট্যান্ডার্ড ডেভিয়েশন, সর্বনিম্ন, সর্বোচ্চ ও আপেক্ষিক গতি পান, সাথে যেকোনো জায়গায় পেস্ট করার জন্য একটি Markdown সংস্করণ।

এক গাদা টাইমিংকে তুলনা টেবিলে রূপান্তর করুন। প্রতি লাইনে একটি স্যুট, একটি লেবেল, একটি কোলন, তারপর আপনার raw মাপ। এটি সাধারণ পরিসংখ্যান গণনা করে, সবকিছু দ্রুততমের বিপরীতে র্যাংক করে এবং পুল-রিকোয়েস্টের জন্য আপনাকে একটি Markdown টেবিল দেয়।

প্রতি লাইনে একটি স্যুট "name: value, value, value" আকারে। কমা, সেমিকোলন বা স্পেস সবই বিভাজক হিসেবে কাজ করে।

স্যুট রান গড় মধ্যমা স্ট্যান্ডার্ড ডেভিয়েশন সর্বনিম্ন সর্বোচ্চ আপেক্ষিক

তুলনা দেখতে "name: 1, 2, 3" আকারে অন্তত একটি লাইন যোগ করুন।

প্রতারিত না হয়ে একটি বেঞ্চমার্ক টেবিল পড়া

গড় এবং মধ্যমা একটি কারণে ভিন্নমত পোষণ করে

টেবিলটি উভয়ই দেখায়, এবং এদের মধ্যে ব্যবধানই প্রথম দেখার বিষয়। গড় মধ্যমার অনেক উপরে বসে থাকলে, অল্প সংখ্যক ধীর রান গড়কে টেনে তুলছে - একটি গার্বেজ কালেকশন বিরতি, ক্যাশ মিস ঝড়, অপারেটিং সিস্টেম আপনার কোর-এ অন্য কিছু শিডিউল করার সিদ্ধান্ত। মধ্যমা সেগুলো উপেক্ষা করে; গড় করে না।

কোনোটিই স্বয়ংক্রিয়ভাবে উদ্ধৃত করার সঠিকটি নয়। স্থির-অবস্থা থ্রুপুটের জন্য সার্ভার সাইজ করছেন? গড়টিই গুরুত্বপূর্ণ, কারণ সেই ধীর রানগুলো সত্যিই সময় খরচ করে। কোন অ্যালগরিদম ভালো তা সিদ্ধান্ত নিতে দুটি বাস্তবায়ন তুলনা করছেন? মধ্যমা সাধারণত আরও ন্যায্য সংখ্যা, কারণ আউটলায়ারগুলো আপনার কোড নয়, আপনার মেশিন মাপছে। আপনি যা নিয়ে আসলে যুক্তি করছেন তা উদ্ধৃত করুন, এবং এটি কোনটি তা বলুন।

স্ট্যান্ডার্ড ডেভিয়েশন বলে তুলনা বাস্তব কিনা

গড়ের পার্থক্য তখনই কিছু বোঝায় যখন এটি বিস্তারের সাপেক্ষে বড়। 0.05 স্ট্যান্ডার্ড ডেভিয়েশনসহ 12.0 এবং 12.4 মিলিসেকেন্ডের দুটি স্যুট সত্যিই ভিন্ন। একই দুটি গড় 3.0 স্ট্যান্ডার্ড ডেভিয়েশনসহ একই সংখ্যা, ভিন্ন টুপি পরা, এবং এগুলো থেকে আঁকা যেকোনো সিদ্ধান্ত কোলাহল।

এই টুলটি স্যাম্পল স্ট্যান্ডার্ড ডেভিয়েশন ব্যবহার করে, n-1 দিয়ে ভাগ করে, n দিয়ে নয়। এখানে এটিই সঠিক পছন্দ: আপনার রানগুলো সম্ভাব্য সব রানের জনসংখ্যা থেকে আঁকা একটি স্যাম্পল, সম্পূর্ণ জনসংখ্যা নয়, এবং n দিয়ে ভাগ করলে বিস্তার নিয়মতান্ত্রিকভাবে কম অনুমান হবে। একক রানে গণনা করার মতো বিস্তার থাকে না, তাই কলামটি শূন্য পড়ে - যা একটি অনুস্মারক যে এক মাপ বেঞ্চমার্ক নয়।

আপেক্ষিক গতি সেই সংখ্যা যা মানুষ মনে রাখে

শেষ কলামটি প্রতিটি স্যুটকে দ্রুততমের গুণিতক হিসেবে প্রকাশ করে, কারণ ফলাফল সাধারণত এই ফর্মে পুনরাবৃত্তি হয়। "নতুন পার্সার 2.4x দ্রুত" ছড়ায়; "নতুন পার্সার গড় 8.2 মিলিসেকেন্ড" ছড়ায় না, যদি না শ্রোতা ইতিমধ্যে বেসলাইন জানে।

দুটি সতর্কতা। প্রথমত, অনুপাতটি এর পিছনের দুটি গড়ের সমস্ত অনিশ্চয়তা উত্তরাধিকার করে, তাই শোরগোল ডেটায় 1.05x পার্থক্য আদৌ পার্থক্য নয়। দ্বিতীয়ত, গড়ের অনুপাত অনুপাতের গড়ের মতো নয়, এবং রানগুলো আকারে অনেকটা ভিন্ন হলে দুটি ভিন্ন দিকে ইঙ্গিত করতে পারে। সংখ্যাগুলো কাছাকাছি হলে, অনুপাতের পাশাপাশি বিস্তারও রিপোর্ট করুন এবং পাঠককে বিচার করতে দিন।

সম্পূর্ণ আপনার ব্রাউজারে প্লেইন JavaScript দিয়ে চলে - কোনো লাইব্রেরি, আপলোড বা ট্র্যাকিং নেই।

সচরাচর জিজ্ঞাসিত প্রশ্ন

মাপগুলো কোন ফরম্যাটে হওয়া দরকার?
প্রতি লাইনে একটি স্যুট: একটি লেবেল, একটি কোলন, তারপর সংখ্যাগুলো। কমা, সেমিকোলন, স্পেস এবং ট্যাব সবই বিভাজক হিসেবে গণ্য, তাই বেশিরভাগ কপি-পেস্ট করা আউটপুট সম্পাদনা ছাড়াই কাজ করে।
ইউনিট সিলেক্টর কি কিছু রূপান্তর করে?
না। এটি শুধু আউটপুট লেবেল দেয়। পরিসংখ্যান সংখ্যার উপর ঠিক যেমন টাইপ করা হয়েছে তেমনই গণনা হয়, তাই পৃষ্ঠার সব স্যুট একই ইউনিটে থাকা দরকার।
একক রানে স্ট্যান্ডার্ড ডেভিয়েশন শূন্য কেন?
স্যাম্পল স্ট্যান্ডার্ড ডেভিয়েশন n-1 দিয়ে ভাগ করে, যা n এক হলে শূন্য। একটি মাপের রিপোর্ট করার মতো কোনো বিস্তার নেই, এবং শূন্য ইঙ্গিত দেয় আপনার আরও রান সংগ্রহ করা উচিত।
"relative" কীভাবে গণনা হয়?
প্রতিটি স্যুটের গড় পৃষ্ঠার ক্ষুদ্রতম গড় দিয়ে ভাগ হয়। দ্রুততম স্যুটটিকে লেবেল দেওয়া হয় 1.00x দেখানোর বদলে, কারণ রপ্তানি টেবিলে এটি ভালো পড়ে।
আমি কি সরাসরি বেঞ্চমার্কিং টুল থেকে আউটপুট পেস্ট করতে পারি?
সাধারণত। প্রতিটি লাইনে একটি নাম, একটি কোলন এবং কিছু সংখ্যা থাকলে, অতিরিক্ত বিরামচিহ্ন বিভাজক হিসেবে গণ্য হয়। কোলন ছাড়া লাইনগুলো ত্রুটি না করে বাদ দেওয়া হয়।
Markdown টেবিলটি কি পুল-রিকোয়েস্টে পেস্ট করা নিরাপদ?
হ্যাঁ - এটি একটি হেডার সারি এবং একটি বিভাজক সারিসহ প্লেইন GitHub-ফ্লেভার্ড Markdown। কলাম হেডার পৃষ্ঠার ভাষা অনুসরণ করে, তাই ইংরেজিতে চাইলে আগে ভাষা পরিবর্তন করুন।