আমি .NET 4.5 অ্যাপ্লিকেশন লিখেছি যা একটি কিনেক্ট ভি 2 এর রঙ, ইনফ্রারেড এবং গভীরতার ডেটা বাফার করে, এতে কিছু প্রসেসিং করে এবং তারপরে এটি ডিস্কে ফেলে দেয়, সঙ্কুচিত আকারে; .NET অ্যাপ্লিকেশনটি এফফেম্পেগকে একটি সাবপ্রসেস হিসাবে শুরু করে এবং পাইপগুলির রঙিন ডেটা H.264 হিসাবে এনকোড করতে।
যেহেতু আমি কোনও এসএসডি ব্যবহার করছি না, তাই ডিস্কে লেখার চেয়ে ভিডিও ডেটা দ্রুত চলে আসে। তবে এটি ঠিক আছে, আমি যখন র্যাম কম থাকি তখন ভিডিও ফ্রেমগুলি বাতিল করা আমার পক্ষে গ্রহণযোগ্য। আমার একমাত্র প্রয়োজন হ'ল আমি যা কিছু রাখি তা বেশিরভাগই 8 থেকে 10-সেকেন্ডের ভিডিও হতে পারে। সুতরাং আমি যখন আমার কাছে 8 থেকে 10 সেকেন্ডের ভিডিওতে মোটামুটি র্যাম না পেয়ে প্রায় ভিডিওর ফ্রেম ছাড়তে শুরু করি তখন আমার নেট নেট 4.5 অ্যাপ্লিকেশনটিতে কিছু যুক্তি যুক্ত করেছি (প্রায় 1.5 থেকে 2 গিগাবাইট)।
এবং পৃষ্ঠার ছোড়াছুড়ি রোধ করতে আমি পেজিং ফাইলগুলি সম্পূর্ণ অক্ষম করে রেখেছি। এটি আমাকে মোট 16 গিগাবাইট শারীরিক র্যাম দিয়ে ফেলেছে।
আমার সমস্যাটি হ'ল সেই প্রক্রিয়াটি স্থানে থাকা সত্ত্বেও, কখনও কখনও আমার। নেট অ্যাপ্লিকেশন বা ffmpeg সাবপ্রসেসটি এখনও নিহত হয় যখন উইন্ডোজ 8.1 কম র্যামের কথা জানায়, কারণ স্পষ্টতই আমার অ্যাপ্লিকেশন সর্বাধিক র্যাম ব্যবহার করে যখন এতে ভিডিও ডেটার বিশাল ব্যাকলগ থাকে ডিস্কে লিখতে উইন্ডোজকে বলার কোনও উপায় আছে যে আমার প্রক্রিয়াগুলি অন্যের চেয়ে বেশি গুরুত্বপূর্ণ যাতে উইন্ডোজ প্রথমে অন্যান্য কম গুরুত্বপূর্ণ প্রক্রিয়াগুলিকে হত্যা করতে শুরু করে?
CreateMemoryResourceNotification
যা খুব কম হ্যাকি।