سؤال

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

هل هناك طريقة أكثر فعالية للقيام بذلك؟شيء موجود في الدوت نت بالفعل ويفضل؟خاصة إذا كان الحجم الإجمالي أكثر من مائة ألف.ربما شيء يشبه مجموعة من الصفحات بدلاً من الذاكرة المتجاورة؟

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

المحلول

أعتقد أن StringBuilder هي الطريقة الأكثر فعالية لإلحاق النص في .net.لكي تكون أكثر كفاءة، يمكنك تحديد الحجم الأولي لـ StringBuilder عند إنشائه.

نصائح أخرى

يعتمد ذلك على ما تفعله بهذا النص.

إذا كان الأمر يتعلق بالتتبع أو التسجيل، فأنا أقول إن أفضل رهان لك هو استخدام ETW (تتبع الأحداث لنظام التشغيل Windows).إنها أداة تتبع على مستوى النواة تم دمجها في نظام التشغيل Windows منذ نظام التشغيل Windows 2000 وهي أسرع بكثير من إجراء عمليات الإدخال/الإخراج للملفات.

إذا كنت لا تستخدم .NET 2.0، فيجب عليك القيام ببعض أعمال Win32 API لاستخدامه، ويجب عليك إنشاء فئة موفر تقوم بتسجيلها على النظام.إنها معقدة بعض الشيء ولكنها تستحق الجهد.

إذا كنت تستخدم .NET 3.5، فيمكن العثور على فئات Etw المُدارة في System.Diagnostics.Eventing.

هذا جيد كما يحصل.يمكنك استخدام StringWriter ولكنه لا يزال يكتب في StringBuilder

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