Re: [Pharo-dev] What will change in Pharo with Spur the new Cog memory manager ...

2014-02-07 Thread Stephan Eggermont
Clément wrote:
I wouldn't say no problem, I would say that images up to 1 Gb should be usable 
and should behave much better than they used to due to the lack of full GC 
pauses. Now that's the theory we need to make it real and this summer we will 
see...

I'm a bit confused by the term 'big image'. I regularly use 1GB images with 
cog, and they stay responsive enough for development work. As long as there is 
enough free space that the full gc doesn't have to happen very often, it's ok. 
Current home machines work with 32 GB ram though, so I hope the gc can handle 
somewhat larger images? 

Stephan Eggermont


Re: [Pharo-dev] What will change in Pharo with Spur the new Cog memory manager ...

2014-02-06 Thread btc




Clment Bera wrote:

  Hello pharoers,
  
  
  The new Cog memory manager, Spur, is simply *amazing*. I saw at
FOSDEM that some of you were interested in it, but unfortunately you
were lacking information about it.
  
  
  I wrote a one page article that sums up Spur's new features so
every one can know what will be better. There's no VM technical details
here, it's just about what will change for a regular pharo user.
  
  
  http://clementbera.wordpress.com/2014/02/06/7-points-summary-of-the-spur-memory-manager/
  
  
  
  Let me know if you think I forgot yet another feature.
  
  
If you have questions, I'll try to answer, but ask Eliot, he
implemented Spur so he can answer your questions much better than I can
:-).
  
  
  
  Regards,
  
  
  Clment
  


In
what way would the speed-up for Characters being immediate improve
Unicode performance, and/or would it be worthwhile having an immediate
representation of UnicodeCharacters? I found Roassal to go an order of
magnitude slower when displaying labels with Unicode (but there may be
many reasons for that) ?

cheers -ben






Re: [Pharo-dev] What will change in Pharo with Spur the new Cog memory manager ...

2014-02-06 Thread kilon alios
thats very good news , 64 bit is rather close now which mean even more C
libraries available for Pharo and loads of GB of memory to exploit.


On Thu, Feb 6, 2014 at 7:19 PM, b...@openinworld.com wrote:

  Clément Bera wrote:

 Hello pharoers,

  The new Cog memory manager, Spur, is simply *amazing*. I saw at FOSDEM
 that some of you were interested in it, but unfortunately you were lacking
 information about it.

  I wrote a one page article that sums up Spur's new features so every one
 can know what will be better. There's no VM technical details here, it's
 just about what will change for a regular pharo user.


 http://clementbera.wordpress.com/2014/02/06/7-points-summary-of-the-spur-memory-manager/

  Let me know if you think I forgot yet another feature.

 If you have questions, I'll try to answer, but ask Eliot, he implemented
 Spur so he can answer your questions much better than I can :-).

  Regards,

  Clément


 In what way would the speed-up for Characters being immediate improve
 Unicode performance, and/or would it be worthwhile having an immediate
 representation of UnicodeCharacters? I found Roassal to go an order of
 magnitude slower when displaying labels with Unicode (but there may be many
 reasons for that) ?

 cheers -ben



Re: [Pharo-dev] What will change in Pharo with Spur the new Cog memory manager ...

2014-02-06 Thread kilon alios
Igoor where are you ? :D

I am in no hurry personally , but its great to see the VM moving towards
the right direction and see taking Pharo with it. And the other
enhancements are really nice too.

I wonder if GC control will be given, to assign objects to different part
of the memory of the VM. So this way you can have objects that are more, or
higher prioritised garbage collected. Maybe this way, user/coder given more
freedom to customise performance. Will that be possible ?


On Thu, Feb 6, 2014 at 9:22 PM, Esteban Lorenzano esteba...@gmail.comwrote:


 On 06 Feb 2014, at 19:51, kilon alios kilon.al...@gmail.com wrote:

 thats very good news , 64 bit is rather close now which mean even more C
 libraries available for Pharo and loads of GB of memory to exploit.


 yes, but just *closer*... we'll still need the 64bits FFI :)



 On Thu, Feb 6, 2014 at 7:19 PM, b...@openinworld.com wrote:

  Clément Bera wrote:

 Hello pharoers,

  The new Cog memory manager, Spur, is simply *amazing*. I saw at FOSDEM
 that some of you were interested in it, but unfortunately you were lacking
 information about it.

  I wrote a one page article that sums up Spur's new features so every
 one can know what will be better. There's no VM technical details here,
 it's just about what will change for a regular pharo user.


 http://clementbera.wordpress.com/2014/02/06/7-points-summary-of-the-spur-memory-manager/

  Let me know if you think I forgot yet another feature.

 If you have questions, I'll try to answer, but ask Eliot, he implemented
 Spur so he can answer your questions much better than I can :-).

  Regards,

  Clément


 In what way would the speed-up for Characters being immediate improve
 Unicode performance, and/or would it be worthwhile having an immediate
 representation of UnicodeCharacters? I found Roassal to go an order of
 magnitude slower when displaying labels with Unicode (but there may be many
 reasons for that) ?

 cheers -ben






