On 4 August 2014 09:38, Clément Bera <[email protected]> wrote:
>
>
>
> 2014-08-04 10:17 GMT+02:00 Yuriy Tymchuk <[email protected]>:
>>
>> Hi guys,
>>
>> I have a script that runs very slow and does a lot of non dependent
>> operation of a collection. I wander if I can speed it up by making it run in
>> another process, because as far as I understand everything runs on a single
>> thread, so I guess this won’t save me.
>>
> I don't think forking can speed up anything.

But that's only because we're single-threaded, hence single-cored. If
we had a VM that handle multiple threads (like if we resuscitated
Andreas' and Igor's Hydra work), then forking _would_ speed things up.
But that would raise another huge issue, namely the shared state
nature of the image.

So perhaps forking _would_ help if your computations were big enough
to justify the cost of spinning up a clone image, like David Lewis'
recent work.

frank

> Usually the best solution is to profile your operation with the Profiler,
> then implement differently costly operations, either by removing
> object/block creations in smalltalk if this is possible, else by
> implementing costly operations in C and bind them like that:
> http://clementbera.wordpress.com/2013/06/19/optimizing-pharo-to-c-speed-with-nativeboost-ffi/
>
>
>
>
>>
>> Uko
>
>

Reply via email to