I often use the profiler :)

The float printString is all fairly evenly split which is why I mention about whether another implementation may be required. I'll always raise anything much more obvious that I see!

Hi Chris,

My recommendation in this case is always do not spend a single second trying to figure out what is the bottleneck by yourself. First thing ever to do, is to run a profiler. You can do that very easily in Pharo.

TimeProfiler spyOn: [ Transcript show: 'do something for real here to benchmark'.
Object allSubclasses.   ]  

replace the closure for what you want to benchmark.

Then, share with us if you have interesting finds....

Cheers,



On Mon, Jul 29, 2013 at 3:52 PM, Chris <cpmbailey@btinternet.com> wrote:
I've been getting a little concerned with certain aspects of performance recently. Just a couple of examples off the top of my head were trying to do a printString on 200000 floats which takes over 3 seconds. If I do the same in Python it is only 0.25 seconds. Similarly reading 65000 points from a database with the PostgresV2 driver was about 800m/s and only 40 with psycopg. I'd have to try it again but am pretty sure going native was faster than OpenDBX as well. I appreciate Pharo is never going to be able to compete with the static-typed heavyweight languages but would hope we can get performance at least comparable to other dynamic languages :) Is it just that some method implementations are in need of some TLC; more things moved on top of C libraries and primitives and so forth rather than anything with the VM itself?

Cheers
Chris




--
Mariano
http://marianopeck.wordpress.com