Skip to content

Add more background processing to the UI to avoid long startup times #52

@atx

Description

@atx

At the moment, meshes are loaded into the OpenGL synchronously when the active layer gets changed. Altough they are cached afterwards, so this happens only the first time a layer is shown, it produces a noticeable annoying lag for larger boards.

So, either preload them in the background (possibly hard since OpenGL is single threaded...) or optimize the loading so that it does not take seconds.

This has been partially alleviated in 1ecdefa , but more effort is needed. In particular, we need to have

  • Benchmarks for the prepare_X_form methods, to make investigating speed ups easier
  • Move setupConnectionPointsData to a background thread too (and benchmark it!) This is probably not needed. Some analysis reveals that the reason that it takes a lot of wall time is because it clashes over the GIL with the background threads that are computing the other mesh data...
  • Same with _build_spatial_indices
    All of these things take potentially several seconds up to say 20 seconds (see many_meshes_many_vias). Moving them to an external thread would make starting up the GUI potentially much more responsive.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions