ما هي أفضل طريقة لعرض ملفات كبيرة دون استخدام كميات كبيرة من الذاكرة؟

StackOverflow https://stackoverflow.com/questions/694137

سؤال

والعديد من المحررين عرافة، مثل ورشة عمل عرافة، حتى يمكن قراءة الملفات الكبيرة الحجم مع الحفاظ على البصمة ذاكرة صغيرة نسبيا، ولكن لا تزال إدارة للحفاظ على التمرير السلس. أنا أبحث عن أفضل وسيلة لتحقيق ذلك، وذلك لدي العديد من الأسئلة ذات الصلة.

يجب أن تستخدم فقط يقوم FileStream منتديات - هل التخزين المؤقت التي تقوم على السعي الموقع الحالي؟ (هل عادة pagefault عند التمرير الى الوراء؟)
- إذا كان يمكنني إنشاء مجمع ليقوم FileStream الذي يستخدم فقط التماس داخليا، وأنا يصب القدرة يقوم FileStream لالعازلة بشكل صحيح؟ (أي سوف أداء يعانون كثيرا من السعي المتكرر، حتى لو كان يسعى في مكان قريب؟ هل يمكنني الاعتماد على خوارزمية التخزين المؤقت أو جدولة القرص للحفاظ على الأداء تصل؟)

سيكون من الأفضل استخدام الذاكرة المعنونة I / O؟ (I فقط حقا نتوقع ملفات تصل إلى 100MB ربما)
- هل pagefaults من البحث / القفز / بسرعة التمرير خلق مشاكل الأداء ملحوظة

؟ في النهاية لابد من عرض البيانات. يجب أن تجعل الملف بأكمله كصورة نقطية وإبطال أجزاء من الصورة على التغييرات (السماح للسيطرة التمرير القيام الترحيل الخاص على الصورة)، أو ينبغي أن مجرد توليد منطقة العرض الحالية على الأحداث التمرير منتديات
هكذا وباختصار، لا صفحة لي البيانات، وصورة ولدت، أو كليهما، أو يمكنني الحصول على / تولد لهم حسب الحاجة؟ ما هي (WPF / صافي) مكتبات / كائنات API الأنسب لهذه المهمة؟

هل كانت مفيدة؟

المحلول

ويبدو أنك لديك بالفعل الجواب.
الحل العام لهذا يستخدم الذاكرة المعينة الملفات والسماح للOS عناء مع التخزين المؤقت والسعي.
أول محاولة أبسط والأكثر وضوحا الحل. إذا كان لا يعمل على رضاكم، وتحسين الاختناقات. أمثل من السابق لأوانه هو أصل كل الشرور.

نصائح أخرى

و100MB في الحقيقة ليست أن كبيرة. حتى في الذاكرة وربما العمل على الآلات الجديدة.

ولكن كنت لا تريد الحل ليتم تحجيم مع مرور الوقت. في اللحظة التي تفترض الحد هو 100MB شخص سيحاول مع 200MB. حيث أوصى أن تفعل اتخاذ "تسعى" الطريق - هذه هي الطريقة الشائعة للقيام بذلك

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top