Wish: Reduce cpu usage of Pcbnew with Modern canvas

Bug #1779608 reported by Fabián Inostroza
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
KiCad
Fix Released
Undecided
Unassigned

Bug Description

Moving any object but graphical lines makes Pcbnew use a lot of cpu resources.
I previously reported 1778321 and Tomasz reduced the cpu load when moving graphical lines avoiding the calculation of ratsnets. However moving vias without a net or footprints without pads also produce high cpu usage and moving graphical lines still use a lot of cpu.

The high cpu usage is annoying when working in a laptop as the fan can be spinning at high speed for periods of time when working on a board. It also could increase the battery drain.

I've attached a simple test project.

The high cpu usage is also present in Windows 10 with same machine.

Application: kicad
Version: (5.0.0-rc3-dev), release build
Libraries:
    wxWidgets 3.0.4
    libcurl/7.60.0 GnuTLS/3.5.18 zlib/1.2.11 libidn2/2.0.4 libpsl/0.20.2 (+libidn2/2.0.4) libssh2/1.8.0 nghttp2/1.32.0 librtmp/2.3
Platform: Linux 4.16.0-2-amd64 x86_64, 64 bit, Little endian, wxGTK
Build Info:
    wxWidgets: 3.0.4 (wchar_t,wx containers,compatible with 2.8) GTK+ 2.24
    Boost: 1.62.0
    OpenCASCADE Community Edition: 6.9.1
    Curl: 7.60.0
    Compiler: GCC 7.3.0 with C++ ABI 1011

Build settings:
    USE_WX_GRAPHICS_CONTEXT=OFF
    USE_WX_OVERLAY=OFF
    KICAD_SCRIPTING=ON
    KICAD_SCRIPTING_MODULES=ON
    KICAD_SCRIPTING_WXPYTHON=OFF
    KICAD_SCRIPTING_ACTION_MENU=ON
    BUILD_GITHUB_PLUGIN=ON
    KICAD_USE_OCE=ON
    KICAD_USE_OCC=OFF
    KICAD_SPICE=OFF

Revision history for this message
Fabián Inostroza (fabianinostroza) wrote :
description: updated
Changed in kicad:
status: New → Opinion
Revision history for this message
Fabián Inostroza (fabianinostroza) wrote :

I've attached a video showing the CPU load when moving objects.
Maybe something is wrong with my hardware, at least it's not OS dependent.

If this is the expected CPU load for such operations then I'm fine with it.

Revision history for this message
Fabián Inostroza (fabianinostroza) wrote :

Looks like the move from OpenMP to std::thread has improved this a lot

Revision history for this message
Jeff Young (jeyjey) wrote :

@Fabian, improved it enough to close this bug, or is it still somewhat of a problem?

Revision history for this message
Fabián Inostroza (fabianinostroza) wrote :

Yeah, now the cpu usage is below 100% (before reached over 300% moving an empty footprint) even when moving a BGA package in the CIAA-ACC project (https://github.com/ciaa/Hardware/tree/master/PCB/ACC/CIAA_ACC) and its feel smooth as before. Board also load faster.

Jeff Young (jeyjey)
Changed in kicad:
status: Opinion → Fix Committed
milestone: none → 5.1.0
Changed in kicad:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.