# content
notedeck/damus android is quite odd..

It re-renders the entire screen anytime something changes.

This is quite different from most apps which only re-render parts of the screen that change.

The tradeoff is that the framerate is more consistent. We use a bit more cpu on average, but the result is a smoother scroll. Since the render path is so efficient and free from framework bloat, the cpu usage really isn't that bad.

A frame in #notedeck/#damusandroid takes around 1 to 2 milliseconds, wheres many retained mode frameworks (most apps) have much more inconsistent frame time if there is a complicated screen diff, which causes massive hitches and lagging when scrolling.

These diffs are often unpredictible, so its very hard to debug and fix performance issues. This is effectively the issue we've always had with Damus iOS and SwiftUI, and is a similar issue with virtual-dom frameworks like react.

In notedeck I noticed our gif code was re-rendering at max fps, which was causing my cpu to go brrr anytime a gif was on screen on my 240hz monitor. we probably don't need 240fps gifs... so I changed gif fps to 24fps. much more reasonable and my room is getting less hot.

What's the point of this post? I'm not sure. immediate mode rendering is cool and more people should try it.

# _misskey_content
notedeck/damus android is quite odd.. 

It re-renders the entire screen anytime something changes.

This is quite different from most apps which only re-render parts of the screen that change.

The tradeoff is that the framerate is more consistent. We use a bit more cpu on average, but the result is a smoother scroll. Since the render path is so efficient and free from framework bloat, the cpu usage really isn't that bad.

A frame in #notedeck/#damusandroid takes around 1 to 2 milliseconds, wheres many retained mode frameworks (most apps) have much more inconsistent frame time if there is a complicated screen diff, which causes massive hitches and lagging when scrolling.

These diffs are often unpredictible, so its very hard to debug and fix performance issues. This is effectively the issue we've always had with Damus iOS and SwiftUI, and is a similar issue with virtual-dom frameworks like react.

In notedeck I noticed our gif code was re-rendering at max fps, which was causing my cpu to go brrr anytime a gif was on screen on my 240hz monitor. we probably don't need 240fps gifs... so I changed gif fps to 24fps. much more reasonable and my room is getting less hot.

What's the point of this post? I'm not sure. immediate mode rendering is cool and more people should try it.