أنت غير متصل حاليًا، وفي انتظار الإنترنت الخاص بك ليقوم بإعادة الاتصال

كيفية تحسين أداء سلسلة سلسلة في "Visual C" #

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

اضغط هنا لرابط المقالة باللغة الانجليزية306822
للحصول على إصدار Microsoft Visual JScript .NET من هذه المقالة، راجع 306823.
للحصول على إصدار Microsoft Visual Basic .NET من هذه المقالة، راجع 306821.

تشير هذه المقالة إلى مساحة الاسم Microsoft .NET Framework فئة مكتبة التالية:
  • System.Text

في هذه المهمة

الموجز
تعرض هذه المقالة خطوة بخطوة فوائد استخدام فئة بـ StringBuilder عبر تقنيات سلسلة التقليدية. يتم السلاسل في .NET Framework ثابتة (أي، النص المشار إليه للقراءة فقط بعد تخصيص الأولي). يوفر العديد من المزايا الأداء ثم يتظاهر بعض التحديات إلى المطوِّر الذي قام معتاداً على تقنيات معالجة سلسلة C/C++.

وصف سلاسل في .NET Framework

أسلوب واحد لتحسين سلسلة سلسلة عبر strcat() في Visual C/C++ تخصيص صفيف حرف كبير المخزن المؤقت "و" نسخة سلسلة البيانات في المخزن المؤقت. في ".NET Framework،" سلسلة immutable; لا يمكن تعديل في الموضع. C# + سلسلة عامل التشغيل بناء سلسلة جديدة و الأسباب يتحسن أداء فإنه يسلسل كميات كبيرة من النص.

ومع ذلك، يتضمن .NET Framework فئة بـ StringBuilder أمثليته سلسلة سلسلة. ويوفر نفس الفوائد باستخدام صفيف حرف في C/C++ ، بالإضافة إلى زيادة حجم حجم المخزن المؤقت تلقائياً (إذا اقتضت الحاجة) و لتعقب الطول. يوضح استخدام فئة بـ StringBuilder التطبيق نموذج في هذه المقالة ثم مقارنة بين الأداء إلى سلسلة.

إنشاء و تشغيل تطبيق العرض التوضيحي

  1. بدء تشغيل Visual Studio ثم قم بإنشاء تطبيق Visual C# "وحدة تحكم" جديد.
  2. تستخدم التعليمة البرمجية التالية عامل سلسلة += و الفئة بـ StringBuilder concatenations 5000 من 30 حرفاً كل الوقت. إضافة هذه التعليمة البرمجية إلى إجراء رئيسي.
    const int sLen=30, Loops=5000;DateTime sTime, eTime;int i;string sSource = new String('X', sLen);string sDest = "";// // Time string concatenation.// sTime = DateTime.Now;for(i=0;i<Loops;i++) sDest += sSource;eTime = DateTime.Now;Console.WriteLine("Concatenation took " + (eTime - sTime).TotalSeconds + " seconds.");// // Time StringBuilder.// sTime = DateTime.Now;System.Text.StringBuilder sb = new System.Text.StringBuilder((int)(sLen * Loops * 1.1));for(i=0;i<Loops;i++) sb.Append(sSource);sDest = sb.ToString();eTime = DateTime.Now;Console.WriteLine("String Builder took " + (eTime - sTime).TotalSeconds + " seconds.");// // Make the console window stay open// so that you can see the results when running from the IDE.// Console.WriteLine();Console.Write("Press Enter to finish ... ");Console.Read();					
  3. حفظ التطبيق. اضغط F5 ترجمة ثم قم بتشغيل التطبيق. يجب عرض إطارات وحدة التحكم إخراج مشابه لما يلي:
    سلسلة استغرق ثانية 6.208928.
    منشئ سلسلة استغرق الثواني.

    اضغط مفتاح الإدخال ENTER لإنهاء...
  4. اضغط ENTER لإيقاف تشغيل التطبيق ثم إغلاق إطار وحدة التحكم.

استكشاف الأخطاء وإصلاحها

  • إذا كنت في بيئة يدعم دفق البيانات مثل في "نموذج ويب" على ASPX أو التطبيق الخاص بك كتابة البيانات إلى القرص فمن الأفضل تجنب الزائد المخزن المؤقت لـ سلسلة أو بـ StringBuilder ثم كتابة البيانات مباشرةً إلى الدفق خلال أسلوب Response.Write أو الطريقة المناسبة الدفق في السؤال.
  • حاول إعادة استخدام فئة بـ StringBuilder الموجودة بدلاً من تخصيص كل وقت تحتاج فيه واحدة. هذا الحد المتزايد كومة الذاكرة المؤقتة وتقليل المهملة. في كلتا الحالتين، يجعل استخدام فئة بـ StringBuilder أكثر كفاءة استخدام كومة الذاكرة المؤقتة من استخدام عامل التشغيل +.
مراجع
فئة بـ StringBuilder على العديد من الطرق الأخرى عن معالجة سلسلة في مكان لا الموضحة في هذه المقالة. للحصول على مزيد من المعلومات، ابحث عن "بـ StringBuilder" في "تعليمات عبر إنترنت".

تحذير: تمت ترجمة هذه المقالة تلقائيًا

خصائص

رقم الموضوع: 306822 - آخر مراجعة: 07/14/2008 23:48:49 - المراجعة: 3.0

Microsoft Visual C# 2005, Microsoft Visual C# .NET 2002 Standard Edition, Microsoft Visual C# 2008 Express Edition

  • kbmt kbsweptvs2008 kbhowtomaster kbperformance KB306822 KbMtar
تعليقات
/html> tml>