I moved curly braces to be displaced for testing the Autoformat
Now the bottomlime shows status
building sketch
for around a whole minute.
How can I speed up this?
I moved curly braces to be displaced for testing the Autoformat
Now the bottomlime shows status
building sketch
for around a whole minute.
How can I speed up this?
Hi @StefanL38. The "indexing: ..." and "Building sketch" indicators are related to the program processing operations which are required by the language server tool that provides things like autocomplete, problem detection, go to definition, and code formatting.
This tool requires a complete knowledge of the sketch program, which includes all the toolchain, core, and libraries in addition to your sketch code. This must be updated at every change to the sketch. This means the sketch preprocessing, library discovery, and build process is happening over and over again.
This is inevitably an intensive process. However, some users are experiencing exceptionally poor performance, which is being tracked by the Arduino IDE developers here:
You can subscribe to that issue to get notifications of any new developments related to this subject.
You may find some useful information in the discussion on that issue or in the previous topics on the subject here on the forum.
Even though I think there is surely some room for improvement in the results we are experiencing, none of the members of the team working on the Arduino IDE 2.x are able to reproduce the exceptionally long processing times reported by those users. This makes the problem difficult to investigate, and validation of any potential improvements or fixes difficult to validate.
If anyone can provide specific instructions we can follow to reproduce the problem, it would be very valuable.
It would be interesting to compare the specifications of the PCs used by the development team and details of the Operating Systems being used with that of users that experience the problems
Yes I second that 101%. I would even be willing to use some special kind of software that collects data from my harddisc and registry
and/or that is able to log processor-load of each thread and hard-disc-load HDD/traffic
while the indexing / building is happening
Sometimes I suspect microsofts internal developpers to use 64GB RAM-Servers with 512GB RAM-discs for testing new versions of windoped 10/11 which of course will not encounter any perfomance-problems
best regards Stefan
The machine I do most of the Windows testing on:
CPU: i7-3770 @ 3.40 GHz
RAM: 16 GB
Graphics card: NVIDIA GeForce 8400GS
Drive: SanDisk SDSSDA-240G-G26 SSD, Western Digital 25A3 mechanical USB drive (I test with the IDE installed on either drive)
The machine I do most of the Linux testing on:
CPU: i5-3360M @ 2.80 GHz
RAM: 8 GB
Graphics card: Intel HD Graphics 4000 integrated
Drive: Western Digital WD3200BEKX-60B7WT0 7200 RPM mechanical drive
Usable, but certainly nothing even close to cutting edge.
If testing did you install a lot of additional boards like
ESP8266, ESP32, SAMD, Teensy?
Even on the current Arduino-IDE 1.8.19 especcially ESP8266 / ESP32 with the RT-OS in the backround needs quite some time on the first compilation when every file must be compiled
Is there an option to switch off indexing and building too?
You might say I have a few installed :
$ arduino-cli core list
ID Installed Latest Name
adafruit:samd 1.7.10 1.7.10 Adafruit SAMD Boards
TeeOnArdu:avr 1.0.3 1.0.3 Adafruit TeeOnArdu
adafruit:wiced 0.6.6 0.6.6 Adafruit WICED
arduino:avr 1.8.5 1.8.5 Arduino AVR Boards
arduino:mbed_edge 3.1.1 3.1.1 Arduino Mbed OS Edge Boards
arduino:mbed_nano 3.1.1 3.1.1 Arduino Mbed OS Nano Boards
arduino:mbed_nicla 3.1.1 3.1.1 Arduino Mbed OS Nicla Boards
arduino:mbed_portenta 3.1.1 3.1.1 Arduino Mbed OS Portenta Boards
arduino:mbed_rp2040 3.1.1 3.1.1 Arduino Mbed OS RP2040 Boards
arduino:megaavr 1.8.7 1.8.7 Arduino megaAVR Boards
arduino:nrf52 1.0.2 1.0.2 Arduino nRF52 Boards
arduino:samd 1.8.13 1.8.13 Arduino SAMD Boards (32-bits ARM Cortex-M0+)
Arrow:samd 2.1.0 2.1.0 Arrow Boards
atmel-avr-xminis:avr 0.6.0 0.6.0 Atmel AVR Xplained-minis
ATTinyCore:avr 1.5.2 1.5.2 ATTinyCore
Balanduino:avr 1.2.0 1.2.0 Balanduino
bitDuino10-aTPI:avr 1.0.0 1.0.0 bitDuino10-arduinoTPI
digistump:avr 1.7.5 1.7.5 Digistump AVR Boards
DxCore:megaavr 1.4.7 1.4.7 DxCore
electroniccats:mbed 1.0.5 1.0.5 Electronic Cats Mbed OS Boards
electroniccats:samd 2.0.7 2.0.7 Electronic Cats SAMD(L)(C) Core for Arduino
emoro:avr 3.2.2 3.2.2 EMORO 2560
esp32:esp32 2.0.3 2.0.3 ESP32 Arduino
esp8266:esp8266 3.0.1 3.0.1 esp8266
industruino:samd 1.0.1 1.0.1 Industruino SAMD Boards (32-bits ARM Cortex-M0+)
Intel:arc32 2.2.0 2.2.0 Intel Curie Boards
Intel:i686 1.6.7+1.0 1.6.7+1.0 Intel i686 Boards
LGT8fx Boards:avr 1.0.6 1.0.6 LGT8fx Boards
littleBits:avr 1.0.0 1.0.0 littleBits Arduino AVR Modules
m5stack:esp32 2.0.2 2.0.2 M5Stack
Maixduino:k210 0.3.11 0.3.11 Maixduino(k210)
MattairTech_Arduino:samd 1.6.18-beta-b1 1.6.18-beta-b1 MattairTech SAM D|L|C core for Arduino - Beta build
MegaCore:avr 2.1.3 2.1.3 MegaCore
megaTinyCore:megaavr 2.5.10 2.5.10 megaTinyCore
microUPDIcore:avr 1.0.2 1.0.2 microUPDI Firmware Uploader
MightyCore:avr 2.1.3 2.1.3 MightyCore
MiniCore:avr 2.1.3 2.1.3 MiniCore
sandeepmistry:nRF5 0.7.0 0.7.0 Nordic Semiconductor nRF5 Boards
OpenCM904:OpenCM904 1.5.0 1.5.0 OpenCM9.04
opentracker:sam 1.0.5 1.0.5 OpenTracker ARM (32-bits) Boards
realtek:AmebaD 3.1.1 3.1.1 Realtek Ameba Boards (32-bits ARM Cortex-M33 @200MHz)
RedBear:nRF51822 1.0.8 1.0.8 RedBear nRF51822 Boards (32-bits ARM Cortex-M0)
RedBear:nRF52832 0.0.2 0.0.2 RedBear nRF52832 Boards (32-bits ARM Cortex-M4F)
Sanguino:avr 1.0.3 1.0.3 Sanguino
Seeeduino:samd 1.8.2 1.8.2 Seeed SAMD Boards
Seeeduino:rp2040 1.9.3 1.9.3 Seeed XIAO RP2040
SparkFun:apollo3 2.1.1 2.1.1 SparkFun Apollo3 Boards
STMicroelectronics:stm32 2.2.0 2.2.0 STM32 MCU based boards
sduino:stm8 0.5.0 0.5.0 STM8S Boards
teensy:avr 1.56.1 1.56.1 Teensy
TL7788:arm 1.0.3 1.0.3 TL7788 Boards
Only the one you saw mentioned on the GitHub issue:
https://github.com/arduino/arduino-ide/issues/714#issuecomment-1114452951
In the mean-time: a workaround for those who want to be able to comfortably work in the editor:
- Press CTRL+SHIFT+P
- Type "server" in the search field
- Click "Arduino: Stop Language Server"
- Enjoy working in a super-responsive IDE with lightning-fast suggestions
- When ready to re-index, select the "Arduino: Start Language Server" command and wait for a re-index
This is a problem? How long did it take you to develop the code?
If you are programming hundreds of identical Arduinos there are ways of doing that without re-compiling every time, but I'm not an expert at that.
...I program boards & chips at work (not Arduino) and a minute apiece is not "terrible".
In fact, I'm programming a small batch of boards right now and there are a couple of steps involved so I'm switching back-and-forth and typing a sentence, or a few words, at a time here while I'm waiting for the computer.
The code was compiled a couple of years ago by someone else... I'm just loading firmware into the boards.
the problem inside Arduino-IDE 2.0 is that this waiting a minute occurs on typing each word ! and each time you hit Ctrl-T for autoformatting.
If it would be just on hitting compile everything would be good.
in the "old" 1.8.19-IDE even with a 20kB source-code hitting Strg-T needs less than half a second to autoformat.
I understand the new 2.0-IDE offers a lot more like word-completion etc.
And this requires scanning, indexing, building. Still I'm astonished that this takes so long for the arduino-IDE 2.0.
I'm using the tool Everything.exe from voidtools.
https://www.voidtools.com/
Which is a tool that scans the harddiscs for all files. Right now I have 1.25 million files on my SSD. If you type any kind of filter for filtering the database for files the filtered results are presented faster than you can type.
So the IDE 2.0 must be doing something very very very "unhappy" that it takes a minute until "indexing" is done
best regards Stefan
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.