Looking at your latest commit, your number looks similar to mine.

Ralph

> On Aug 9, 2018, at 11:14 AM, Ralph Goers <ralph.go...@dslextreme.com> wrote:
> 
> No, I haven’t committed it. I started looking into it but got sidetracked 
> with having to earn a living.
> 
> Ralph
> 
>> On Aug 9, 2018, at 11:13 AM, Carter Kozak <cko...@apache.org> wrote:
>> 
>> I've pushed the benchmark here:
>> https://github.com/apache/logging-log4j2/pull/209
>> 
>> Is the extended stack trace benchmark committed somewhere? I don't see
>> it in log4j-perf.
>> My benchmark isn't very pretty either, I'm open to ideas for cleaning
>> up the implementation.
>> 
>> -ck
>> 
>> On Thu, Aug 9, 2018 at 1:56 PM, Ralph Goers <ralph.go...@dslextreme.com> 
>> wrote:
>>> I created a micro benchmark for the extended stack trace. It isn’t pretty.
>>> 
>>> Ralph
>>> 
>>>> On Aug 9, 2018, at 10:53 AM, Carter Kozak <cko...@apache.org> wrote:
>>>> 
>>>> That's true, as long as we collect the stack trace when the
>>>> ThrowableProxy is created, the rest can be deferred. I can take a look
>>>> at this.
>>>> 
>>>> I'm working on a benchmark with a larger stack to simulate conditions
>>>> in a real application as well.
>>>> 
>>>> -ck
>>>> 
>>>> On Thu, Aug 9, 2018 at 12:47 PM, Ralph Goers <ralph.go...@dslextreme.com> 
>>>> wrote:
>>>>> What I don’t understand is that ThrowableProxy seems to be doing a whole 
>>>>> bunch of stuff in the constructor. I would think a lot of that could be 
>>>>> deferred until the Throwable is being rendered.
>>>>> 
>>>>> Ralph
>>>>> 
>>>>>> On Aug 9, 2018, at 8:10 AM, Carter Kozak <c4kof...@gmail.com> wrote:
>>>>>> 
>>>>>> The piece I'd like to avoid is ThrowableProxy.loadClass invocations,
>>>>>> which can be expensive depending on the ClassLoader implementation.
>>>>>> The ThrowablePatternConverter implementations all fall back to the
>>>>>> default implementation which operates directly on a Throwable rather
>>>>>> than the proxy object.
>>>>>> 
>>>>>> I would prefer to make ThrowableProxy work better rather than
>>>>>> disabling it entirely, which would open the flood gates for issues
>>>>>> with the Jackson and Serializable layouts, though the counterargument
>>>>>> is that without loading classes, there is no additional information
>>>>>> provided by ThrowableProxy over a Throwable.
>>>>>> 
>>>>>> I will take a look at flagging ThrowableProxy class loading instead of
>>>>>> disabling ThrowableProxy entirely when I have a moment.
>>>>>> 
>>>>>> Thanks,
>>>>>> -ck
>>>>>> 
>>>>>> On Thu, Aug 9, 2018 at 1:36 AM, Ralph Goers <ralph.go...@dslextreme.com> 
>>>>>> wrote:
>>>>>>> What is the purpose of disabling ThrowableProxy? All the throwable 
>>>>>>> pattern converters rely on it.
>>>>>>> 
>>>>>>> Ralph
>>>>>>> 
>>>>>>>> On Aug 8, 2018, at 8:34 AM, Carter Kozak <cko...@apache.org> wrote:
>>>>>>>> 
>>>>>>>> I'm curious what you would think of a system property to disable
>>>>>>>> ThrowableProxy creation?
>>>>>>>> My initial preference was to avoid this type of flag and make the
>>>>>>>> common case cleaner, however
>>>>>>>> without providing a mechanism to disable the functionality that
>>>>>>>> differentiates it from Throwable
>>>>>>>> I'm not sure that's feasible.
>>>>>>>> 
>>>>>>>> An alternative approach may be to allow custom implementations of the
>>>>>>>> logic surrounding
>>>>>>>> ThrowableProxy.toCacheEntry which could potentially disable 
>>>>>>>> classloader lookups,
>>>>>>>> or implement something like the request in github pull/195. This 
>>>>>>>> extension point
>>>>>>>> would make ThrowableProxy refactors significantly more difficult in 
>>>>>>>> the future.
>>>>>>>> 
>>>>>>>> -ck
>>>>>>>> 
>>>>>>>> On Tue, Aug 7, 2018 at 11:10 PM, Carter Kozak <c4kof...@gmail.com> 
>>>>>>>> wrote:
>>>>>>>>> My guess is that StackWalker provides additional information beyond
>>>>>>>>> the array of classes
>>>>>>>>> supplied by the SecurityManager, though I've not done a thorough 
>>>>>>>>> analysis yet.
>>>>>>>>> 
>>>>>>>>> A quick targeted benchmark of our current implementations:
>>>>>>>>> 
>>>>>>>>> Benchmark                                               Mode  Cnt
>>>>>>>>> Score        Error  Units
>>>>>>>>> StackTraceBenchmark.defaultJava8        thrpt    3  113965.921 ±
>>>>>>>>> 119706.986  ops/s
>>>>>>>>> StackTraceBenchmark.securityManager  thrpt    3  788004.237 ±  
>>>>>>>>> 82578.567  ops/s
>>>>>>>>> StackTraceBenchmark.stackWalker         thrpt    3  182902.031 ±
>>>>>>>>> 39018.395  ops/s
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> -ck
>>>>>>>>> 
>>>>>>>>> On Tue, Aug 7, 2018 at 7:20 PM, Ralph Goers 
>>>>>>>>> <ralph.go...@dslextreme.com> wrote:
>>>>>>>>>> I have to wonder why using the security manager is faster than using 
>>>>>>>>>> StackWalker. StackWalker was created just for this purpose. Is the 
>>>>>>>>>> way it is implemented the problem?
>>>>>>>>>> 
>>>>>>>>>> Ralph
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>>> On Aug 7, 2018, at 1:34 PM, cakofony <g...@git.apache.org> wrote:
>>>>>>>>>>> 
>>>>>>>>>>> GitHub user cakofony opened a pull request:
>>>>>>>>>>> 
>>>>>>>>>>> https://github.com/apache/logging-log4j2/pull/202
>>>>>>>>>>> 
>>>>>>>>>>> [LOG4J2-2391] Improve ThrowableProxy performace on java 9+
>>>>>>>>>>> 
>>>>>>>>>>> Share the SecurityManager implementation of getCurrentStackTrace
>>>>>>>>>>> with the java 9 implementation.
>>>>>>>>>>> 
>>>>>>>>>>> You can merge this pull request into a Git repository by running:
>>>>>>>>>>> 
>>>>>>>>>>> $ git pull https://github.com/cakofony/logging-log4j2 
>>>>>>>>>>> java9_getcurrentstacktrace
>>>>>>>>>>> 
>>>>>>>>>>> Alternatively you can review and apply these changes as the patch 
>>>>>>>>>>> at:
>>>>>>>>>>> 
>>>>>>>>>>> https://github.com/apache/logging-log4j2/pull/202.patch
>>>>>>>>>>> 
>>>>>>>>>>> To close this pull request, make a commit to your master/trunk 
>>>>>>>>>>> branch
>>>>>>>>>>> with (at least) the following in the commit message:
>>>>>>>>>>> 
>>>>>>>>>>> This closes #202
>>>>>>>>>>> 
>>>>>>>>>>> ----
>>>>>>>>>>> commit 52bf8569e8e9881d0999156c31d99b99f28e6e73
>>>>>>>>>>> Author: Carter Kozak <ckozak@...>
>>>>>>>>>>> Date:   2018-08-07T20:27:10Z
>>>>>>>>>>> 
>>>>>>>>>>> [LOG4J2-2391] Improve ThrowableProxy performace on java 9+
>>>>>>>>>>> 
>>>>>>>>>>> Share the SecurityManager implementation of getCurrentStackTrace
>>>>>>>>>>> with the java 9 implementation.
>>>>>>>>>>> 
>>>>>>>>>>> ----
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>> ---
>>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>>> 
>>>> 
>>> 
>>> 
>> 
> 
> 
> 


Reply via email to