এই প্রশ্নটির পরিবর্তে এসও-তে একটি হিমশীতল অভ্যর্থনা পেল তাই আমি এটি এখানে মুছে ফেলার সিদ্ধান্ত নিয়েছি এবং পরিবর্তে এখানে চেষ্টা করব। আপনি যদি মনে করেন এটি এটি এখানেও খাপ খায় না তবে দয়া করে কমপক্ষে একটি পরামর্শ দিন যাতে আমি পরে কীভাবে একটি উদাহরণ খুঁজে পাব ...
আপনি কি উদাহরণ দিতে পারেন , যেখানে সি 99 ভিএলএএস ব্যবহার করে বর্তমান স্ট্যান্ডার্ড হিপ-সি ব্যবহার করে সি ++ আরআইআই প্রক্রিয়াগুলির মতো কোনও কিছুর উপরে প্রকৃত সুবিধা পাওয়া যায়?
আমি যে উদাহরণটি পরে যাচ্ছি তা হ'ল:
- গাদা ব্যবহার করে সহজেই পরিমাপযোগ্য (10% হতে পারে) পারফরম্যান্স সুবিধা অর্জন করুন।
- ভাল workaround না, যা মোটেও পুরো অ্যারের প্রয়োজন হবে না।
- স্থির সর্বাধিক আকারের পরিবর্তে গতিশীল আকার ব্যবহার করে উপকার পাবেন।
- সাধারণ ব্যবহারের দৃশ্যে স্ট্যাক ওভারফ্লো হওয়ার সম্ভাবনা নেই।
- কোনও সি ++ প্রকল্পে একটি সি 99 উত্স ফাইল অন্তর্ভুক্ত করার জন্য পারফরম্যান্সের প্রয়োজন এমন একজন বিকাশকারীকে প্রলুব্ধ করতে যথেষ্ট শক্ত হন।
প্রসঙ্গে কিছু স্পেসিফিকেশন যুক্ত করা হচ্ছে: আমি সিএল দ্বারা বোঝানো ভিএলএর অর্থ এবং স্ট্যান্ডার্ড সি ++ এ অন্তর্ভুক্ত নয়: int array[n]
যেখানে n
একটি পরিবর্তনশীল। এবং আমি ব্যবহারের ক্ষেত্রে উদাহরণের পরে আছি যেখানে এটি অন্যান্য মান (সি 90, সি ++ 11) দ্বারা সরবরাহিত বিকল্পগুলি ট্রাম্প করে:
int array[MAXSIZE]; // C stack array with compile time constant size
int *array = calloc(n, sizeof int); // C heap array with manual free
int *array = new int[n]; // C++ heap array with manual delete
std::unique_ptr<int[]> array(new int[n]); // C++ heap array with RAII
std::vector<int> array(n); // STL container with preallocated size
কিছু ধারণা:
- ভারার্গস গ্রহণের কাজগুলি, যা আইটেমের গণ্যকে স্বাভাবিকভাবেই যুক্তিসঙ্গত কিছুতে সীমাবদ্ধ করে, তবুও কোনও কার্যকর এপিআই-স্তরের উচ্চতর সীমা ছাড়াই।
- পুনরাবৃত্ত ফাংশন, যেখানে নষ্ট স্ট্যাকগুলি অনাকাঙ্ক্ষিত
- অনেক ছোট বরাদ্দ এবং রিলিজ, যেখানে ওভারহেড হিপ খারাপ হবে।
- বহুমাত্রিক অ্যারেগুলি (যথেচ্ছ আকারের ম্যাট্রিক্সের মতো) পরিচালনা করা, যেখানে কার্য সম্পাদন সমালোচনামূলক এবং ছোট ফাংশনগুলি অনেকটা অন্তর্ভুক্ত হওয়ার আশা করা হয়।
- মন্তব্য থেকে: সমবর্তী অ্যালগরিদম, যেখানে হিপ বরাদ্দে সিনক্রোনাইজেশন ওভারহেড থাকে ।
উইকিপিডিয়ায় একটি উদাহরণ রয়েছে যা আমার মানদণ্ড পূরণ করে না , কারণ গাদা ব্যবহারের ব্যবহারিক পার্থক্য কমপক্ষে প্রসঙ্গ ছাড়াই অপ্রাসঙ্গিক বলে মনে হয়। এটিও অ-আদর্শ, কারণ আরও প্রসঙ্গ না থাকলে মনে হয় আইটেমের গণনা খুব ভাল স্ট্যাকের ওভারফ্লো করতে পারে cause
দ্রষ্টব্য: আমি বিশেষত একটি উদাহরণ কোড, বা একটি অ্যালগরিদমের পরামর্শের পরে যা এতে উপকৃত হবে, আমার নিজের জন্য উদাহরণটি বাস্তবায়নের জন্য।
alloca
, যা আমি মনে করি মূলত একই জিনিস)। তবে এই বহুবিবাহিত জিনিসটি ভাল, এটিকে অন্তর্ভুক্ত করার জন্য প্রশ্ন সম্পাদনা করুন!
malloc
আচরণ সি স্ট্যান্ডার্ডের সাথে খাপ খায় কিনা তা বিতর্কযোগ্য ।
alloca()
সত্যিই উজ্জ্বলতায় কোনো কিছুকে ছাপিয়ে wouldmalloc()
কারণ মাল্টি পরিবেশে আধুনিক লক বিবাদের । তবে এটি একটি বাস্তব প্রসারিত যেহেতু ছোট অ্যারেগুলির জন্য কেবলমাত্র একটি নির্দিষ্ট আকার ব্যবহার করা উচিত এবং বৃহত অ্যারেগুলিতে সম্ভবত যে কোনও উপায়ে স্তূপের প্রয়োজন হবে।