david, just to get clear, is this what you'd do instead? i've been wondering about the efficiency of Concat vs. Stringbuilder. do your benchmarks take garbage collection into account?
if ( this.Verbose ) { string message = String.Concat( "SQL Task:", Environment.NewLine), "Connection String: ", ConnectionString, Environment.NewLine, "Use Transaction?: " , UseTransaction.ToString() , Environment.NewLine, "Batch Sql Statements?: " , this.Batch.ToString() , Environment.NewLine, "Batch Delimiter: " , this.Delimiter , Environment.NewLine, "Delimiter Style: " , this.DelimiterStyle.ToString() , Environment.NewLine, "Fail On Error?: " , this.FailOnError.ToString() , Environment.NewLine, "Source script file: " , this.Source , Environment.NewLine, "Output file: " , this.Output , Environment.NewLine ); Log(Level.Info, message ); } /jean > -----Original Message----- > From: David Reed [mailto:[EMAIL PROTECTED] > Sent: Wednesday, September 17, 2003 04:57 > To: Ian MacLean > Cc: [EMAIL PROTECTED] > Subject: RE: [NAntC-Dev] SqlTask verbosity patch and > mysterious usage of StringBuilder > > > Ian, > > Unfortunately, no. But AppendFormat(...) does. > > We don't use StringBuilder too much internally, because the > consensus has been (despite what the fine manual says and all > the fine MCTs teach) that it's not any faster than catting > (we've run some 100k and 1M iteration tests that seem to > indicate that it's actually slower for our typical string cat > case) *and* more importantly it is less readable/maintainable > than the comparable string cat cases in C#. > > I'd love to see some code that I can run in-house that > demonstrates the conventional wisdom about StringBuilder to > be true, if anybody knows of some - that might restore some > of my faith in humanity and/or our electoral process. :) > Especially since my developer who was the most ardent > anti-string builder campaigner has taken his soapbox elsewhere... > > Since I'm already messing around in SqlTask, I'll change > those errant, embedded cats inside Append() calls to use > AppendFormat() and I'll resend the patch in a few hours. > > > > > -----Original Message----- > > From: Ian MacLean [mailto:[EMAIL PROTECTED] > > Sent: Tuesday, September 16, 2003 11:04 PM > > To: David Reed > > Cc: [EMAIL PROTECTED] > > Subject: Re: [NAntC-Dev] SqlTask verbosity patch and > mysterious usage > of > > StringBuilder > > > > David, > > You're probably right. Does Append support the {1} > formatting syntax ? > > Ian > > > > > Howdy'all, I'm working through the verbosity behavior in > SqlTask to > > > make it behave more like what I expected (please see the attached > > > patch for your consideration) and I came across this additional > > > oddity. Does it strike anybody else as defeating the purpose of > using > > > StringBuilder in the first place? I didn't change it in the > attached > > > patch, but it (although more readable that proper Append()s should > be) > > > has Code Smell(r) to me. :) > > > > > > > > > > > > Peoples' Exhibit 001a: > > > > > > > > > > > > if ( this.Verbose ) { > > > > > > StringBuilder message = new StringBuilder(); > > > > > > message.Append ("SQL Task:" + Environment.NewLine); > > > > > > message.Append ("Connection String: " + > ConnectionString > > > + Environment.NewLine); > > > > > > message.Append ("Use Transaction?: " + > > > UseTransaction.ToString() + Environment.NewLine); > > > > > > message.Append ("Batch Sql Statements?: " + > > > this.Batch.ToString() + Environment.NewLine); > > > > > > message.Append ("Batch Delimiter: " + > this.Delimiter + > > > Environment.NewLine); > > > > > > message.Append ("Delimiter Style: " + > > > this.DelimiterStyle.ToString() + Environment.NewLine); > > > > > > message.Append ("Fail On Error?: " + > > > this.FailOnError.ToString() + Environment.NewLine); > > > > > > message.Append ("Source script file: " + > this.Source + > > > Environment.NewLine); > > > > > > message.Append ("Output file: " + this.Output + > > > Environment.NewLine); > > > > > > Log(Level.Info, message.ToString()); > > > > > > } > > > > > > > > > > > > > > > > > ------------------------------------------------------- > This sf.net email is sponsored by:ThinkGeek > Welcome to geek heaven. > http://thinkgeek.com/sf > _______________________________________________ > NAntContrib-Developer mailing list > [EMAIL PROTECTED] > https://lists.sourceforge.net/lists/listinfo/nantcontrib-developer > ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ NAntContrib-Developer mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/nantcontrib-developer