سلسلة / ب StringBuilder ما حجم تستخدمون واحد على الآخر

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

  •  22-07-2019
  •  | 
  •  

سؤال

وانه يوم الجمعة الساعة ريفاكتور !!!

ولدي كائن التي تستخدم لتوليد البيانات SQL.

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

وهكذا Q هو ما # المرات يمكنني إبقاء جملة oDb.From + = قبل أن يحل محله مع sbFrom.Append ()

هل هذا رقم 3، 4، أو 15 مرات؟

وأم أنها حقا بطول قضية المحتوى، وإذا كان الأمر كذلك ما هو سحري #؟

وTIA

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

المحلول

http://www.codinghorror.com/blog/archives/001218. أتش تي أم أل

تم تصميم الطبقة StringBuilder لسيناريوهات حيث كنت بناء سلاسل ضخمة، واستخدام سلسلة سلسلة طبيعية حقا سيكون بطيئا للغاية.

وهناك احتمالات بأن لهذا النوع من سلسلة أطوال أنك تتعامل معها حقا لن يجعل أي فرق على الإطلاق - مجرد استخدام كل ما كنت أكثر ارتياحا

نصائح أخرى

وحكم غير علمي تماما من التجربة: كنت تفعل ذلك في أي شيء أكثر من ثلاثة عناصر - وليس بسبب زيادة في الأداء، ولكن بدلا من (أمل) عادة جيدة

.

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

وأنا أقول أي شيء كنت أتوقع أن يذهب أكثر 1-5MB في طول أو أي شيء مخصصات الكثير من السلاسل في قطع صغيرة.

وانها ليست ما مجموعه علمي - قرأت مقالا ذات مرة حيث في. NET سلسلة باني يصبح الواقع أكثر فعالية بعد 5 تسلسالت. هذا هو عندما كنت عادة استخدام منشئ سلسلة.

وأيضا - وأعتقد أن القراءة تأتي حقا في اللعب بخصوص هذا وأنا أيضا يفضلون شكل سلسلة في بعض الحالات على حد سواء

.

وأنا استخدم ل StringBuilder عندما يكون عدد من سلسلة في خوارزمية تنمو على O (ن). وإذا كان عدد من سلسلة هو O (1)، أكثر من قراءة الوقت تعاني من أجل لا شيء (باستثناء إذا كانت السلسلة كبيرة جدا، وهي ليست في كثير من الأحيان).

وأو عندما أعرف أن هناك سلسلة من شأنها أن تصبح كبيرة بما فيه الكفاية. (أكثر من 100K شار)

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