Re: [Pharo-dev] What will change in Pharo with Spur the new Cog memory manager ...

2014-02-06 Thread kilon alios
ah ok , shows how little I know about GCs :D


On Thu, Feb 6, 2014 at 10:35 PM, Esteban Lorenzano esteba...@gmail.comwrote:


 On 06 Feb 2014, at 20:49, kilon alios kilon.al...@gmail.com wrote:

 Igoor where are you ? :D

 I am in no hurry personally , but its great to see the VM moving towards
 the right direction and see taking Pharo with it. And the other
 enhancements are really nice too.

 I wonder if GC control will be given, to assign objects to different part
 of the memory of the VM. So this way you can have objects that are more, or
 higher prioritised garbage collected. Maybe this way, user/coder given more
 freedom to customise performance. Will that be possible ?


 nope, just object pinning.
 afaik, what you ask for is not possible in any GC, because precisely the
 idea is to abstract you from that :)



 On Thu, Feb 6, 2014 at 9:22 PM, Esteban Lorenzano esteba...@gmail.comwrote:


 On 06 Feb 2014, at 19:51, kilon alios kilon.al...@gmail.com wrote:

 thats very good news , 64 bit is rather close now which mean even more C
 libraries available for Pharo and loads of GB of memory to exploit.


 yes, but just *closer*... we'll still need the 64bits FFI :)



 On Thu, Feb 6, 2014 at 7:19 PM, b...@openinworld.com wrote:

  Clément Bera wrote:

 Hello pharoers,

  The new Cog memory manager, Spur, is simply *amazing*. I saw at FOSDEM
 that some of you were interested in it, but unfortunately you were lacking
 information about it.

  I wrote a one page article that sums up Spur's new features so every
 one can know what will be better. There's no VM technical details here,
 it's just about what will change for a regular pharo user.


 http://clementbera.wordpress.com/2014/02/06/7-points-summary-of-the-spur-memory-manager/

  Let me know if you think I forgot yet another feature.

 If you have questions, I'll try to answer, but ask Eliot, he implemented
 Spur so he can answer your questions much better than I can :-).

  Regards,

  Clément


 In what way would the speed-up for Characters being immediate improve
 Unicode performance, and/or would it be worthwhile having an immediate
 representation of UnicodeCharacters? I found Roassal to go an order of
 magnitude slower when displaying labels with Unicode (but there may be many
 reasons for that) ?

 cheers -ben








Re: [Pharo-dev] What will change in Pharo with Spur the new Cog memory manager ...

2014-02-06 Thread Eliot Miranda
Hi Ben,


On Thu, Feb 6, 2014 at 9:19 AM, b...@openinworld.com wrote:

  Clément Bera wrote:

 Hello pharoers,

  The new Cog memory manager, Spur, is simply *amazing*. I saw at FOSDEM
 that some of you were interested in it, but unfortunately you were lacking
 information about it.

  I wrote a one page article that sums up Spur's new features so every one
 can know what will be better. There's no VM technical details here, it's
 just about what will change for a regular pharo user.


 http://clementbera.wordpress.com/2014/02/06/7-points-summary-of-the-spur-memory-manager/

  Let me know if you think I forgot yet another feature.

 If you have questions, I'll try to answer, but ask Eliot, he implemented
 Spur so he can answer your questions much better than I can :-).

  Regards,

  Clément


 In what way would the speed-up for Characters being immediate improve
 Unicode performance, and/or would it be worthwhile having an immediate
 representation of UnicodeCharacters? I found Roassal to go an order of
 magnitude slower when displaying labels with Unicode (but there may be many
 reasons for that) ?


WideStringat: index
Answer the Character stored in the field of the receiver indexed by the
argument.
^ Character value: (self wordAt: index).

Character classvalue: anInteger
Answer the Character whose value is anInteger.

anInteger  255 ifTrue: [^self basicNew setValue: anInteger].
^ CharacterTable at: anInteger + 1.

Currently characters are non-immediate and only the first 256 are unique.
 So every access of a character in a wide string requires an allocation of
a character.  In Spur, with immediate characters there is no instantiation.
 Further, because characters are simpler the JIT can produce machine-code
to implement the primitives for WideString at: and at:put:, so
WideStringat: and WideString#at:put: will be primitive.  So access will
be very much faster.

Here are some numbers measured on my 2.2GHz Core i7 MacBook Pro running
10.6.8.

In current Cog

| ws |
ws := 'Hello world!' asWideString.
[1 to: 100 * 1000 * 1000 do: [:i| ws at: 1]] timeToRun 2693

and

