Comment by Narishma

11 hours ago

Your demo seems to constantly consume 100% CPU at all times.

Ooh interesting. What is your machine and browser? On chrome with my m1 macbook it takes less than 1ms to compute and render each frame, but I am noticing some things I can optimize from the performance flame graph! I will say, I find chrome to be way more efficient for ctx2d things than firefox or safari.

  • Chrome on Linux suffers from this too. The issues are standard for all naive immediate GUI libs:

    - constant repainting (while literally nothing changes) -> constant CPU load

    - some libs can skip repaints but have no concept of damage area

    - bad handling of high-dpi (which also can change dynamically)

    - constant repainting behaves even worse on laptops which announce 180 Hz refresh interval, which means that it drains the battery 3 times faster than 60 Hz