Closed dhalbert closed 6 years ago
@tannewt the change from range()
to enumerate()
tracks the same change in NeoPixel. Not sure why it was changed: enumerate()
fetches the values as well as the indices, but discards the values. Do you remember why? Am I missing something?
math
to be able to freeze a number of modules. adafruit_dotstar usesmath.ceil()
. I removed that dependency and redid those calculations in specialized ways, which probably sped them up.enumerate()
withrange()
infill()
. This speeds upfill()
by 25% or so.In general I am trying to avoid generating garbage. If people were to use integer values a lot instead of tuples, we could preallocate an rgb bytearray and store into it instead of converting the integer value to a tuple.
I experimented with pre-fetching the pixel order values in advance and storing them in instance variables. That would improve
fill
by about 4%. I didn't bother with that right now.Tagging @mcscope, who may be interested.