| ws |
ws := 'Hello world!' asWideString.
ws at: 1 put: (Character value: 256).
[1 to: 100 * 1000 * 1000 do: [:i| ws at: 1]] timeToRun 6100

If you redefine WideStringat: in Spur to read

WideStringat: index
Primitive. Answer the Character stored in the field of the receiver
indexed by the argument. Fail if the index argument is not an Integer or
is out of bounds. Essential. See Object documentation whatIsAPrimitive.
primitive: 63
^ Character value: (self wordAt: index).

then

| ws |
ws := 'Hello world!' asWideString.
[1 to: 100 * 1000 * 1000 do: [:i| ws at: 1]] timeToRun 711

and

| ws |
ws := 'Hello world!' asWideString.
ws at: 1 put: (Character value: 256).
[1 to: 100 * 1000 * 1000 do: [:i| ws at: 1]] timeToRun 761

These numbers are very noisy because I've got two images, Safari, Chrome
and other things running.  But you can see that in the case where the
character is  8 bits, the Spur code is  8 times faster.
-- 
best,
Eliot


Re: [Pharo-dev] What will change in Pharo with Spur the new Cog memory manager ...

2014-02-06 Thread Clément Bera
2014-02-06 20:34 GMT+01:00 Sebastian Sastre sebast...@flowingconcept.com:

 Thanks for this information.

 Great post.

 So larger images would be no problem?  let's say growing to 900MB?


I wouldn't say no problem, I would say that images up to 1 Gb should be
usable and should behave much better than they used to due to the lack of
full GC pauses. Now that's the theory we need to make it real and this
summer we will see...






 On Feb 6, 2014, at 12:48 PM, Clément Bera bera.clem...@gmail.com wrote:

 Hello pharoers,

 The new Cog memory manager, Spur, is simply *amazing*. I saw at FOSDEM
 that some of you were interested in it, but unfortunately you were lacking
 information about it.

 I wrote a one page article that sums up Spur's new features so every one
 can know what will be better. There's no VM technical details here, it's
 just about what will change for a regular pharo user.


 http://clementbera.wordpress.com/2014/02/06/7-points-summary-of-the-spur-memory-manager/

 Let me know if you think I forgot yet another feature.

 If you have questions, I'll try to answer, but ask Eliot, he implemented
 Spur so he can answer your questions much better than I can :-).

 Regards,

 Clément





Re: [Pharo-dev] What will change in Pharo with Spur the new Cog memory manager ...

2014-02-06 Thread Alexandre Bergel
Sounds great!!!

Alexandre



 Le 06-02-2014 à 11:48, Clément Bera bera.clem...@gmail.com a écrit :
 
 Hello pharoers,
 
 The new Cog memory manager, Spur, is simply *amazing*. I saw at FOSDEM that 
 some of you were interested in it, but unfortunately you were lacking 
 information about it.
 
 I wrote a one page article that sums up Spur's new features so every one can 
 know what will be better. There's no VM technical details here, it's just 
 about what will change for a regular pharo user.
 
 http://clementbera.wordpress.com/2014/02/06/7-points-summary-of-the-spur-memory-manager/
 
 Let me know if you think I forgot yet another feature.
 
 If you have questions, I'll try to answer, but ask Eliot, he implemented Spur 
 so he can answer your questions much better than I can :-). 
 
 Regards,
 
 Clément


Re: [Pharo-dev] What will change in Pharo with Spur the new Cog memory manager ...

2014-02-06 Thread Luc Fabresse
Thanks Clement for the post and a big thank you to Eliot for Spur!
Can't wait for pharo 4 running on Spur-based Cog ;-)

Luc

2014-02-07 Clément Bera bera.clem...@gmail.com:

 2014-02-06 20:34 GMT+01:00 Sebastian Sastre sebast...@flowingconcept.com
 :

 Thanks for this information.

 Great post.

 So larger images would be no problem?  let's say growing to 900MB?


 I wouldn't say no problem, I would say that images up to 1 Gb should be
 usable and should behave much better than they used to due to the lack of
 full GC pauses. Now that's the theory we need to make it real and this
 summer we will see...






 On Feb 6, 2014, at 12:48 PM, Clément Bera bera.clem...@gmail.com wrote:

 Hello pharoers,

 The new Cog memory manager, Spur, is simply *amazing*. I saw at FOSDEM
 that some of you were interested in it, but unfortunately you were lacking
 information about it.

 I wrote a one page article that sums up Spur's new features so every one
 can know what will be better. There's no VM technical details here, it's
 just about what will change for a regular pharo user.


 http://clementbera.wordpress.com/2014/02/06/7-points-summary-of-the-spur-memory-manager/

 Let me know if you think I forgot yet another feature.

 If you have questions, I'll try to answer, but ask Eliot, he implemented
 Spur so he can answer your questions much better than I can :-).

 Regards,

 Clément