Skip to main content
Richard Lowe
Senior II
February 17, 2025
Solved

STM32CubeIDE Compile Time using Linux is VERY SLOW

  • February 17, 2025
  • 2 replies
  • 753 views

Since upgrading to 1.17.0 compile times have went from a pleasant time to wow, that is slow.  Anyone else experiencing this?

Basic project from template:

 

22:45:47 **** Incremental Build of configuration Debug for project CompileTimeTest ****
make -j4 all 
arm-none-eabi-size CompileTimeTest.elf 
 text	 data	 bss	 dec	 hex	filename
 11996	 9	 1644	 13649	 3551	CompileTimeTest.elf
Finished building: default.size.stdout
 
22:47:00 Build Finished. 0 errors, 0 warnings. (took 1m:13s.194ms)

 

I've tried 32 cores to just 4 and the time difference is in a few seconds.  All build times are now in minutes when they used to be less than 20 seconds.

Best answer by AScha.3

Here on my (new) MxLinux and IDE 1.17.0 :

 

 

arm-none-eabi-size mini-DSO-F303-ili9341.elf 
arm-none-eabi-objcopy -O binary mini-DSO-F303-ili9341.elf "mini-DSO-F303-ili9341.bin"
 text	 data	 bss	 dec	 hex	filename
 42604	 480	 19860	 62944	 f5e0	mini-DSO-F303-ili9341.elf
Finished building: default.size.stdout
 
Finished building: mini-DSO-F303-ili9341.bin
 

12:28:53 Build Finished. 0 errors, 1 warnings. (took 677ms)

 

 

So this is what you can expect - if everything working fine (AMD Ryzen and with SSD/M2 disc). :D

 

At first i had installed EndeavourOS - but got about 1...3 minutes to compile ! 

So i tried to find the reason - and its not the IDE itself, its a call to something like "check all open files in system".

Problem is: on many systems this defaults to max.open files, big number. To limit it, call:

ulimit -n -H 4096

 

 (https://www.reddit.com/r/debian/comments/1einvq3/solved_problems_with_the_newest_stm32cubeide_on/ )

Please remember that this command modifies the settings only for that particular console session. So you need to run CubeIDE from the command line, in the same console session.

I usually use the following script for that (the /home/emb/st/bin is the directory where I have put the stlink-server binary).

#!/bin/bash
(
 export PATH=/home/emb/st/bin:$PATH
 ulimit -n -H 4096
 /home/emb/st/stm32cubeide_1.17.0/stm32cubeide
)

 

So with limit to open files its running ok then.

Just on MxLinux they have set a useful limit and so IDE just running without extra delay.

Try.

(Next problem you might see, when start debug...but thats another story.

see:

https://community.st.com/t5/stm32cubeide-mcus/on-ubuntu-debug-says-quot-could-not-determine-gdb-version-quot/m-p/761775#M33561

)

2 replies

Ozone
Principal
February 17, 2025

I don't really use CubeIDE.

But for more than 70 seconds of build time, you should be able to monitor the CPU and memory usage with the standard tools.
I like htop in such circumstances.

I suppose you have checked for disk / user space issues.

AScha.3
AScha.3Best answer
Super User
February 17, 2025

Here on my (new) MxLinux and IDE 1.17.0 :

 

 

arm-none-eabi-size mini-DSO-F303-ili9341.elf 
arm-none-eabi-objcopy -O binary mini-DSO-F303-ili9341.elf "mini-DSO-F303-ili9341.bin"
 text	 data	 bss	 dec	 hex	filename
 42604	 480	 19860	 62944	 f5e0	mini-DSO-F303-ili9341.elf
Finished building: default.size.stdout
 
Finished building: mini-DSO-F303-ili9341.bin
 

12:28:53 Build Finished. 0 errors, 1 warnings. (took 677ms)

 

 

So this is what you can expect - if everything working fine (AMD Ryzen and with SSD/M2 disc). :D

 

At first i had installed EndeavourOS - but got about 1...3 minutes to compile ! 

So i tried to find the reason - and its not the IDE itself, its a call to something like "check all open files in system".

Problem is: on many systems this defaults to max.open files, big number. To limit it, call:

ulimit -n -H 4096

 

 (https://www.reddit.com/r/debian/comments/1einvq3/solved_problems_with_the_newest_stm32cubeide_on/ )

Please remember that this command modifies the settings only for that particular console session. So you need to run CubeIDE from the command line, in the same console session.

I usually use the following script for that (the /home/emb/st/bin is the directory where I have put the stlink-server binary).

#!/bin/bash
(
 export PATH=/home/emb/st/bin:$PATH
 ulimit -n -H 4096
 /home/emb/st/stm32cubeide_1.17.0/stm32cubeide
)

 

So with limit to open files its running ok then.

Just on MxLinux they have set a useful limit and so IDE just running without extra delay.

Try.

(Next problem you might see, when start debug...but thats another story.

see:

https://community.st.com/t5/stm32cubeide-mcus/on-ubuntu-debug-says-quot-could-not-determine-gdb-version-quot/m-p/761775#M33561

)

"If you feel a post has answered your question, please click ""Accept as Solution""."
Richard Lowe
Senior II
February 17, 2025
#!/bin/bash
(
 ulimit -n -H 4096
 /opt/st/stm32cubeide_1.17.0/stm32cubeide
)

 

That gave the compile time hyper speed:

 

09:26:00 **** Incremental Build of configuration Debug for project CompileTestTime ****
make -j22 all 
arm-none-eabi-size CompileTestTime.elf 
 text	 data	 bss	 dec	 hex	filename
 32564	 16	 4568	 37148	 911c	CompileTestTime.elf
Finished building: default.size.stdout
 

09:26:00 Build Finished. 0 errors, 0 warnings. (took 143ms)

 

From 1:16 to .0143, wow that's a 5300% decrease in compile time.

 

Thanks.