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

STM32CubeIDE Compile Time using Linux is VERY SLOW

  • February 17, 2025
  • 3 replies
  • 798 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.

This topic has been closed for replies.
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

)

3 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 on " Best Answer ".
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.