Interesting. When working on AstroCloud (http://astrocloudy.wordpress.com) we find out that Bitmap and FormCanvas were way too slow. Performing a global modification (e.g., changing a red for a blue) took long long time for very large images (2000 x 2000 pixels). We did some intensive profiling and aggressive optimizations until the points we could not optimize anymore. We then tried to avoid manipulating objects in some very specific part of the code. For example, instead of having instance of the class Color, we have an array (unique and preallocated) that contains the red, green, and blue values. Having these “primitives” values was convenient to call either a C function or very low level functions with native boost. We got a ~ x 30 speed up.
I do not know much about wide strings, but I suspect you can do something like that. So, my advice is: identify the method that cost you a lot, and write it natively. This has worked for us, in a non-trivial setting. Let us know Cheers, Alexandre -- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;. On Oct 3, 2014, at 5:07 PM, Benjamin Pollack <[email protected]> wrote: > My apologies if this is already spelled out somewhere and I simply can't > find it, but are there any Spur images for Pharo yet? I can only find > Squeak ones. It's not a big deal either way; I was just playing with an > algorithm that, after very heavy optimization, I was able to get down to > about 278ms per pass (from ~700ms initially from a naive > implementation). For contrast, the equivalent Python runs in ~80ms. > Looking at MessageTally, it seems at least half of that 278ms is spent > noodling around in WideStrings and other small things that the Spur > object format ought to help with, so it'd be interesting to see how much > of a speed boost that gives without any further work. >
