এটি প্রসঙ্গনির্ভর হবে।
"একটি চতুর্ভুজ রানটাইম পারফরম্যান্স বাগ ঠিক করা" সাধারণত আমি যা দেখি। যাইহোক, এটি নির্ধারণের যোগ্য কিনা (কোনও কোড পরিবর্তন) প্রসঙ্গ নির্ভর।
মনে রাখবেন যে ডাটাবেসগুলি সময়ের জটিলতা উন্নত করতে প্রচুর সরঞ্জাম সরবরাহ করে। উদাহরণস্বরূপ, একটি ডাটাবেস থেকে শীর্ষ এন ফলাফল পেতে, শুধু তাই বলুন। অকার্যকর কলডেজটি অন্তর্নির্মিত অনুকূলিত কলগুলিতে রূপান্তর করার সময়, ব্যাখ্যা অতিমাত্রায় মনে হয়।
কোড পুনর্বিবেচনার (আলোচনার) প্রাপ্য হওয়ার জন্য আমি চতুর্ভুজ রানটাইম সহ একটি অ্যালগরিদম বিবেচনা করার কারণটি এতটা ধীরে ধীরে নয় (ধীর তুলনামূলক; ক্ষুদ্রতর তুলনামূলকভাবে চতুর্ভুজ দ্রুত হয়) তবে মানবিক অন্তর্দৃষ্টি (যেমন আপনার গ্রাহক, বা সহকর্মী প্রোগ্রামারগণ) প্রতিদিনের জীবন থেকে প্রত্যাশার মিশ্রণের কারণে লাইনারি রানটাইম থেকে অনেক দূরে সরে যাওয়া এমন একটি সফ্টওয়্যার কার্যকারিতা নিয়ে সহজাত অস্বস্তিকর।
সফ্টওয়্যার কর্মক্ষমতা সম্পর্কে প্রচুর গ্রাহকের অভিযোগ এই দুটি বিভাগের মধ্যে পড়ে:
সম্পূর্ণ সিস্টেম (সফ্টওয়্যার এবং হার্ডওয়্যার) আনুমানিক ব্যবহারের ভিত্তিতে নির্দিষ্ট করা হয়েছিল। গত সপ্তাহে, সবকিছু ঠিকঠাক হয়, একটি নির্দিষ্ট কার্যকারিতা 5 সেকেন্ডেরও কম সময় নেয়। এই সপ্তাহে, একটি আপডেট ইনস্টল করার পরে, একই কার্যকারিতাটি 1 মিনিটেরও বেশি সময় নেয়।
- এটি পূর্ববর্তী মানদণ্ডের পারফরম্যান্সের সাথে তুলনা। গ্রাহক ভবিষ্যতের কর্মক্ষমতা একটি মানব সময়-স্কেলের (সেকেন্ড থেকে মিনিট) এর পরম ইয়ার্ডস্টিকের কাছে ধারণ করে।
আমি সিস্টেমে 100 টি কাজ জমা দিয়েছি। একক কাজের জন্য যে সময় লাগে তার তুলনায় এটি কেন 400x প্রক্রিয়া করতে সময় নিচ্ছে?
- গ্রাহক প্রসেসিংয়ের সময়টি লিনিয়ার হওয়ার প্রত্যাশা করে। আসলে, গ্রাহক বুঝতে বা গ্রহণ করতে পারবেন না যে লিনিয়ারের চেয়ে ধীর গতির কার্য রয়েছে tasks
এই কারণে, কোনও গ্রাহক উভয়ই সত্য হলে কার্যকর করার সময়টিকে বাগ হিসাবে বিবেচনা করবে:
- রৈখিক চেয়ে ধীর
- লক্ষণীয় (যেমন টিপিক্যাল টাস্ক মাপের পরে মানব সময়সীমার মধ্যে পড়ে (সেকেন্ড বা মিনিটের চেয়ে বেশি দীর্ঘ))
আইনী যুক্তি যা ব্যাখ্যা করে যে চতুর্ভুজ রানটাইম অ্যালগরিদম কোনও সমস্যা সৃষ্টি করে না (যেমন কোনও কোড পরিবর্তনের যোগ্য নয়):
- এই চতুর্ভুজ রানটাইম ফাংশন দ্বারা সাধারণত পরিচালিত কাজের আকারটি কিছুটা সীমাবদ্ধ
- সাধারণ আকারের পরিসীমা দেওয়া, প্রকৃত (পরম) মৃত্যুর সময়টি বরখাস্ত করার জন্য এখনও যথেষ্ট ছোট
- যদি কোনও ব্যবহারকারী প্রকৃতপক্ষে এমন কোনও কাজটি জমা দেওয়ার চেষ্টা করে যা যথেষ্ট পরিমাণে লক্ষণীয় হয় তবে ব্যবহারকারী দীর্ঘকাল চলমান সময় সম্পর্কে একটি বার্তা গ্রহণ করবে
- সিস্টেমের ব্যবহারকারীরা সকলেই বিশেষজ্ঞ, তাই তারা জানেন যে তারা কী করছেন। উদাহরণস্বরূপ, একটি এপিআই এর ব্যবহারকারীদের এপিআই ডকুমেন্টেশনে সূক্ষ্ম মুদ্রণটি পড়া উচিত ছিল।
টিপিক্যাল অ্যাপ্লিকেশন বিকাশের জন্য দরকারী প্রচলিত অ্যালগরিদম আসলে লিনিয়ারের তুলনায় ধীর (বেশিরভাগ ও (এন লগ এন), বাছাই করার ক্ষেত্রে), সুতরাং বড় আকারের সফ্টওয়্যার আসলে এটির চেষ্টা করার চেষ্টা করবে, কেবল প্রাসঙ্গিক অংশটিকে বাছাই করে ডেটা, বা হিস্টগ্রাম (পরিসংখ্যান) ফিল্টারিং কৌশলগুলি ব্যবহার করুন যা অনুরূপ প্রভাব অর্জন করে।
এটি সফ্টওয়্যার গ্রাহকদের ক্ষেত্রে প্রযোজ্য, তবে আপনি যদি কোনও সফ্টওয়্যার লাইব্রেরি বা এপিআই ফাংশনের ব্যবহারকারীদের পাশাপাশি "গ্রাহক" হিসাবে বিবেচনা করেন তবে উত্তরটি এখনও প্রযোজ্য হবে।