আমি লুপ আনরোলিং করে কিছু চূড়ান্ত পারফরম্যান্স-সমালোচনামূলক কোডটি (একটি দ্রুত সাজানোর অ্যালগরিদম যা মন্টে কার্লো সিমুলেশনের ভিতরে লক্ষ লক্ষ লক্ষ লক্ষ বলা হয়ে থাকে) অপ্টিমাইজ করার চেষ্টা করছি। এখানে অভ্যন্তরীণ লুপটি আমি দ্রুত করার চেষ্টা করছি:
// Search for elements to swap.
while(myArray[++index1] < pivot) {}
while(pivot < myArray[--index2]) {}
আমি এই জাতীয় কিছুতে তালিকাভুক্ত করার চেষ্টা করেছি:
while(true) {
if(myArray[++index1] < pivot) break;
if(myArray[++index1] < pivot) break;
// More unrolling
}
while(true) {
if(pivot < myArray[--index2]) break;
if(pivot < myArray[--index2]) break;
// More unrolling
}
এটি একেবারে কোনও পার্থক্য তৈরি করে নি তাই আমি এটিকে আরও পঠনযোগ্য ফর্মটিতে ফিরিয়ে আনি। আমি লুপ আনরোলিংয়ের চেষ্টা করেছি অন্যান্য বারও একই রকম অভিজ্ঞতা। আধুনিক হার্ডওয়্যারগুলিতে শাখার ভবিষ্যদ্বাণীকারীদের গুণমান দেওয়া, কখন, যদি কখনও লুপটি এনআরোলিং করা একটি কার্যকর অপ্টিমাইজেশন হয়?