Skip to content

AudioFile.Read(): CPU usage unnecessarily @ 100 % #30

Description

@joonas-fi

a.requestChunk(chunkIdx)

When chunk hasn't arrived from server yet, the consumer code that is calling Read() will get 0-byte successful reads at rapid pace, until server responds. This means that the consumer is calling the read as fast as it can, millions of times a second, manifesting in 100 % CPU usage. After I inserted a 100 ms sleep in after the line I quoted, CPU usage is back to normal.

This behaviour is discouraged by the Reader interface:

Implementations of Read are discouraged from returning a zero byte count with a nil error

Source

It doesn't say it directly, but it means that Read() is expected to block until it has data to return.

Activity

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

      No branches or pull requests

      Issue actions