Code Monkey home page Code Monkey logo

Comments (3)

schperplata avatar schperplata commented on August 21, 2024

Hello and thank you ;)
Adding new common switches to Makefile or 'make' command is generally not a good idea - someone might have a different configuration/CPU, different hardware or simply don't want this switch. In case of -jX command, X is number-of-cores-specific switch, meaning: I might have only 2 cores, while you have 4. I don't know what exactly will happen if this switch is not properly configured. So, no, this will not be added.
Anyway, there are other simple solutions for your request:

  • Manually modify generated tasks.json file in .vscode subfolder.
    Search for Build project task and find: "args": [ ] field. Simply add your custom switches there, in your case this would be "-j12" added after "GCC_PATH=...", field.
    NOTE: This will be overwritten with next ideScripts update ('Update workspace' task).

  • Generate new build task.
    Just copy entire Build project task, rename it and add argument as described above.
    NOTE: This task will NOT be overwritten on 'Update workspace' task. However, if something goes wrong (aka bad settings in any of other json files), your task will be overwritten (but stored in .backup files).

  • Modify task generator script.
    Find updateTasks.py and search for def getBuildTask(self) function. At the bottom of this function, you can find:
    jsonTaskData["args"] = ["GCC_PATH=" + gccFolderPath]
    Just add your custom argument in the same manner:
    jsonTaskData["args"] = ["-j12"]
    NOTE: 'Make' command will be updated on 'Update workspace' task. This option will only be re-set to default on ideScript files update (eg.: future updates from this GitHub repository).

from vs-code-stm32-ide.

Nostras avatar Nostras commented on August 21, 2024

Well, yeah, the -j12 is useful for my work pc and home pc, but I can't imagine you can't just add some detection.
Heck I whipped up python and executed two commands.
image

Adding more threads than there are available simply does nothing. Or, well, it might every so slightly degrade it.
The only true problem I could see by adding this function is that for some reason some code may not be compiled in parallel, but I've never had that problem with embedded code for the ST at least.

from vs-code-stm32-ide.

schperplata avatar schperplata commented on August 21, 2024

After a short break, I decided to give it a try and I have implemnted this feature.
Added '-jX' switch, where X is NUMBER OF CORES *1.5. 1.5 number is advised on many GNU make forum posts, so I go with this number.
On my 4-core PC there is not that much difference in time (about 20%), but I agree that every second you have must wait is a wasted second.

Update your ideScripts.

from vs-code-stm32-ide.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.