cancel
Showing results for 
Search instead for 
Did you mean: 

STM32CubeIDE Compile Time using Linux is VERY SLOW

Richard Lowe
Senior III

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.

1 ACCEPTED SOLUTION

Accepted Solutions
AScha.3
Chief III

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".

View solution in original post

3 REPLIES 3
Ozone
Lead III

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
Chief III

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".
#!/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.