Double-digit millisecond pauses are not nothing.  They may be acceptable
right now but unless you can offer a drastically cleaner syntax Fred should
stick with predicates as they are handled much better by the hotspot jit.
On Mar 22, 2012 5:36 PM, "Ximin Luo" <infini...@gmx.com> wrote:

> Lazy evaluation is trivial.
>
> Log.info("{1} did {2}",
>  new Object(){ public String toString() { return ITEM_1; } },
>  new Object(){ public String toString() { return ITEM_2; } }
> );
>
> Garbage collection with short-lived objects costs next to nothing.
>
> On 22/03/12 21:15, Zlatin Balevsky wrote:
> > Constructing the logging strings is half of the problem.  The amount of
> garbage
> > they will generate will result in significantly more time in garbage
> collection
> > pauses.
> >
> > Unless you figure out a way to mimic lazy evaluation you have to live
> with the
> > isLoggable predicates.  varargs are not an option either because they
> also
> > create garbage.
> >
> > On Mar 22, 2012 8:11 AM, "Marco Schulze" <marco.c.schu...@gmail.com
> > <mailto:marco.c.schu...@gmail.com>> wrote:
> >
> >
> >
> >     On 22-03-2012 08:50, Matthew Toseland wrote:
> >
> >         On Wednesday 21 Mar 2012 21:18:37 Marco Schulze wrote:
> >
> >             There are basically two big concerns regarding logging in
> fred:
> >
> >             - Readability and code clutter, which was my original
> questioning;
> >             - Raw throughput, as raised by toad.
> >
> >             Point 1 could mostly be solved by removing any traces of
> logMINOR and
> >             logDEBUG on all but the few places where generating messages
> to be
> >             logged brings noticeable slowdown. That'd be enough, but,
> personally,
> >             the mess that the logging backend is does warrant a
> replacement.
> >             According to toad, the current system needs log{MINOR,DEBUG}
> to
> >             function
> >             in a timely manner. Based on this, I think we all agree a
> >             replacement is
> >             desirable.
> >
> >             Logging has a few additional requirements:
> >
> >             - Log rotation (possibly live);
> >             - Reentrant;
> >             - Per-class filtering;
> >             - Specific information in log (class-name, for example).
> >
> >             Now, _any_ library which fits would make me happy, as long
> as they
> >             agree
> >             to two points:
> >
> >             - Either lightweight or with optional features. Else, it
> would only
> >             transfer bloat to freenet-ext.jar. For example: log2socket,
> config
> >             management and multiple logging instances;
> >             - Implementable in a few LoC. Specially, it shouldn't need
> specialized
> >             Formatter and Writer.
> >
> >             Plus, it should be fast.
> >
> >              From the quick research I made (yep, too many lists):
> >
> >             - SLF4J already fails on point one: it is simply a wrapper;
> >             - The Java logging API fails on point two: specialized
> classes would
> >             have to be written to deal with log rotation, per-class
> filtering and
> >             formatting, plus a wrapper for Logger.{info,warning,...}()
> methods.
> >             Exactly the same as a custom logger, with one more
> dependency and using
> >             more LoC;
> >
> >         No dependancies, it's part of the JDK, isn't it?
> >
> >     More classes need to be loaded at startup. It's just me thinking too
> much.
> >
> >
> >         However, if it's not a clearer/simpler API, it probably doesn't
> make
> >         much sense.
> >
> >             - Log4J seems to fail on point one - it only lacks a button
> that brings
> >             back the dead. It seems interesting, and I haven't dropped
> this yet.
> >
> >             In either case (custom or external), log* would be banished.
> Forever.
> >
> >         I don't follow. You object to using a separate logs folder?
> >
> >     log* == log{MINOR,DEBUG}, not the logs folder.
> >     _________________________________________________
> >     Devl mailing list
> >     Devl@freenetproject.org <mailto:Devl@freenetproject.org>
> >     https://emu.freenetproject.__org/cgi-bin/mailman/listinfo/__devl
> >     <https://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl>
> >
> >
> >
> > _______________________________________________
> > Devl mailing list
> > Devl@freenetproject.org
> > https://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl
>
>
> --
> GPG: 4096R/5FBBDBCE
> https://github.com/infinity0
> https://bitbucket.org/infinity0
> https://launchpad.net/~infinity0
>
>
> _______________________________________________
> Devl mailing list
> Devl@freenetproject.org
> https://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl
>
_______________________________________________
Devl mailing list
Devl@freenetproject.org
https://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl

Reply via email to