I'm just done with refactoring, as was planned in
http://lists.squeakfoundation.org/pipermail/vm-dev/2008-February/001795.html. I was surprised that VM runs smoothly at first successful build after changing lot of stuff! :) Here the set of changes i done: --------- * refactor signaling low space semaphore * refactor signaling interrupt semaphore * refactor signaling finalization semaphore * remove interruptPending var * remove get/setInterruptPending methods * set system timer to post ioProcessEvents event every 200 ms * deal with primitiveSignalAtMilliseconds primitive * refactor signaling timer semaphore * remove lastTick var * remove nextPollTick var * remove nextWakeupTick var * remove get/setNextWakeupTick methods * change internalQuickCheckForInterrupts * remove quickCheckForInterrupts, leave only internalQuickCheckForInterrupts * remove checkForInterrupts method * interruptChecksEveryNms totally ignored (no need in interrupt if there no any event!) * remove interruptCheckForced method from use * remove getInterruptCheckCounter method * remove setInterruptCheckCounter: method * remove interruptCheckCounter var * forceInterruptCheck method is no-op now * remove interruptCheckCounterFeedBackReset var --------- 1 tinyBenchmarks runs on my box: squeak VM: '200312989 bytecodes/sec; 5879195 sends/sec' '200469851 bytecodes/sec; 6178049 sends/sec' '200000000 bytecodes/sec; 6183469 sends/sec' '200156372 bytecodes/sec; 6151095 sends/sec' HydraVM before refactoring of checkForInterrupts() '194973343 bytecodes/sec; 5372831 sends/sec' '195121951 bytecodes/sec; 5372831 sends/sec' '195121951 bytecodes/sec; 5368739 sends/sec' '194973343 bytecodes/sec; 5126658 sends/sec' HydraVM after refactoring of checkForInterrupts() '197378565 bytecodes/sec; 5183202 sends/sec' '195121951 bytecodes/sec; 5126658 sends/sec' '197378565 bytecodes/sec; 5308098 sends/sec' '197530864 bytecodes/sec; 5368739 sends/sec' It's strange that [ 3000 milliSeconds asDelay wait ] timeToRun prints 2500 ( 4000 milliSeconds will print 3500, seems somewhere there is a constant subtraction placed ?) Is there are some tests for how precise Delays working? Okay, now need to do some testing, and then i will release the update. -- Best regards, Igor Stasenko AKA sig. |
Some additional benchmarking printout:
[1 tinyBenchmarks ] timeToRun squeak VM: 5240 5235 5243 5249 Hydra VM (before refactoring) 5797 5797 5937 5938 Hydra VM (after refactoring) 5688 5703 5703 So, there is definitely a speed boost with new changes! -- Best regards, Igor Stasenko AKA sig. |
On Sun, 17 Feb 2008 14:53:18 +0100, Igor Stasenko wrote:
> Some additional benchmarking printout: This looks very good indeed :) BTW: did you test Hydra VM in a Web browser, - http://wiki.squeak.org/squeak/1865 > [1 tinyBenchmarks ] timeToRun > > squeak VM: > 5240 > 5235 > 5243 > 5249 > > Hydra VM (before refactoring) > 5797 > 5797 > 5937 > 5938 > > Hydra VM (after refactoring) > 5688 > 5703 > 5703 > > So, there is definitely a speed boost with new changes! > |
In reply to this post by Igor Stasenko
On Feb 18, 2008 2:31 AM, Igor Stasenko <[hidden email]> wrote: I'm just done with refactoring, as was planned in Could I get you to run a more realistic benchmark, such as a compilation? I might be coding on Squeak later tonight so I could write up some code for you. Gulik. -- http://people.squeakfoundation.org/person/mikevdg http://gulik.pbwiki.com/ |
On 17/02/2008, Michael van der Gulik <[hidden email]> wrote:
> > > On Feb 18, 2008 2:31 AM, Igor Stasenko <[hidden email]> wrote: > > I'm just done with refactoring, as was planned in > > > http://lists.squeakfoundation.org/pipermail/vm-dev/2008-February/001795.html. > > I was surprised that VM runs smoothly at first successful build after > > changing lot of stuff! :) > > > > > > > Could I get you to run a more realistic benchmark, such as a compilation? > > I might be coding on Squeak later tonight so I could write up some code for > you. > > Gulik. > > > -- > http://people.squeakfoundation.org/person/mikevdg > http://gulik.pbwiki.com/ > > > -- Best regards, Igor Stasenko AKA sig. |
In reply to this post by Igor Stasenko
Hi Igor-- Cool! Does the simulator work? thanks, -C -- Craig Latta improvisational musical informaticist www.netjam.org Smalltalkers do: [:it | All with: Class, (And love: it)] |
On 17/02/2008, Craig Latta <[hidden email]> wrote:
> > Hi Igor-- > > Cool! Does the simulator work? > No, simulator code is broken. And answering to Klaus question: no, i never tried to build it as browser plugin. I haven't time on that :) -- Best regards, Igor Stasenko AKA sig. |
> No, simulator code is broken. Because of something you did? thanks again, -C -- Craig Latta improvisational musical informaticist www.netjam.org Smalltalkers do: [:it | All with: Class, (And love: it)] |
On 18/02/2008, Craig Latta <[hidden email]> wrote:
> > > No, simulator code is broken. > > Because of something you did? > Yes, because of objectification. Instance variables of Interpreter now having different meaning in C. Some of them are kept global, while most of them kept on a per-instance basis. To make simulator working correctly it would require to move all global vars into a separate class. Or move globals to class variables and move current class vars to shared pool, and make appropriate changes in CodeGenerator. > > thanks again, > > -C > > -- > Craig Latta > improvisational musical informaticist > www.netjam.org > Smalltalkers do: [:it | All with: Class, (And love: it)] > > > -- Best regards, Igor Stasenko AKA sig. |
In reply to this post by Igor Stasenko
On 17/02/2008, Igor Stasenko <[hidden email]> wrote:
> HydraVM after refactoring of checkForInterrupts() > '197378565 bytecodes/sec; 5183202 sends/sec' > '195121951 bytecodes/sec; 5126658 sends/sec' > '197378565 bytecodes/sec; 5308098 sends/sec' > '197530864 bytecodes/sec; 5368739 sends/sec' > > It's strange that > [ 3000 milliSeconds asDelay wait ] timeToRun > prints 2500 ( 4000 milliSeconds will print 3500, seems somewhere there > is a constant subtraction placed ?) > > Is there are some tests for how precise Delays working? > > Okay, now need to do some testing, and then i will release the update. > Fixed that, now benchmarks looking much less diverse (which in own turn means that timing now much more accurate), also send/sec shows a small boost. 1 tinyBenchmarks '197378565 bytecodes/sec; 5434969 sends/sec' '197378565 bytecodes/sec; 5502853 sends/sec' '197378565 bytecodes/sec; 5434969 sends/sec' '197378565 bytecodes/sec; 5502853 sends/sec' -- Best regards, Igor Stasenko AKA sig. |
Free forum by Nabble | Edit this page |