উইন্ডোজ ৮.১-তে, কোনও উপায় কি নিশ্চিত করে যে কোনও প্রক্রিয়া র‌্যামের বাইরে চলে যাওয়ার পরে মারা যাওয়ার আগে নয়?


18

আমি .NET 4.5 অ্যাপ্লিকেশন লিখেছি যা একটি কিনেক্ট ভি 2 এর রঙ, ইনফ্রারেড এবং গভীরতার ডেটা বাফার করে, এতে কিছু প্রসেসিং করে এবং তারপরে এটি ডিস্কে ফেলে দেয়, সঙ্কুচিত আকারে; .NET অ্যাপ্লিকেশনটি এফফেম্পেগকে একটি সাবপ্রসেস হিসাবে শুরু করে এবং পাইপগুলির রঙিন ডেটা H.264 হিসাবে এনকোড করতে।

যেহেতু আমি কোনও এসএসডি ব্যবহার করছি না, তাই ডিস্কে লেখার চেয়ে ভিডিও ডেটা দ্রুত চলে আসে। তবে এটি ঠিক আছে, আমি যখন র‌্যাম কম থাকি তখন ভিডিও ফ্রেমগুলি বাতিল করা আমার পক্ষে গ্রহণযোগ্য। আমার একমাত্র প্রয়োজন হ'ল আমি যা কিছু রাখি তা বেশিরভাগই 8 থেকে 10-সেকেন্ডের ভিডিও হতে পারে। সুতরাং আমি যখন আমার কাছে 8 থেকে 10 সেকেন্ডের ভিডিওতে মোটামুটি র‍্যাম না পেয়ে প্রায় ভিডিওর ফ্রেম ছাড়তে শুরু করি তখন আমার নেট নেট 4.5 অ্যাপ্লিকেশনটিতে কিছু যুক্তি যুক্ত করেছি (প্রায় 1.5 থেকে 2 গিগাবাইট)।

এবং পৃষ্ঠার ছোড়াছুড়ি রোধ করতে আমি পেজিং ফাইলগুলি সম্পূর্ণ অক্ষম করে রেখেছি। এটি আমাকে মোট 16 গিগাবাইট শারীরিক র‍্যাম দিয়ে ফেলেছে।

আমার সমস্যাটি হ'ল সেই প্রক্রিয়াটি স্থানে থাকা সত্ত্বেও, কখনও কখনও আমার। নেট অ্যাপ্লিকেশন বা ffmpeg সাবপ্রসেসটি এখনও নিহত হয় যখন উইন্ডোজ 8.1 কম র‌্যামের কথা জানায়, কারণ স্পষ্টতই আমার অ্যাপ্লিকেশন সর্বাধিক র‌্যাম ব্যবহার করে যখন এতে ভিডিও ডেটার বিশাল ব্যাকলগ থাকে ডিস্কে লিখতে উইন্ডোজকে বলার কোনও উপায় আছে যে আমার প্রক্রিয়াগুলি অন্যের চেয়ে বেশি গুরুত্বপূর্ণ যাতে উইন্ডোজ প্রথমে অন্যান্য কম গুরুত্বপূর্ণ প্রক্রিয়াগুলিকে হত্যা করতে শুরু করে?


10
আমি উইন্ডোজ প্রক্রিয়া নিহত বলে মনে করি না, আমি ভেবেছিলাম যে এটি একটি লিনাক্স বৈশিষ্ট্য মাত্র।
স্কট চেম্বারলাইন

4
@ স্কটচ্যাম্বারলাইন: এটি কারণ উইন্ডোজে পেজিং ফাইলটি বন্ধ করা খুব বিরল। এটি আপনাকে সমস্ত ধরণের অপ্রত্যাশিত এবং অস্বাভাবিক আচরণ করে। এখানে স্পষ্ট উত্তরটি হ'ল "পেজিং ফাইলটি বন্ধ করবেন না; যা উইন্ডোজকে র‌্যামে অব্যবহৃত ডেটা রাখতে বাধ্য করে যাতে আপনার অ্যাপ্লিকেশনটি সেই
র‌্যামটি

