هل يستحق باستخدام ب StringBuilder في تطبيقات الويب؟

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

  •  19-08-2019
  •  | 
  •  

سؤال

في تطبيق ويب أنا سلاسل تقسيم وتعيين لربط الأسماء أو إلى مجموعات من السلاسل. هل هناك فائدة كبيرة لاستخدام ب StringBuilder لتطبيق ويب الأداء؟

وتحرير: 2 وظائف: تقسيم وصلة إلى 5-10 السلاسل. تحزيم ثم في سلسلة أخرى. كما أنني إلحاق سلسلة واحدة في وقت واحد في كل مرة إلى رابط النقر على الرابط.

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

المحلول

وكيف العديد من السلاسل سوف يتم وصل؟ هل نعرف على وجه اليقين كم سوف يكون هناك، أو أنها لا تعتمد على عدد السجلات الموجودة في قاعدة البيانات وما إلى ذلك؟

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

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

string faster = first + " " + second + " " + third + "; " + fourth;

string slower = new StringBuilder().Append(first)
                                   .Append(" ")
                                   .Append(second)
                                   .Append(" ")
                                   .Append(third)
                                   .Append("; ")
                                   .Append(fourth)
                                   .ToString();

وثمة بديل آخر هو استخدام سلسلة تنسيق بطبيعة الحال. هذا قد يكون أبطأ، ولكن الأكثر قراءة:

 string readable = string.Format("{0} {1} {2}; {3}",
                                 first, second, third, fourth);

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

نصائح أخرى

ويجب أن نلقي نظرة على هذه المادة ممتازة جون السكيت حول وصل سلاسل.

نعم، وصل سلاسل العادية مكلفة (إلحاق حقا على سلسلة إلى نهاية آخر). في كل مرة يتم تغيير سلسلة، صافي يسقط سلسلة القديمة وإنشاء آخر جديد مع القيم الجديدة. ومن وجوه غير قابل للتغيير.

وتحرير:

وينبغي أن تستخدم ب StringBuilder بحذر، وتقييم مثل أي نهج آخر. connactenting أحيانا السلسلتين معا سوف تكون أكثر كفاءة، وينبغي تقييمها على كل حالة على حدة.

أتوود ديه مادة مثيرة للاهتمام حول هذا.

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

<ع> استخدام ب StringBuilder هي مسألة ممارسة جيدة بسبب الذاكرة وتخصيص الكائن، تطبيق القواعد بغض النظر عن ماذا كنت بناء التعليمات البرمجية.

إذا كنت تريد أن تجعل من سلسلة في حلقة مع عدد كبير من تكرار، ثم انها فكرة جيدة لاستخدام ب StringBuilder. خلاف ذلك، سلسلة سلسلة هو أفضل رهان.

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

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