Run | Log4J Direct | Jakarta (Interface) | Jakarta (Impl) |
---|---|---|---|
Run #1 | 741 | 711 | 701 |
Run #2 | 1622 | 671 | 551 |
Run #3 | 661 | 521 | 541 |
Run #4 | 641 | 540 | 571 |
Run #5 | 621 | 541 | 551 |
Run #6 | 610 | 521 | 551 |
Run #7 | 611 | 531 | 560 |
Run #8 | 611 | 531 | 551 |
Run #9 | 621 | 521 | 550 |
Run #10 | 611 | 521 | 551 |
Run #11 | 611 | 530 | 551 |
Run #12 | 611 | 521 | 551 |
Run #13 | 611 | 520 | 561 |
Run #14 | 611 | 531 | 550 |
Run #15 | 611 | 511 | 531 |
Run #16 | 581 | 510 | 581 |
Run #17 | 621 | 531 | 601 |
Run #18 | 631 | 571 | 570 |
Run #19 | 621 | 541 | 571 |
Run #20 | 621 | 541 | 570 |
The tests invoked isDebugEnabled()
50,000,000 times. I did what I could to help ensure that things didn't get unrealistically inlined.
What I don't understand is why going through the Log
interface is sometimes faster than either going through the Log4J Logger
class,
or through the commons-logging Log4JCategoryLog
class. I checked the commons-logging
code ... Log4JCategoryLog
is a very thin wrapper that delegates
to a Logger
.
Anyway, until I find better tests for figuring out performance, there's no reason to change the LoggingInterceptor code.
No comments:
Post a Comment