জাভা হটস্পটের নির্মাতাদের কাছ থেকে মাইক্রো বেনমার্ক লেখার বিষয়ে পরামর্শ :
বিধি 0: জেভিএম এবং মাইক্রো-বেঞ্চমার্কিং এর একটি নামী কাগজ পড়ুন। একটি ভাল একটি ব্রায়ান গোয়েজ, 2005 । মাইক্রো-বেঞ্চমার্ক থেকে খুব বেশি আশা করবেন না; তারা কেবলমাত্র JVM কর্মক্ষমতা বৈশিষ্ট্যের একটি সীমিত পরিসর পরিমাপ করে।
বিধি 1: সর্বদা একটি ওয়ার্মআপ পর্ব অন্তর্ভুক্ত করুন যা আপনার পরীক্ষার কার্নেলটি পুরো পথে চালায়, সময় পর্ব (গুলি) এর আগে সমস্ত সূচনা এবং সংকলনগুলি ট্রিগার করার জন্য যথেষ্ট। (ওয়ার্মআপ পর্বে কম পুনরাবৃত্তি ঠিক আছে thumb থাম্বের বিধিটি কয়েক হাজার হাজার অভ্যন্তরীণ লুপের পুনরাবৃত্তিগুলি)
রুল 2: সর্বদা দিয়ে চালানো -XX:+PrintCompilation
, -verbose:gc
,, ইত্যাদি যাতে আপনি যাচাই করতে পারেন যে কম্পাইলার এবং জেভিএম অন্যান্য অংশে আপনার সময়জ্ঞান সময়ে অপ্রত্যাশিত কাজ করছেন না।
বিধি ২.১: সময় ও ওয়ার্মআপ পর্যায়ের শুরু এবং শেষে বার্তা মুদ্রণ করুন, যাতে আপনি যাচাই করতে পারবেন যে সময়কালের সময় বিধি 2 থেকে কোনও আউটপুট নেই।
রুল 3: মধ্যে পার্থক্য সচেতন হতে হবে -client
এবং -server
এবং OSR এবং নিয়মিত সংকলন। -XX:+PrintCompilation
পতাকা একটি অ্যাট চিহ্ন দিয়ে OSR সংকলন রিপোর্ট উদাহরণস্বরূপ, অ প্রাথমিক এন্ট্রি পয়েন্ট বোঝাতে: Trouble$1::run @ 2 (41 bytes)
। আপনি সর্বোত্তম পারফরম্যান্সের পরে থাকলে ক্লায়েন্টকে সার্ভার এবং ওএসআর-এ নিয়মিত পছন্দ করুন।
বিধি 4: আরম্ভের প্রভাব সম্পর্কে সচেতন হন। আপনার টাইমিং পর্বে প্রথমবার মুদ্রণ করবেন না, যেহেতু প্রিন্টিং লোড এবং ক্লাস আরম্ভ করে initial ওয়ার্মআপ পর্বের (বা চূড়ান্ত প্রতিবেদনের পর্যায়ে) বাইরে নতুন ক্লাসগুলি লোড করবেন না, যদি না আপনি নির্দিষ্টভাবে ক্লাস লোডিং পরীক্ষা করে নিচ্ছেন (এবং সেক্ষেত্রে কেবল পরীক্ষার ক্লাস লোড করুন)। এই জাতীয় প্রভাবের বিরুদ্ধে বিধি 2 আপনার প্রতিরক্ষা প্রথম লাইন।
বিধি 5: ডিওপিমাইজেশন এবং পুনঃসংশোধনের প্রভাব সম্পর্কে সচেতন হন। টাইমিং পর্বে প্রথমবারের মতো কোনও কোড পাথ গ্রহণ করবেন না, কারণ সংকলকটি কোডটি আবর্জনা ও পুনঃসংযোগ করতে পারে, পূর্ববর্তী আশাবাদী অনুমানের ভিত্তিতে যে পথটি মোটেও ব্যবহৃত হচ্ছে না। এই জাতীয় প্রভাবের বিরুদ্ধে বিধি 2 আপনার প্রতিরক্ষা প্রথম লাইন।
বিধি 6: সংকলকের মন পড়তে উপযুক্ত সরঞ্জামগুলি ব্যবহার করুন এবং এটি উত্পন্ন কোডটি দেখে অবাক হওয়ার আশা করে expect কোনও কিছুর দ্রুত বা ধীর করে তোলে সে সম্পর্কে তত্ত্বগুলি গঠনের আগে কোডটি নিজেই পরীক্ষা করুন।
বিধি 7: আপনার পরিমাপের শব্দ কমিয়ে দিন। একটি নিখুঁত মেশিনে আপনার মানদণ্ড চালান, এবং বহিরাগতদের এড়িয়ে কয়েকবার চালান। -Xbatch
অ্যাপ্লিকেশনটির সাথে সংকলকটি সিরিয়ালাইজ করতে ব্যবহার করুন এবং সংকলকটিকে -XX:CICompilerCount=1
নিজের সাথে সমান্তরালে চলতে বাধা দিতে সেটিং বিবেচনা করুন । জিসি ওভারহেড হ্রাস করতে আপনার যথাসাধ্য চেষ্টা করুন, Xmx
সমান (যথেষ্ট বড়) সমপরিমাণ Xms
এবং UseEpsilonGC
এটি উপলভ্য থাকলে ব্যবহার করুন ।
বিধি 8: আপনার বেনমার্কের জন্য একটি গ্রন্থাগার ব্যবহার করুন কারণ এটি সম্ভবত আরও দক্ষ এবং ইতিমধ্যে এই একমাত্র উদ্দেশ্যে ডিবাগ করা হয়েছিল। যেমন জাভা জন্য জেএমএইচ , ক্যালিপার বা বিল এবং পলের দুর্দান্ত ইউসিএসডি বেঞ্চমার্ক ।