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

Reply via email to