But the slowness comes from printing a too large stack, no ? 
Why not just limit the size of the stack being printed ?

> On 14 Aug 2016, at 09:24, Tudor Girba <[email protected]> wrote:
> 
> Hi,
> 
>> On Aug 14, 2016, at 9:14 AM, Max Leske <[email protected]> wrote:
>> 
>> Awesome Denis!
>> 
>>> On 13 Aug 2016, at 10:54, Tudor Girba <[email protected]> wrote:
>>> 
>>> Very cool analysis!
>>> 
>>> What would your proposal be in this case?
>> 
>> Some ideas:
>> 
>> - perform logging in a separate process
>> - only log user interrupt once for any given time interval, i.e., while a 
>> previous interrupt is being logged, ignore logging for further interrupts.
>> 
>> Alternatively: don’t log user interrupts. I don’t really see the value 
>> anyway.
> 
> I kind of like the idea of not logging user interrupts. What do others think?
> 
> Cheers,
> Doru
> 
>> Cheers,
>> Max
>> 
>>> 
>>> Doru
>>> 
>>> 
>>>> On Aug 13, 2016, at 10:42 AM, Denis Kudriashov <[email protected]> 
>>>> wrote:
>>>> 
>>>> We had discussion on reasons why cmd+. is not always working.
>>>> I made simple test which shows that VM is not issue. Following code 
>>>> normally stops after 20 seconds:
>>>>    
>>>>    hanging := [1 seconds wait. 1 recursionTest] newProcess.
>>>>    hanging priority: Processor activePriority + 10.
>>>>    interruptor := [ 20 seconds wait. hanging suspend] newProcess.
>>>>    interruptor priority: Processor activePriority + 11.
>>>> 
>>>>    hanging resume.
>>>>    interruptor resume.
>>>> 
>>>> Recursion method:
>>>>    Integer>>recursionTest
>>>>            self recursionTest
>>>> 
>>>> Hanging process produces 7 million contexts on my machine:
>>>> 
>>>> c := hanging suspendedContext.
>>>> count := 1.
>>>> [ c notNil ] whileTrue: [ c := c sender. count := count + 1 ].
>>>> count «7395279"
>>>> 
>>>> But if you try to debug it by "hanging debug" you will see how it is slow. 
>>>> It's caused by printing stack to file. 
>>>> Interesting that logging is performed before opening debugger. So every 
>>>> time we press cmd+. we are waiting logging to see debugger.
>>>> 
>>>> We need to change this logic. 
>>>> 
>>>> Best regards,
>>>> Denis
>>>> 
>>> 
>>> --
>>> www.tudorgirba.com
>>> www.feenk.com
>>> 
>>> "One cannot do more than one can do."
>>> 
>>> 
>>> 
>>> 
>>> 
>> 
>> 
> 
> --
> www.tudorgirba.com
> www.feenk.com
> 
> "Yesterday is a fact.
> Tomorrow is a possibility.
> Today is a challenge."


Reply via email to