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
Super User

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
Principal

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
Super User

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.