Coder Social home page Coder Social logo

Comments (9)

PiotrZierhoffer avatar PiotrZierhoffer commented on June 20, 2024 2

Fixed in 76934a4. This was due to Terminal spamming WPF with new character events. We changed the way XWT handles GUI events in WPF completely. It may still need some optimizations, and your mileage may vary on different PCs.

from renode.

PiotrZierhoffer avatar PiotrZierhoffer commented on June 20, 2024

It's probably a side effect of moving to WPF, not anything we added as a feature. We will investigate it

from renode.

AntonKrug avatar AntonKrug commented on June 20, 2024

Probably yes, it could be some smartness to make it more efficient? Which looks like is, as the execution finished much faster, but at price no seeing anything and wondering if it got stuck somewhere.

from renode.

AntonKrug avatar AntonKrug commented on June 20, 2024

Just tested it with a Win10 VM from here:
https://developer.microsoft.com/en-us/windows/downloads/virtual-machines
And there it updates every single character. So if you are having macs as workstations then a Win10 VM might not be enough to reproduce this problem.

On a positive note, now the Renode 1.4 on Windows 10 works straight away, so no need to install that gtk sharp dependancy as previously.

from renode.

AntonKrug avatar AntonKrug commented on June 20, 2024

Yet another update/correction. It has nothing to do with the VM, it was only coincidence that by default the VM had a single core, after giving it more resource it became broken again.

And now I can "fix it" on a native machine as well, after starting renode and giving it affinity of 1 core, the original (update all the time) behaviour is back. Is this maybe a race condition or synching between multiple threads? Even giving the VM 2 cores or the affinity of 2 threads should be enough to "break it". I would say slower, but consistent and predictable results would be better. On Linux even with 32 thread machine the UART behaves as expected.

from renode.

PiotrZierhoffer avatar PiotrZierhoffer commented on June 20, 2024

Nice findings, this will help a lot! Thanks.

from renode.

AntonKrug avatar AntonKrug commented on June 20, 2024

I will re-test it after this fix will make into a release.

from renode.

AntonKrug avatar AntonKrug commented on June 20, 2024

If I understand the fix correctly instead of spawning each thread instance per character now the it's instancianed only once and then it's used to push all characters through the same instance. Looks much more efficient.

from renode.

PiotrZierhoffer avatar PiotrZierhoffer commented on June 20, 2024

Not exactly. Dispatch is the usual way of reporting actions for WPF. They are all performed on the GUI thread. Apparently the mechanism of reporting the events is too heavy for our needs, so we reimplemented it. It's not optimal from the design point of view and may be subject of further optimizations.

from renode.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.