Bangle.js cutting edge (2v24.131 and later) speed improvements #7195
Replies: 1 comment
-
Posted at 2024-10-24 by @thyttan 10 % improvement is nice indeed! Posted at 2024-10-25 by @gfwilliams Recent tweaks I just committed to BangleApps (dev app loader):
So we're now over 80ms faster loading the bare clock, 60ms loading messages! I've also made some big improvements to the widget/clockinfo loading speed and fixed a few that were taking a long time to load (android/widmessages/sched) so especially if you have a lot of widgets or clockinfos you should see some noticeable improvements! Posted at 2024-10-25 by @gfwilliams Just a note that you can do:
In the IDE, and then when you next load an app Bangle.js will print out how long each bit of bootcode/widget/clockinfo took to load, eg:
You can turn it off with:
So you can then see pretty clearly which things are slowing down the boot time of your Bangle. The app itself isn't included in that list though. Posted at 2024-10-25 by @thyttan That's cool - I'll do that on my watch! Posted at 2024-10-25 by @devsnd Thanks for your continued work Gordon, it's much appreciated! I'll try it out once I get back from vacation. Did I understand correctly that I need to reinstall all apps for them to be re-pretokenized? Posted at 2024-10-25 by @gfwilliams Thanks!
If you've installed everything in the last 6 months with the pretokenised option enabled and up to date firmware then there's no need. But it shouldn't hurt to click 'Reinstall apps' (which should keep existing apps' data but will re-upload everything else). It doesn't hurt to do a backup first just in case though! I just added a bit of info on what I mentioned above in https://www.espruino.com/Bangle.js+Performance - so if your Bangle is running slow then that might help you to figure out what apps are causing it! Posted at 2024-10-26 by @devsnd I tried it out and it actually feels faster than before, even without measuring. I guess we're just very close to jacob nielsons 100ms target (which is for web applications but remains a valid goal for UI development)[1]. That's also why a 10 or 20% improvement feels much more impactful than just linearly "10% faster" @gfwilliams any chance you could provide "noflash" build with these optimizations? I'm wondering if running on the internal flash could do the last bit for responsiveness. 1: https://www.nngroup.com/articles/response-times-3-important-limits/ Posted at 2024-10-28 by @gfwilliams Just attached - I posted one in another thread recently but there's an issue with compaction which I haven't been able to track down, so it's not really that stable Attachments: |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Posted at 2024-10-24 by @gfwilliams
Hi! I've been putting a bunch of work into optimisations on Espruino/Bangle.js lately, and I've done a bunch of stuff with the latest builds.
You'll find that writes to 1/2/4 bit offscreen buffers are a lot faster now, built-in JS functions now execute a lot faster (we're able to skip a 'parsing' step, and we also store them pretokenised), and for Bangle.js 2 specifically I've now built in the Layout library (you'll have to reinstall any apps that use Layout for the app loader to realise your Bangle has layout and upload your apps without their own version).
Not that the change is massive, but with a totally 'factory reset' watch with
android
installed the load times are as follows:Bangle.js 2v24
2v24.128
So we manage to be 10% faster when viewing messages, and any app that uses setUI/showMenu/Layout/etc should be a lot snappier.
Beta Was this translation helpful? Give feedback.
All reactions