Ok, I will check.
Alexandre
On 12 Nov 2010, at 17:40, Max Leske wrote:
> Hi Alexandre
>
> The weird behaviour seems to be related to inline compilation in workspaces.
> I moved the execution into a method, now everything's back to normal.
>
> In the meantime I verified the previously described scenarios with a fresh
> one-click image (Pharo 1.1).
> One really dramatic example is this:
>
> repo := FSGitRepository on: FSDiskFilesystem current working / 'foo'.
> MessageTally spyOn: [ repo tagNames ]
>
> ---> 3ms for a huge repository with 10 tags.
>
>
> MemoryProfiler
> viewProfiling: [ repo tagNames ]
>
> ---> low space warning (same repository etc.)
>
>
> I hope you might have an idea what's going wrong.
>
> Cheers,
> Max
>
>
>
>
> Hi again.
> Please ignore the last e-mail for the moment. There's something weird going
> on in my image. I'll run some tests on a fresh official image first and then
> post back.
> Max
>
>
> ---------------------------------
> Thanks Alexandre.
> Now I tried out your example and they worked perfectly. I have run into two
> problem though which I don't know how to deal with:
> 1. When I run anything else than what you suggested, I do get the window for
> the profiling view but it is empty. E.g when I run this:
>
> MemoryProfiler
> viewProfiling: [ 1 to: 100000 do: [ :i |
> (FSMemoryFilesystem new root / ('foo', i asString))
> writeStreamDo: [ :stream | stream nextPutAll:
> 'foo' ] ] ]
> 2. When I run the code I am actually interested I get a low space warning.
> Example:
> repo := FSGitRepository on: FSMemoryFilesystem new root / 'foo'
> MemoryProfiler
> viewProfiling: [ repo head ]
>
> I'll be happy to run any tests you suggest. If you'd like to run the code
> yourself, get the packages from Gofer:
> Gofer new
> squeaksource: 'GitFS';
> package: 'FS-Git';
> package: 'Filesystem';
> load.
> Cheers,
> Max
>
>
> On 09.11.2010, at 22:42, Alexandre Bergel wrote:
>> Hi Max,
>>
>>> Um... I should be able to get a visualisation by running somthing like this
>>> right (I only installed it, didn't subclass anything)?
>>>
>>> MemoryProfiler
>>>
>> viewProfiling: [ FSDiskFilesystem current working / foo ].
>>>
>>> I get a window but there's nothing in it...
>>
>> The piece of code you want to profile needs is executed twice, and it needs
>> "to be time consuming" (~ 1 second).
>> For example, try:
>>
>> MemoryProfiler
>> viewProfiling: [
>> | view |
>>
>> view := MOViewRenderer new.
>> view nodes: (1 to: 5000).
>> view root applyLayout ]
>>
>> or
>>
>> MemoryProfiler
>> viewProfiling: [ (1 to: 2) collect: [ :i |
>> ConfigurationOfMetacello project currentVersion ] ]
>>
>> to get a nice picture
>>
>>> Also, is selecting the expression in the block above, right clicking and
>>> selecting "memory profile it" equivalent to sending #viewProfiling: ?
>>
>> yes
>>
>>> Reading your paper I get the idea that this should work, when looking at
>>> the instructions on the moose site it rather seems that I need to subclass
>>> MemoryProfiler to actually profile anything.
>>
>> No need to subclass.
>>
>> Cheers,
>> Alexandre
>>
>>>
>>>
>>>
>>> On 09.11.2010, at 15:02, Alexandre Bergel wrote:
>>>
>>>> Ok, but please, provide feedback.
>>>>
>>>> Alexandre
>>>>
>>>>
>>>> On 9 Nov 2010, at 10:40, Max Leske wrote:
>>>>
>>>>> Sounds like what I just needed! I'll try it out.
>>>>>
>>>>> Cheers,
>>>>> Max
>>>>>
>>>>>
>>>>> On 09.11.2010, at 12:42, Alexandre Bergel wrote:
>>>>>
>>>>>> Hi Guido,
>>>>>>
>>>>>> We wrote a profiler to keep track of memory consumption.
>>>>>>
>>>>>> http://bergel.eu/download/papers/Berg10g-MemoryProfiling.pdf
>>>>>>
>>>>>> It will be presented at Smalltalks next week.
>>>>>>
>>>>>> Cheers,
>>>>>> Alexandre
>>>>>>
>>>>>> On 8 Nov 2010, at 23:47, Guido Stepken wrote:
>>>>>>
>>>>>>> E.g.: Three different solutions for a Euler problem:
>>>>>>>
>>>>>>> (1 to: 999) inject: 0 into: [:sum :i | (i \\ 3 = 0) | (i \\ 5 = 0)
>>>>>>>
>> ifTrue: [sum + i]
>>>>>>>
>> ifFalse: [sum]]
>>>>>>>
>>>>>>>
>>>>>>> (1 to: 999) detectSum: [:i | (i \\ 3 = 0) | (i \\ 5 = 0) ifTrue: [i]
>>>>>>> ifFalse: [0]]
>>>>>>>
>>>>>>> (1 to: 999) detectSum: [:i | i * (#(0 0 1 0 1 1 0 0 1 1 0 1 0 0 1)
>>>>>>> atWrap: i)]
>>>>>>>
>>>>>>> How do i measure the exact memory footprint of each solution?
>>>>>>>
>>>>>>> Pharo claims having reduced memory footprint at many places. Can that
>>>>>>> be proofed, e.g. with one comparable demo app, once run in old squeak,
>>>>>>> once in Pharo 1.1/1.2?
>>>>>>>
>>>>>>> And no, MessageTally spyOn: does not do right!
>>>>>>>
>>>>>>> Tnx in advance, Guido Stepken
>>>>>>>
>>>>>>>
>>>>>>
>>>>>> --
>>>>>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>>>>>> Alexandre Bergel http://www.bergel.eu
>>>>>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>
>>>> --
>>>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>>>> Alexandre Bergel http://www.bergel.eu
>>>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>
>> --
>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>> Alexandre Bergel http://www.bergel.eu
>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>
>>
>>
>>
>>
>>
>
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.