Performance question

Post here for help on using FreeCAD's graphical user interface (GUI).
micksulley
Posts: 78
Joined: Fri May 11, 2018 9:28 am

Performance question

Postby micksulley » Fri Aug 10, 2018 12:13 pm

OS: Linux Mint 19 Tara
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.18.13959 (Git) AppImage
Build type: None
Branch: master
Hash: 2f18182b6dff87f8857787c854e39ca4d441f993
Python version: 2.7.6
Qt version: 4.8.6
Coin version: 4.0.0a
OCC version: 7.2.0
Locale: English/UnitedKingdom (en_GB)

I have a few files which have multiple holes from Part Design > MultiTransform and Path > Array, around 150 holes. Whenever I change anything it takes a long time to recompute, over 100 seconds sometimes. When I look on my System Monitor it shows one core (there are 8 on this machine) fully loaded, but the others are at a few percent. Memory usage stays at around 30% so no problem there. Is there any way to tell it to use all cores? I cannot see anything in preferences to do it.

Also I have found that using Path > CAM Simulator the rest of my machine pretty much locks up. I have run a couple of simulations which look like they will take hours or days to complete (OK my fault for using 0.5mm bit for large pocket operation) and I was unable to stop the simulation, couldn't get out of FC and had to crash my machine. Is there a more civilised way to abort a simulation? The Cancel button would not work.

Thanks
Mick
triplus
Posts: 7640
Joined: Mon Dec 12, 2011 4:45 pm

Re: Performance question

Postby triplus » Sat Aug 11, 2018 1:02 pm

Hi Mick.

ATM only some Meshing and BOA related algorithms have multi threading support. The rest will only utilize a single thread. Therefore if you for example use an array of cylinders and cut that from a box. That could be made in a way you would utilize multi threading.

https://forum.freecadweb.org/viewtopic.php?f=27&t=18391

P.S. If you right click on the document item in the tree view. You will notice some control is there over recompute routine. Sometimes that enables the end user to apply more changes at once and only to do one recompute at the end. Effectively reducing the time needed to get the job done.