I am trying to optimize the compilation time on Windows 7 Pro 64 bits.
It reports this:
WARNING: Category 'Language' in library ArduinoStreaming is not valid. Setting to 'Uncategorized'
My system runs in French language. I tried to modify Arduino IDE language to French in case there was a problem of coherence with the system but I get the same warning.
Does anyone knows how to fix this?
This is completely unrelated to your system or IDE language. Arduino libraries have a metadata file, where the library author can set a category used to organize the library in Library Manager (Sketch > Include Library > Manage Libraries). The Arduino IDE has a specific set of categories that can be used, but some library authors didn't read the documentation carefully and made up their own categories. When one of those libraries is installed, the Arduino IDE puts it in the "Uncategorized" category and displays this warning to prompt the library author to use one of the standardized category values. So this really doesn't represent any significant problem at all for you and I would recommend you to just ignore it. If you really are bothered by it, i can provide instructions for how you can fix the metadata of your local installation of the library. The ideal solution would be for the library author to fix the problem upstream. Unfortunately I submitted a pull request to do just that for this library 1.5 years ago but the library author has ignored it, even though it would take them less than a minute to click the "Merge" button and have the problem fixed:
To address your goal of optimizing compilation time: The thing we most often see causing very slow compilation is antivirus software. During the compilation, the Arduino IDE starts a ton of processes. Some antivirus software has an "on-access scanning" feature that will check each of these processes to see if they are malicious. The process is blocked until the scan finishes, and so this can make the compilation much slower. The solution is to whitelist the appropriate process/file/folder in your antivirus software's configuration. You can do a quick test by TEMPORARILY disabling your antivirus for a single compilation to see if that makes a difference in compilation time, then immediately re-enabling the antivirus software.
Another thing to note is that the Arduino IDE does caching during the first compilation. So you will find that the first compilation is always slower than subsequent compilations. The cache is cleared if the board selection is changed, the cached file is modified, or the IDE is closed. This is important because if you're doing compilation time tests you don't want your results to be skewed by one test being done without the cache, then other tests being done with the cache.
Thanks for your answers. Ok, I won't bother with the category problem.
I did deactivate the antivirus but it was still slow. Finally the problem seems that
1) Caching was not enabled in my environment. It had to be activated in Arduino 1.8.9 ("Aggressively cache compiled core" in settings). In Arduino 1.8.10, with a clean install, it is the default behaviour and the option is not available in Arduino IDE settings. So this problem is solved.
2) The gcc compiler seems faulty and should be fixed in a next release. See https://community.arm.com/developer/tools-software/oss-platforms/f/gnu-toolchain-forum/13503/gcc-g-version-8-very-slow-to-compile