Just trying to reduce the amount of temporary objects created on the heap to resolve this OutOfMemory issue with AppFuse, and with the 1.6.5 source, I can reduce memory consumption by putting a guard around when Strings are created for logging eg:

log("Copying "+fromFile+" to "+toFile, verbosity)

becomes

StringBuffer sb = new StringBuffer("Copying ").append(fromFile).append(" to ");
... (code elided)
//not the same behaviour, but need to try and see : don't log unless user wants debug output
if (verbosity >= Project.MSG_DEBUG) {
 log(sb.append(toFile).toString(), verbosity);
}

This helps as the strings aren't created at all unless the verbosity is set to DEBUG, however, in Ant 1.7, even with this change, there is an OutOfMemory error. Basically some of the 1.7 tasks are consuming much more memory than the 1.6.5 codebase.

In general though, the logging mechanism is always going to create a lot of temporary cruft as it stands, and this is perhaps one area where there could be some refactoring?



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to