প্রোগ্রাম অপ্টিমাইজেশান

উইকিপিডিয়া, মুক্ত বিশ্বকোষ থেকে

কম্পিউটার বিজ্ঞানে "প্রোগ্রামের সর্বোচ্চ অনুকূলকরণ" বা "সফ্টওয়্যারের সর্বোচ্চ অনুকূলকরণ" (Software optimization) বলতে একটি সফটওয়্যার ব্যবস্থাকে এমনভাবে পরিবর্তন করার প্রক্রিয়াকে বোঝায় যা কাজের কিছু দিককে আরও কার্যকরী করে তুলে কিংবা কম সম্পদ ব্যবহার করে। সাধারণত একটি কম্পিউটার প্রোগ্রাম সর্বোচ্চ অনুকূল করা হয় যাতে এটি আরো দ্রুত নির্বাহ হয় অথবা কম্পিউটার স্মৃতির আধার (মেমোরি স্টোরেজ) বা অন্যান্য সম্পদদের কম ব্যবহার এবং কম শক্তি ব্যবহার করে কার্য পরিচালনা করতে সক্ষম হয়।

সাধারণ পরিচিতি[সম্পাদনা]

যথার্থভাবে সর্বোত্তম অনুকূল ব্যবস্থা তৈরি করা এই প্রক্রিয়ার মাধ্যমে পাওয়া বিরল ব্যাপার। সর্বোচ্চ অনুকূলকরণ প্রক্রিয়া সাধারণত শুধুমাত্র একটি অ্যাপ্লিকেশন বা একজন ব্যবহারকারীর জন্য অনুকূল হয়। একজন সময়ের পরিমাণ কমিয়ে দিতে পারে যা দ্বারা প্রোগ্রামটি আরো মেমোরির ব্যবহার করে কিছু কাজ সম্পন্ন করে। এমন একটি অ্যাপ্লিকেশন যেখানে কম্পিউটার স্মৃতি বা মেমরির আয়তন বিরল থাকে, সেখানে কম মেমরি ব্যবহারের জন্য একজন ইচ্ছাকৃতভাবে একটি ধীর আলগোরিদম বেছে নিতে পারে। বেশিরভাগ ক্ষেত্রে একই জিনিস সব ক্ষেত্রেই ভাল কাজ করে এমন হয় না, তাই ইঞ্জিনিয়াররা সর্বাধিক আগ্রহের বিষয়গুলোকে সর্বোচ্চ অনুকূল করতে চেষ্টা করে। উপরন্তু, একটি সফটওয়্যারকে সম্পূর্ণরূপে অনুকল করার জন্য প্রচেষ্টার প্রয়োজন - এমন ক্ষেত্রে দেখা যায় আরও উন্নতি করতে অক্ষম হয়ে পরে - প্রায় সবগুলি উপভোগের সুবিধাগুলির জন্য এটি যুক্তিসংগত; তাই সর্বোচ্চ অনুকূলকরণ প্রক্রিয়াটিকে সম্পূর্ণরূপে অনুকূল সমাধান পৌঁছানোর আগে থামানো যেতে পারে। সৌভাগ্যবশত, এটা প্রায়ই এমন হয় যে সর্বাধিক উন্নতি প্রক্রিয়ার প্রথম দিকে আসে।

সর্বোচ্চ অনুকূলকরণের স্তরসমূহ[সম্পাদনা]

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