in
রেফারেন্স দ্বারা পাস করা যুক্তিগতভাবে মান দ্বারা পাস করার সমতুল্য বলে মনে হচ্ছে।
সঠিক।
কিছু কার্যকারিতা সুবিধা আছে?
হ্যাঁ.
এটি আমার বিশ্বাস ছিল যে জিনিসগুলির পিছনের দিকে, কোনও ref
প্যারামিটারের অবশ্যই কমপক্ষে ভেরিয়েবলের শারীরিক ঠিকানাটি অনুলিপি করতে হবে, যা কোনও সাধারণ বস্তুর রেফারেন্সের মতো একই আকারের হওয়া উচিত।
একটা নয় প্রয়োজন যে একটি পরিবর্তনশীল একটি বস্তু একটি রেফারেন্স এবং একটি রেফারেন্স উভয় একই আকারের হবে, এবং সেখানে একটি নয় প্রয়োজন যে হয় একটি মেশিন শব্দের আকার বাস্তবে, তবে হ্যাঁ, উভয়ই চালু 32 32 বিট বিট মেশিন এবং 64 বিট মেশিনে 64 বিট 64
"শারীরিক ঠিকানা" এর সাথে আপনার কী সম্পর্ক রয়েছে বলে আপনি মনে করেন তা আমার কাছে অস্পষ্ট। উইন্ডোজে আমরা ব্যবহারকারীর মোড কোডে কোনও প্রকৃত ঠিকানা নয়, ভার্চুয়াল ঠিকানা ব্যবহার করি । কোন সম্ভাব্য পরিস্থিতিতে আপনি কল্পনা করবেন যে কোনও সি # প্রোগ্রামে কোনও শারীরিক ঠিকানা অর্থবহ, আমি তা জানতে আগ্রহী।
এখানে একটা নয় প্রয়োজন যে কোনো ধরনের একটি রেফারেন্স সঞ্চয়ের ভার্চুয়াল অ্যাড্রেস হিসাবে প্রয়োগ করা যেতে পারে। রেফারেন্সগুলি সিসিআই স্পেসিফিকেশনটির যথাযথ প্রয়োগের ক্ষেত্রে জিসি টেবিলগুলিতে অস্বচ্ছ হ্যান্ডেলগুলি হতে পারে।
সুবিধাগুলি কি কেবল বড় স্ট্রাকগুলিতে?
বৃহত্তর স্ট্রোকগুলি পাস করার ব্যয় হ্রাস করা বৈশিষ্ট্যের জন্য অনুপ্রেরণামূলক দৃশ্য scenario
নোট করুন যে কোনও গ্যারান্টি নেই যা in
কোনও প্রোগ্রামকে আসলে দ্রুত করে তোলে এবং এটি প্রোগ্রামগুলিকে ধীর করে তুলতে পারে। কর্মক্ষমতা সম্পর্কে সমস্ত প্রশ্নের উত্তর অবশ্যই গবেষণামূলক গবেষণার মাধ্যমে দেওয়া উচিত । খুব কম অপ্টিমাইজেশন রয়েছে যা সর্বদা জিতে থাকে ; এটি একটি "সর্বদা জয়" অপ্টিমাইজেশন নয়।
পর্দার পিছনে এমন কিছু সংকলক অপ্টিমাইজেশন রয়েছে যা এটিকে অন্য কোথাও আকর্ষণীয় করে তুলেছে?
কম্পাইলার এবং রানটাইম হয় অনুমতি এমনটি করা হলেও তা C # এর স্পেসিফিকেশন নিয়ম লঙ্ঘন করে না যদি থাকে অপ্টিমাইজেশান তারা চয়ন করতে পারেন। in
প্যারামিটারগুলির জন্য এখনও আমার এই ধরণের অপ্টিমাইজেশন নেই , তবে ভবিষ্যতে এই ধরনের অপ্টিমাইজেশানগুলিকে বাদ দেয় না।
আমি কেন প্রতিটি প্যারামিটারটি ইন-ইন করব না?
ঠিক আছে, ধরুন আপনি int
পরিবর্তে একটি in int
প্যারামিটার তৈরি করেছেন । কি ব্যয় আরোপ করা হয়?
- কল সাইটের জন্য এখন মানের পরিবর্তে একটি পরিবর্তনশীল প্রয়োজন
- পরিবর্তনশীল নিবন্ধভুক্ত করা যাবে না। জিটারের সাবধানতার সাথে টিউন করা রেজিস্টার বরাদ্দ প্রকল্পটি এর মধ্যে একটি রেঞ্চ ফেলেছিল।
- কল সাইটে কোডটি আরও বড় কারণ এটি অবশ্যই ভেরিয়েবলের জন্য একটি রেফ নিতে হবে এবং স্ট্যাকের উপরে রেখে দিতে হবে, যদিও আগে কল স্ট্যাকের উপরে মানটি চাপিয়ে দিতে পারে
- বৃহত্তর কোডের অর্থ হ'ল কিছু সংক্ষিপ্ত জাম্প নির্দেশাবলী এখন লম্বা জাম্পের নির্দেশাবলীতে পরিণত হয়েছে, সুতরাং আবার কোডটি আরও বড়। এটি সব ধরণের জিনিসে নকআউট-এফেক্ট করে has ক্যাচগুলি তাড়াতাড়ি পূর্ণ হয়ে যায়, জিটারটির আরও কাজ করার দরকার রয়েছে, জিটারটি বৃহত্তর কোড আকারে নির্দিষ্ট অপ্টিমাইজেশন না করা এবং এই জাতীয় পছন্দ করতে পারে।
- ক্যালি সাইটে, আমরা স্ট্যাকের কোনও মানের অ্যাক্সেসকে (বা নিবন্ধভুক্ত) একটি নির্দেশকের পরিবর্তে নির্দেশনাতে পরিণত করেছি। এখন, সেই পয়েন্টারটি ক্যাশে থাকার সম্ভাবনা খুব বেশি, তবে এখনও, আমরা এখন মানটির একটি এক-নির্দেশিক অ্যাক্সেসটিকে দ্বি-নির্দেশিক অ্যাক্সেসে পরিণত করেছি।
- ইত্যাদি।
মনে করুন এটি একটি double
এবং আপনি এটিকে একটিতে পরিবর্তন করেন in double
। আবার, এখন ভেরিয়েবলটি একটি উচ্চ-পারফরম্যান্স ফ্লোটিং পয়েন্ট রেজিস্টারে নিবন্ধভুক্ত করা যাবে না। এটিতে কেবল পারফরম্যান্সের প্রভাবই পড়ে না, এটি প্রোগ্রামের আচরণও পরিবর্তন করতে পারে! সি # এর চেয়ে বেশি -৪৪-বিট যথার্থতার মধ্যে ভাসমান গাণিতিক করার অনুমতি দেওয়া হয় এবং সাধারণত ভাসা তালিকাভুক্ত করা যায় তবেই তা করে।
এটি একটি নিখরচায় অপ্টিমাইজেশন নয়। বিকল্পগুলির বিরুদ্ধে আপনাকে এর কার্য সম্পাদন করতে হবে। আপনার সেরা বেটটি হ'ল প্রথম স্থানে বড় স্ট্রাক তৈরি না করা, যেমন নকশার নির্দেশিকা নির্দেশ করে suggest
ref
দিয়ে পাস করতে ব্যবহৃত হয় । মানে স্ট্রাকটি সংশোধন করা উচিত নয়।in