1
এটি যদি স্ট্যাকওভারফ্লো প্রশ্ন ছিল তবে আমি আপনাকে ইঙ্গিত করতে পারলাম CreateMemoryResourceNotificationযা খুব কম হ্যাকি।
এমসাল্টার

7
@ কাল: ডিস্ক অ্যাক্সেস যদি বাধা হয় তবে শক্তিশালী সংক্ষেপণ ব্যবহার করুন, সিপিইউ যদি বাধা হয় তবে দ্রুত সংক্ষেপণ ব্যবহার করুন। উভয়ই যদি বাধা হয়ে থাকে তবে আপনার পুরো নকশাটি পুনর্বিবেচনা করুন এবং আবার শুরু করুন বা আরও ভাল হার্ডওয়্যার পান।
মাকিং হাঁস

1
@ ফ্যাক্টর মিস্টিক ওএমজি তিনি কী করলেন? পৃষ্ঠার ফাইলটি অক্ষম করা আপনার ব্যবহারযোগ্য র‌্যামকে উল্লেখযোগ্যভাবে হ্রাস করতে চলেছে।
অ্যারন

উত্তর:


45

উইন্ডোজ সমস্ত র‌্যাম ব্যবহার করার সময় প্রক্রিয়াগুলিকে হত্যা করে না। আসলে যা ঘটে তা হ'ল প্রক্রিয়াগুলি মেমরি এবং ক্র্যাশ বরাদ্দ করতে ব্যর্থ হয়।

এটি ঘটছে কারণ আপনার সমস্ত শারীরিক মেমরি ব্যবহৃত হয় এবং পৃষ্ঠা ফাইলটি অক্ষম থাকায় মেমরি পরিচালকের এমন পৃষ্ঠাগুলি লেখার ক্ষমতা থাকে না যা ব্যবহৃত হচ্ছে না। এটি আপনার শারীরিক র‍্যামকে পূর্ণ রাখে এবং যখন আপনার প্রক্রিয়া, বা অন্য কোনও সময়ে চলমান কোনও পৃষ্ঠা বরাদ্দের চেষ্টা করে, এটি ব্যর্থ হয়। কিছু অ্যাপ্লিকেশন ক্রাশ।

টেকনেটের এই উপস্থাপনাটি ব্যাখ্যা করে: http://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/WCL405

অতিরিক্ত প্রতিশ্রুতির জন্য ব্যাকস্টপ হিসাবে অভিনয় করে আপনি যখন আপনার সমস্ত স্মৃতি ব্যবহার করেন তখন পৃষ্ঠাগুলি অ্যাপ্লিকেশনগুলিকে ক্রাশ থেকে বিরত রাখছে।

ভার্চুয়াল মেমরিটি আধুনিক অপারেটিং সিস্টেমগুলি কীভাবে সংস্থানগুলি বরাদ্দ করে দেয় তার ভিত্তি অনেকটাই, তাই এটি ব্যবহৃত সমস্ত র‍্যামে থাকা জিনিসগুলি এবং ডিস্ক থেকে স্টাফ বাইরে এবং বাইরে নিয়ে যাওয়া সম্পর্কে।

সত্যই দুটি উত্তর আছে:

  1. পেজ ফাইলটি পুনরায় সক্ষম করুন এবং ডিস্ক থ্র্যাশিং হ্রাস করতে আপনার কম্পিউটারে র‌্যাম বাড়িয়ে দিন।
  2. আপনার অ্যাপ্লিকেশনটির মেমরির প্রয়োজনীয়তা হ্রাস করুন।

তল লাইনটি হ'ল র‌্যাম হল ক্যাশের মাত্র একটি মাত্রা, এবং ভার্চুয়াল মেমরি, পেজফাইলেস, মেমরি ম্যাপ করা ফাইলগুলি এবং মূলত এটিতে সমস্ত স্টাফ রয়েছে: আপনি যদি স্মৃতি থেকে সরে এসে থাকেন তবে আপনাকে যুক্ত করতে হবে আরও অনেক কিছু।


4
অথবা কম ব্যবহার করুন ....
nhgrif

