Skip to content

High CPU consumption even with auto_refresh=False #48

@monojk

Description

@monojk

I noticed 100% CPU with my application on a Raspberry Pi, even I have several seconds sleep in my loop. I use auto_refresh = False

I can reproduce that behaviour with these modifications of examples/displayio_ssd1306_simpletest.py

from time import sleep
...
display = adafruit_displayio_ssd1306.SSD1306(display_bus, width=WIDTH, height=HEIGHT, auto_refresh=False)
...
display.auto_refresh = False        # just to be sure

while True:
    display.refresh()
    sleep(5)

How can I bring down the CPU usage?

Activity

FoamyGuy

FoamyGuy commented on Jan 15, 2025

@FoamyGuy
Contributor

I believe this is not specific to the SSD1306, but more generally with the way BlinkaDisplayIO works.

You can see this effect if you open a REPL and just import displayio while watching htop.

I'm not certain of all of the specifics but I think there is a background thread getting used during some part of the process for rendering that is running as soon as displayio gets imported.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      Participants

      @FoamyGuy@monojk

      Issue actions

        High CPU consumption even with auto_refresh=False · Issue #48 · adafruit/Adafruit_CircuitPython_DisplayIO_SSD1306