سؤال

أنا بناء المنتج "الافتراضية للتطبيق".يمكنني استخدام ملف XML كرقم افتراضي. يصل التطبيقات الافتراضية التي تم إنشاؤها من برامجي إلى التسجيل الظاهري XML. إنه يعمل، ولكن يدير بطيئة للغاية.

قمت بتحميل وتفريغ XML على كل مكالمات API في كل سجل، لأن عملية متعددة الخيوط من الوالد الوصول إلى نفس ملف التسجيل.قد يتسبب هذا في تشغيل التطبيق بطيئا.

يمكن لأي شخص اسمحوا لي أن أعرف البديل الخاص ب XML ...

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

المحلول 3

نصها إلى وقت تحويل الأشجار. تمكنت من ذلك في التعليمات البرمجية عن طريق تحميل وتحليل XML في جميع العمليات، فقط بعد حدوث الكتابة في أي من العملية.

نصائح أخرى

يمكنك استخدام قاعدة بيانات بدلا من ذلك.سيكون أسرع.SQLite خفيف الوزن وقوي.

إذا قمت بتحميله في الذاكرة وتشغيله من هناك ثم مشكلتك ليست XML. الملف الشخصي طلبك لمعرفة المكان الذي يقضي فيه معظم الوقت. أعتقد أنك ستجد أنك تقضي معظم الوقت في البحث عن العنصر الذي تريد الوصول إليه.

حسنا، يمكنك دائما استخدام السجل الحقيقي دائما، وهو آمن للخيط وسريع ...

خلاف ذلك، يجب عليك إنشاء عملية منفصلة تدير سجل XML الظاهري الخاص بك، مع الحفاظ على بنية XML في الذاكرة حتى لا يتعين عليك قراءة / كتابة كل الوقت.ثم العمليات التي تحتاج إلى الوصول إليها يمكن استخدام IPC للتواصل مع عملية التسجيل.

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

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