1
অনুগ্রহ করে নোট করুন যে ব্যাকলগটি তৈরি হচ্ছে কারণ ডেটাটিতে পর্যাপ্ত পরিমাণে ডেটা লেখা যায় না। আমি মনে করি না যে খুব একই ডিস্কে ভার্চুয়াল মেমরি সক্ষম করা সেখানে সহায়তা করতে পারে ...
আলেকজান্ডার

3
আসলে, পৃষ্ঠা ফাইলটি ডিস্কের অন্য কোনও জায়গায় থাকবে। এবং যেহেতু আমরা জানি যে এটি কোনও এসএসডি নয়, এর অর্থ একটি শারীরিক সন্ধান যা ধীরতম ডিস্ক অপারেশন।
এমসাল্টাররা

9
আপনার অ্যাপ্লিকেশনে আপনার স্পষ্টরূপে মেমরি পরিচালনা প্রয়োজন এমন মনে হচ্ছে ...
জো

1
@ জো ঠিক এই। আবর্জনা সংগ্রাহক এই ধরণের পরিস্থিতিতে মেমরি পরিচালনকে একটি দুঃস্বপ্ন করতে চলেছেন। এই ধরণের পরিস্থিতি আমার কাছে সি ++ এ মোকাবেলা করার জন্য নগণ্য কারণ আমার সমস্ত স্মৃতি ব্যবহারের সূক্ষ্ম সুরক্ষা রয়েছে। যদিও ডিজাইনের নিদর্শন রয়েছে যা সি # তেও এই ক্ষেত্রে ঠিক জরিমানা কাজ করবে, এটি বেশিরভাগ লোকেরা যা চেষ্টা করবেন ততটা সহজ নয়।
Thebluefish

0

উইন্ডোজ সরঞ্জাম প্যানেল ও অ্যাডভান্সড সেটিংসের মাধ্যমে যান এবং অপ্রয়োজনীয় জিনিসগুলি যেমন আপনার যদি ইতিমধ্যে না থাকে তবে উইন্ডো এফেক্টগুলি অক্ষম করুন এবং সিপিইউ বা স্মৃতি নষ্ট করে এমন বাহ্যিক কোনও কিছু সন্ধান করতে এবং বন্ধ করতে সিসিনটার্নালস প্রসেস এক্সপ্লোরার এবং / অথবা সিস্টেম মনিটর পান।

আরও গুরুত্বপূর্ণ বিষয় হল, আপনার প্রোগ্রামটি কার্যকর হচ্ছে তা দেখার জন্য প্রক্রিয়া এক্সপ্লোরার এবং / অথবা সিস্টেম মনিটর ব্যবহার করুন এবং এটি কোথায় এবং কীভাবে ব্যর্থ হয় তা দেখুন। কোন থ্রেড মেমরির সংক্ষেপে চলে এবং প্রথমে মারা যায় - মূল prgm বা ffmpeg অংশ? একটি নির্দিষ্ট dll বা অন্যান্য ভাগ করা সংস্থান আছে যে আকারে অপ্রত্যাশিতভাবে বেলুনগুলি? বা ডেটা চিবানো যায় না তার চেয়ে বেশি কামড় দেওয়া ব্যতিরেকে কার্যকরভাবে কার্যকর করা হচ্ছে?

আপনার সমস্যার প্রকৃতি আরও সুনির্দিষ্টভাবে নির্ধারণ করা আপনাকে সম্ভবত কোনও সমাধানের দিকে নির্দেশ করবে। উদাহরণস্বরূপ, আপনার ফ্রেম ড্রপিং নীতিটি আরও আক্রমণাত্মকভাবে প্রয়োগ করতে পেরেছিলেন, যখন আপনার সামগ্রিক র‌্যামের ওভারহেডটি অর্জনের জন্য আপনার 8-10 সেকেন্ডের কুণ্ডিত মানদণ্ডের জন্য আরও অনুকূল করে তোলেন

চূড়ান্ত পরামর্শ: সম্ভবত লিনাক্সে স্যুইচ করার কথা বিবেচনা করুন এবং এর মধ্যে, পেজিং ফাইলটি পুনরায় সক্ষম করুন (লিনাক্স এটিকে স্ব্যাপ স্পেস বলে, যা স্বাপ-মিট বা অন্য কোনও কিছুর মতো আইএমএইচও করে তোলে!) শুভকামনা।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.