--- Kev Jackson <[EMAIL PROTECTED]> wrote:
> Dominique Devienne wrote:
>
> >>The point about building the strings when they
> aren't used (because
> >>logging verbosity is set too low) still stands
> though - this is less
> >>than efficient
> >>
> >>
> >
> >The point, which Matt already raised, is that you
> can't know the level
> >at which the logger and the listeners are set.
> There is nothing ATM in
> >the Ant codebase to tip off the project as to the
> min log level of all
> >logger+listener to implement your optimization.
> This could be can be
> >added though, and would be useful IMHO, but that's
> a separate thread.
> >
> >
> >
> I know, that was why I didn't want to wrap the log
> code in if(verbosity
> >= Project.MSG_INFO) conditionals - it's sort of a
> catch-22 situation,
> you don't want to log the message (or even bother
> building it) if it
> won't be used, but that can't be determined, so you
> must build the
> message just in case - I agree a mechanism for you
> to retrieve the
> minimum logging level of the entire project would be
> useful in this
> situation
>
> >The StringBuffer optimization is well known. I've
> either read about it
> >in Effective Java or the "K&R" of Java,
> The.Java.Prog.Lang.
> >
> >
> I think it was in Effective Java, but as Alexey
> showed previously,
> Java1.4+ actually perform this operation for you,
> letting you be as lazy
> as you like with String concatenation (now that's
> progress!). I have to
> stop beating up the junior devs here whenever I see
> sqlString = "Select
> " + field + " from " + table + " where " + field + "
> = value"; as we are
> on 1.4 internally so it doesn't degrade performance
> anymore. Still I'd
> prefer to be able to do something like "yada yada
> ${var1} yada yada
> ${var2}" like the property expansion that is already
> in Ant - I
> personally think it's much cleaner than "yada yada "
> + var1 + "yada
> yada" + var2., even the Java5 printf isn't as nice
> as it could be for
> constructing messages (although it's a long way
> forward).
>
> >I think what you propose to do would clutter the
> code, and make it
> >ugly frankly ;-) I'd probably -1 it unless you can
> show hard evidence
> >of it's usefulness.
> >
> >
> If it came to it I'd -1 it too! I don't like any of
> the solutions I
> could come up with yesterday, the one I showed was
> the 'least worst'
> that I could think of, with a semi-upgrade path to
> Java5 style varargs
> (use an object array). I was mainly throwing the
> idea out to see what
> peoples reactions were - overall I don't think it's
> the right way to
> solve the problem - the real problem is that the
> level of logging cannot
> currently be determined and so any optimization (for
> memory or
> performance) is actually changing the behaviour of
> the code - which it
> shouldn't do.
>
> The delete task was just an example - I was looking
> at it to fix 'delete
> task won't be quiet' bug in bugzilla, and I was also
> thinking about the
> problem with AppFuse, (which does use Delete a
> little, but not as much
> as Copy and other tasks), so it seemed like a handy
> guinea pig as I had
> the code open at the time.
>
> I was also looking at Copy and saw that
> ResourceUtils.copyResource is a
> static method, but FileUtils.copyFile is not even
> though it delegates to
> copyResource, this means that in Copy there must be
> an instantiated
> fileUtils object, just to perform the copy,
> unfortunately the FileUtils
> interface/API is public so changing it would break
> bwc, but I'd like to
> add a static method for copyFile so that Copy wont
> need to instantiate
> FileUtils.
Kev: I've asked some stuff about FileUtils before...
historically it was thought it might be pluggable,
hence all the instance methods. But that never
happened so the static methods crept in. I think it
was Martijn who really pushed in the FileUtils
singleton. Most places in Ant's code don't
instantiate their own FileUtils anymore, and if they
do they shouldn't; they should use the singleton.
-Matt
>
> Thanks everyone for feedback
> Kev
>
>
---------------------------------------------------------------------
> To unsubscribe, e-mail:
> [EMAIL PROTECTED]
> For additional commands, e-mail:
> [EMAIL PROTECTED]
>
>
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]