সি ++ ক্লাসে কমপক্ষে একটি ভার্চুয়াল পদ্ধতি (বা এর কোনও প্যারেন্ট ক্লাস) থাকা মানে ক্লাসটির ভার্চুয়াল টেবিল থাকবে এবং প্রতিটি ক্ষেত্রে ভার্চুয়াল পয়েন্টার থাকবে।
সুতরাং মেমরি খরচ বেশ পরিষ্কার। উদাহরণগুলির মধ্যে মেমরির ব্যয়টি সবচেয়ে গুরুত্বপূর্ণ (উদাহরণস্বরূপ যদি উদাহরণগুলি ছোট হয়, উদাহরণস্বরূপ যদি সেগুলি কেবলমাত্র একটি পূর্ণসংখ্যা অন্তর্ভুক্ত করে বোঝানো হয়: এই ক্ষেত্রে প্রতিটি ক্ষেত্রে ভার্চুয়াল পয়েন্টার থাকা উদাহরণগুলির আকার দ্বিগুণ করতে পারে for ভার্চুয়াল টেবিলগুলি ব্যবহার করে মেমরির স্থান, আমি অনুমান করি এটি আসল পদ্ধতি কোড দ্বারা ব্যবহৃত স্থানের তুলনায় এটি সাধারণত নগন্য।
এটি আমার প্রশ্নে নিয়ে আসে: কোনও পদ্ধতি ভার্চুয়াল করার জন্য কি পরিমাপযোগ্য পারফরম্যান্স ব্যয় (অর্থাত্ গতির প্রভাব) আছে? রানটাইমটিতে ভার্চুয়াল টেবিলটিতে প্রতিটি মেথড কলের উপরে একটি লুক থাকবে, সুতরাং যদি এই পদ্ধতিতে খুব ঘন ঘন কল আসে এবং যদি এই পদ্ধতিটি খুব ছোট হয়, তবে একটি পরিমাপযোগ্য পারফরম্যান্স হিট হতে পারে? আমার ধারণা এটি প্ল্যাটফর্মের উপর নির্ভর করে তবে কি কেউ কিছু বেঞ্চমার্ক চালিয়েছে?
আমি জিজ্ঞাসা করার কারণটি হ'ল আমি এমন একটি বাগটি পেরিয়ে এসেছি যা ঘটনাক্রমে কোনও প্রোগ্রামার কোনও পদ্ধতি ভার্চুয়াল সংজ্ঞা দিতে ভুলে গিয়েছিল। এই ধরনের ভুল আমি এই প্রথম দেখছি না। আর আমি চিন্তা কেন আমরা কি যোগ ভার্চুয়াল শব্দ যখন পরিবর্তে প্রয়োজন সরানোর ভার্চুয়াল শব্দ যখন আমরা পুরোপুরি নিশ্চিত যে এটা হয় না প্রয়োজন? যদি পারফরম্যান্সের ব্যয় কম হয় তবে আমি মনে করি আমি কেবল আমার দলে নিম্নলিখিতগুলি সুপারিশ করব: কেবলমাত্র প্রতিটি পদ্ধতিতে ডিস্ট্রাস্টার সহ প্রতিটি ক্লাসে ডিফল্ট অনুসারে ভার্চুয়াল তৈরি করুন এবং আপনার প্রয়োজন হলে কেবল এটি সরিয়ে দিন। ওটা কি তোমার কাছে পাগল লাগছে?