SDK 4.1.4 - F7X simulator speed in comparison to F6X

Here the result of the Profiler for my watch face running 5 minutes of profiling for both devices F7X <-> F6X

If the results are really representing the hardware speed of the real devices then Garmin will have a lot to do to speed up the new device generation.

Main result of the onUpdate logic speed -> the F7X rendering is more then three times slower then the F6X

F7X to F6X simulation speed

Feel free to discuss the differences of the SDK Toybox function speeds for each device. This is really interesting.

  • Results on the F7X simulation on Toybox function calls ->

    DC.drawLine - extremely slow

    System.getSystemStats - extremely slow

    System.getDeviceSettings - very slow

    Dc.setClip - very slow

    Dc.getTextWidthInPixels - a lot faster!

    ActivityMonitor iterators - faster

    SensorHistory - faster

  • I reported bug about it s few months ago.

  • I just run my test app (sdk 4.1.5) on my f7x (runs on v10.44), that draws some graphics (consists of 41 points) by dc.drawLine()... and well... my real watch run even slower than simulator by 10x. I use System.getTimer() to mark time and I draw 10x same graphics so I can see time in ms. Sim show around 7ms and real device 73ms... One iteration of drawing in profiler shows 720us.. I also draw same image using dc.drawBitmap() and this is faster - one draw takes 167us in profiler.. Older generation draws lines faster around 22us... So on F7 based watch is way cheaper to draw images... not vector...  

    On the other hand is how this impact battery life, because slower does not mean to be more power consuming. Can garmin explain?

  • I wouldn't trust System.getTimer() in the sim to give you data.  The resolution (at least with windows) is poor,