Skip to content

Smaller Code

Michael Miller edited this page Mar 21, 2016 · 1 revision

The library was written to be small. The template based coding pattern allows the compiler to produce smaller code while still supporting all the options. This is important when you are working on smaller Arduinos like a Gemma.

This is the sketch output from the Adafruit's NeoPixel Library StrandTest example for Gemma platform. Reasonably small and memory efficient.
Arduino IDE 1.6.5

Sketch uses 3,498 bytes (65%) of program storage space. Maximum is 5,310 bytes.
Global variables use 39 bytes of dynamic memory.

Arduino IDE 1.6.7/1.6.8 (notice the bump in size from 1.6.5)

Sketch uses 3,534 bytes (66%) of program storage space. Maximum is 5,310 bytes.
Global variables use 39 bytes of dynamic memory..

This is the sketch output from FastLED library on the same StrandTest example for the same Gemma platform. Uses almost all the program space available and six times the memory of the Adafruit library.
Arduino IDE 1.6.5

Sketch uses 4,878 bytes (91%) of program storage space. Maximum is 5,310 bytes.
Global variables use 261 bytes of dynamic memory.

Arduino IDE 1.6.7/1.6.8 (notice the bump in size from 1.6.5)

Sketch uses 4,914 bytes (92%) of program storage space. Maximum is 5,310 bytes.
Global variables use 261 bytes of dynamic memory.

And this is the sketch output from this NeoPixelBus library on the same StrandTest example for the same Gemma platform. 532 more bytes of code are available and another 5 bytes of ram than the Adafruit library.
Arduino IDE 1.6.5

Sketch uses 2,966 bytes (55%) of program storage space. Maximum is 5,310 bytes.
Global variables use 34 bytes of dynamic memory.

Arduino IDE 1.6.7/1.6.8 (the bump in size from 1.6.5 is still present)

Sketch uses 3,002 bytes (56%) of program storage space. Maximum is 5,310 bytes.
Global variables use 34 bytes of dynamic memory.
Clone this wiki locally
You can’t perform that action at this time.