PM123's Performance Settings
Worker Threads
PM123 uses worker threads to decouple I/O operations from the
user
interface. More workers can do more tasks in parallel, but this is not
necessarily faster, because of other limited system resources, first of
all the disk I/O. It is recommended to have at least 2 workers and no
more than 6 (in all).
There are two kinds of tasks to perform:
- Dialog tasks
Dialog tasks do I/O operations where the user is typically waiting for,
e.g. loading a playlist that is just opened for editing.
- Background tasks
Background
tasks do I/O operations that are not indispensable to user actions like
fetching the total playing time of a large playlist.
- Gerneral purpose
- Number of general purpose worker threads. The general
purpose workers can do both kind of tasks. The more general purpose
workers you have, the higher is the I/O load. You need at least one
general purpose worker.
- Dialog
- Number of dialog worker threads. The dialog workers are
reserved for dialog tasks to keep the user interface always responsive.
It is recommended to have at least one dialog worker. More than one
dialog worker makes sense if you often have to deal with network
timeouts or something like that. A second worker will keep PM123
responsive while the first one is trying to perform some task to no
avail.
- Lower priority background tasks
- This option causes background tasks to be executed at idle time
priority. This keep the system more responsive during heavy load.
Decoder Priority
PM123 dynamically adjusts the priority of decoder threads to keep
the sound playing without too much delays to user interactions.
- At normal play
- The normal priority of the decoder thread is used by default.
- At low buffer
- The priority of the decoder thread is raised to this level when
the output buffers become empty.
- Lower priority after
- If you have a slow CPU and activated many filter plug-ins. The
CPU might no longer be able to decode the song in real-time. This could
effectively freeze the UI because of the high priority of the decoder
thread. This setting lowers the priority after some time to get the
system back.