>On 30/01/11 19:55, Aleksander Wabik wrote: >> Hi All, >> >> I've prepared a little benchmark measuring Vala object system >> performance ( http://gitorious.org/vala-object-benchmarks ) >> >> - object creation and destruction >> - method, virtual method, interface method, signal, delegate, delegate >> from a closure calling times >> - type checking >> - threading locks >> >> This benchmark is not intended to measure general performance (we have >> vala benchmarks in http://code.google.com/p/vala-benchmarks/ for this), >> but just to measure object system performance. From what I've seen: >> >> - type checking 2 times slower than in Mono >> - threading (locks) in vala beats mono easily - 19 seconds vs 50 >> seconds!! >> - object creation/destruction suck >> - setting/reading property or field beat Mono easily, but I think it's >> the matter of compiler optimization; but in classes inheriting from >> GObject setters are very expensive (due to issuing a signal) >> - calling methods, virtual methods, delegates, lambdas - vala beats >> mono, but slightly >> - interface methods, signals - we really suck, and there's no excuse >> for this. I guess that it can't be fixed in glib, but in dova...? >> - ref/unref - we really suck >> - weak ref/unref - we beat Mono easily, I guess that even if the >> pointer assignment was not optimized out by a compiler we'd do this. >> Mono is surprisingly bad at this. >> >> I guess that at least some of the vala performance drawbacks can be >> fixed in dova, as it's a total redesignment of the object system, >> true? >> >> If some of you would like to add some benchmarks / fix something in the >> existing ones, please do this, and have fun with the code that I made ;) >> >> best regards, > > >Hey Alex, any chance you could summarize your results in more concrete >numbers? Something like: > >- type checking: >Vala(default): +200%time(slower). Vala(dova): +50%time(slower). >- threading >Vala(default): -200%time(faster). Vala(dova): -250%time(faster). > >Thanks.
Hi, sorry for late reply. I did not plan to produce sophisticated analysis, and certainly there's no point in doing it by hand. On the other hand, some automated graph or chart generation system (as in vala benchmarks, using gnuplot) would be a nice thing. Maybe I'll do this in the future; on the (yet) other hand, if you do this before me, I'll be happy to merge it into the main repository of vala-object-benchmarks :) best regards, -- Mój klucz publiczny o identyfikatorze 1024D/E12C5A4C znajduje się na serwerze hkp://keys.gnupg.net My public key with signature 1024D/E12C5A4C is on the server hkp://keys.gnupg.net
signature.asc
Description: PGP signature
_______________________________________________ vala-list mailing list [email protected] http://mail.gnome.org/mailman/listinfo/vala-list
