কম্পিউটার টিউটোরিয়াল

Windows 10-এ System.Diagnostics.StackFrame পারফরম্যান্স ডিগ্রেড সমাধান

আপনি যদি Windows 10 বা .NET Framework 4.7.1-এ আপগ্রেড করার পর লক্ষ্য করেন যে System.Diagnostics.StackFrame ক্লাস ব্যবহার করা .NET Framework অ্যাপ্লিকেশন চালালে পারফরম্যান্সে উল্লেখযোগ্য হ্রাস হয়েছে, তবে এই পোস্ট আপনাকে আকৃষ্ট করতে পারে। আমরা কারণটি দেখব, এবং তারপর এই এররের পরিচিত ফিক্সগুলো অফার করব।

System.Diagnostics.StackFrame পারফরম্যান্স ডিগ্রেড

Windows 10-এ System.Diagnostics.StackFrame পারফরম্যান্স ডিগ্রেড সমাধান

.NET Framework 4.7 বা তার পূর্ববর্তী ভার্সনগুলোতেقبولযোগ্য পারফরম্যান্সে chạy হয়ে থাকা একটি অ্যাপ্লিকেশন .NET Framework 4.7.1-এ চালালে ধীরগতিতে এক্সিকিউট হয়। অ্যাপ্লিকেশনগুলো সাধারণত .NET এক্সেপশন থ্রো করার সময় StackFrame-এ নির্ভর করে। যদি এটি উচ্চ হার (≥10 incidents/second)-এ হয়, তবে অ্যাপ্লিকেশনগুলো উল্লেখযোগ্যভাবে (দশগুণ) ধীর হয়ে যায় এবং এর আগের চেয়ে স্লো রান করে।

System.Diagnostics.StackFrame পারফরম্যান্স ডিগ্রেডের কারণ

Windows 10-এ .NET Framework 4.7.1 পোর্টেবল PDB ফাইল ফরম্যাট ডিটেক্ট এবং পার্স করার সাপোর্ট যোগ করে যাতে স্ট্যাক ট্রেসে ফাইল এবং লাইন নম্বর ইনফরমেশন দেখানো যায়। এই পরিবর্তনের অংশ হিসেবে, স্ট্যাক ট্রেসের প্রতিটি ফাংশনের ডিফাইনিং মডিউল চেক করা হয় সেটি পোর্টেবল PDB ফরম্যাট ব্যবহার করে কিনা তা নির্ধারণ করতে। ইন্টারনাল ক্যাশিং পলিসির কিছু পার্থক্যের কারণে, রানটাইম পোর্টেবল PDB খুঁজে বের করার জন্য পূর্বের .NET Framework ভার্সনগুলোর চেয়ে অনেক বেশি সময় ব্যয় করে যা ক্লাসিক Windows PDB খুঁজে বের করতে ব্যয় করত।

এটি ফরম্যাটেড স্ট্যাক ট্রেসগুলো আগের চেয়ে ধীরগতিতে তৈরি হওয়ায় হয়।

এই ইস্যু এক্সেপশন থ্রো করার সংখ্যা পরিবর্তন করে না। তবে, এটি অ্যাপ্লিকেশনগুলোর সেই এক্সেপশনগুলো হ্যান্ডল করার ক্ষমতা উল্লেখযোগ্যভাবে কমিয়ে দেয়।

IKVM লাইব্রেরি ব্যবহার করা অ্যাপ্লিকেশনগুলো এই ইস্যু দ্বারা আক্রান্ত হতে পারে যদি সেগুলো অ্যাসেমব্লি প্রোব করে। অ্যাসেমব্লি প্রোবিং এক্সেপশন ঘটাতে পরিচিত।

System.Diagnostics.StackFrame পারফরম্যান্স ডিগ্রেড ইস্যু ফিক্স করুন

এই ইস্যু সমাধানের জন্য মাইক্রোসফট নিচের যেকোনো একটি মেথড ব্যবহার করার পরামর্শ দেয়।

১] StackFrame-র জন্য ভিন্ন কনস্ট্রাক্টর ব্যবহার করুন যা Boolean আর্গুমেন্ট নেয়

এটি পছন্দসই সমাধান।

যদি অ্যাপ্লিকেশন ডেভেলপাররা তাদের অ্যাপ্লিকেশনে পরিবর্তন আনতে পারেন, তবে System.Diagnostics.StackTrace.#ctor(Boolean) কনস্ট্রাক্টরকে false আর্গুমেন্ট দিয়ে কল করুন যাতে সোর্স ইনফরমেশন ক্যাপচার না হয়। এটি কোডের সেই অংশটি এড়িয়ে যায় যেখানে পারফরম্যান্স হ্রাস হয়।

২] পূর্বের ভার্সনে রোলব্যাক বা সর্বশেষ Windows 10 ভার্সনে আপগ্রেড করুন

এই মেথডে, আপনি যদি এই ইস্যু সম্মুখীন হন এবং বর্তমানে Windows 10-এর সর্বশেষ ভার্সন রান করছেন না, তবে পূর্বের ভার্সন/বিল্ডে রোলব্যাক করুন বা সর্বশেষ ভার্সন/বিল্ডে আপগ্রেড করুন। এছাড়া .NET Framework 4.7.1 যদি থাকে, তবে আপনার কম্পিউটার থেকে আনইনস্টল করুন এবং তারপর .NET Framework-এর পূর্বের ভার্সন বা সর্বশেষ ভার্সন ডাউনলোড ও ইনস্টল করুন।

আশা করি এটি সাহায্য করবে!

Windows 10-এ System.Diagnostics.StackFrame পারফরম্যান্স ডিগ্রেড সমাধান
  1. সমাধান: এই অপারেটিং সিস্টেমে .NET Framework 4.7 সাপোর্টেড নয়

  2. উইন্ডোজ ১০-এ .NET Framework 3.5-এ ডাউনগ্রেড করার পদ্ধতি

  3. ভিন্ডোজ ১১ পারফরম্যান্স বাড়ানোর জন্য টপ ৫ CCleaner অল্টার্নেটিভ

  4. Advanced System Optimizer দিয়ে উইন্ডোজ স্পিড বাড়ান – প্রমাণিত পারফরম্যান্স গেইন