Is this progress?

I use arduino occasionally and have come back to it after some months. I thought I would install the latest IDE 1.6.9 but I was very disappointed by the performance - application is slow to start and takes forever to compile even simple sketches.

I then tried the arduino.org IDE 1.7.10 and although it was better it was also very slow at loading and at compiling.

I then reverted back to an old modified version (by Erwin Reid I think) ERW 1.0.5 and it is considerably faster.

I know that "very slow" "forever" is not very helpful so here are some numbers:

IDE Initial Compile Re-compile no changes
1.6.9 78s 54s
1.7.10 61s 37s
ERW 1.0.5 18s 9s

The sketch is an example from the FastLED library - about 30 line of code
I am using a fairly old single core PC, and for each test AV was disabled as I know this can cause issues.

Considering that the compiler is essentially the same why such a large difference in compile times?
This is hardly what I would call progress.

How can this be fixed?

Arduino.org is not Arduino.cc

I am aware of that. IDE 1.6.9 is by arduino.cc

I just thought I would try the "competitors" IDE - may not be better but it is faster.

However, the real point is why does the latest arduino.cc IDE take about 6 times as long to compile compared to an earlier arduino.cc IDE?

As I said, I am aware of the difference between arduno.cc and arduino.org.
Please read my posts carefully, and if you like disregard any thing mentioned about arduino.org.

I am trying to get to the bottom of why the latest arduino.cc IDE is so much slower.

PaulM:
As I said, I am aware of the difference between arduno.cc and arduino.org.
Please read my posts carefully, and if you like disregard any thing mentioned about arduino.org.

I am trying to get to the bottom of why the latest arduino.cc IDE is so much slower.

If you are aware, then why are you trying to use different IDE with your hardware? ? ?

You are comparing two different software meant for different hardware.

They have forked from Arduino.cc

IDE 1.6.9 is the latest by Arduino.cc.
It performs very badly compared to the 1.0.5 version which is a much older Arduino.cc IDE

So are you telling me that an Arduino UNO from arduino.cc and one from arduino.org is different hardware?
I have both the official and chinese versions of the UNO and the compile times are the same for both - it is not the hardware but the IDE that is causing the problem

ieee488:
You are comparing two different software meant for different hardware.

They are not necessarily meant for different hardware. The arduino.org Unos that I got by accident work happily with the arduino.cc IDE.

I have no issue with 1.6.9. I know if you are using an esp8266 and the old esp core, it will recompile everything every time you upload.

But if you want to support a thief that is up to you.

Qdeathstar:
But if you want to support a thief that is up to you.

You're taking that totally out of proportion. OP simply tried to compare; really, why can't people see that.

Qdeathstar:
I have no issue with 1.6.9. I know if you are using an esp8266 and the old esp core, it will recompile everything every time you upload.

Re-compiling everything was an issue in the past and on Windows if the IDE was installed to a path in which there were spaces, e.g 'Program Files' this would happen even with the fixed IDE.

The latest version does not re-compile everything - that was the first thing I checked. Re-compile is quicker but not by much.

I know I have an old machine, but 6 times slower - this can't be right!

sterretje:
You're taking that totally out of proportion. OP simply tried to compare; really, why can't people see that.

Thank you. It would also help if people would read what has been written.

This is a genuine request for help.

PaulM:
Thank you. It would also help if people would read what has been written.

Pleasure; I really had to bite my tongue.

PaulM:
This is a genuine request for help.

I started with (and I'm still on) 1.6.6. You might have the option to compare compiler output. This is the first few lines for 1.6.6 (verbose output for compilation on in preferences).

C:\Program Files (x86)\Arduino\arduino-builder -dump-prefs -logger=machine -hardware "C:\Program Files (x86)\Arduino\hardware" -tools "C:\Program Files (x86)\Arduino\tools-builder" -tools "C:\Program Files (x86)\Arduino\hardware\tools\avr" -built-in-libraries "C:\Program Files (x86)\Arduino\libraries" -libraries "C:\Users\Wim Sturkenboom\Documents\Arduino\libraries" -fqbn=arduino:avr:uno -vid-pid=0X2A03_0X0043 -ide-version=10606 -build-path "C:\Users\WIMSTU~1\AppData\Local\Temp\build4ed00942a0b3b98f45de0f01f43a20ed.tmp" -warnings=none -prefs=build.warn_data_percentage=75 -verbose "C:\Users\Wim Sturkenboom\Documents\Arduino\sketch_jun17a\sketch_jun17a.ino"
C:\Program Files (x86)\Arduino\arduino-builder -compile -logger=machine -hardware "C:\Program Files (x86)\Arduino\hardware" -tools "C:\Program Files (x86)\Arduino\tools-builder" -tools "C:\Program Files (x86)\Arduino\hardware\tools\avr" -built-in-libraries "C:\Program Files (x86)\Arduino\libraries" -libraries "C:\Users\Wim Sturkenboom\Documents\Arduino\libraries" -fqbn=arduino:avr:uno -vid-pid=0X2A03_0X0043 -ide-version=10606 -build-path "C:\Users\WIMSTU~1\AppData\Local\Temp\build4ed00942a0b3b98f45de0f01f43a20ed.tmp" -warnings=none -prefs=build.warn_data_percentage=75 -verbose "C:\Users\Wim Sturkenboom\Documents\Arduino\sketch_jun17a\sketch_jun17a.ino"
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -M -MG -MP -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10606 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard" "C:\Users\WIMSTU~1\AppData\Local\Temp\build4ed00942a0b3b98f45de0f01f43a20ed.tmp\sketch\sketch_jun17a.ino.cpp"
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -M -MG -MP -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10606 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard" "C:\Users\WIMSTU~1\AppData\Local\Temp\build4ed00942a0b3b98f45de0f01f43a20ed.tmp\sketch\sketch_jun17a.ino.cpp"
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -M -MG -MP -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10606 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard" "C:\Users\WIMSTU~1\AppData\Local\Temp\build4ed00942a0b3b98f45de0f01f43a20ed.tmp\sketch\sketch_jun17a.ino.cpp"
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -M -MG -MP -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10606 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard" "C:\Users\WIMSTU~1\AppData\Local\Temp\build4ed00942a0b3b98f45de0f01f43a20ed.tmp\sketch\sketch_jun17a.ino.cpp"
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -M -MG -MP -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10606 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard" "C:\Users\WIMSTU~1\AppData\Local\Temp\build4ed00942a0b3b98f45de0f01f43a20ed.tmp\sketch\sketch_jun17a.ino.cpp"
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10606 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard" "C:\Users\WIMSTU~1\AppData\Local\Temp\build4ed00942a0b3b98f45de0f01f43a20ed.tmp\sketch\sketch_jun17a.ino.cpp"

Lines 3 to 7 are exactly the same, so it does something 5 times. There might be more repeats elsewhere.

I have been wanting to ask the question as to "why" but never got to it.

This was the simple test sketch

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  Serial.println("Hello world");

}

void loop() {
  // put your main code here, to run repeatedly:

}

PS I will post the question

I'm leaving for the weekend now. I will try some earlier versions of the IDE but that wastes a lot of time and effort.

I will look at the verbose output more carefully and compare with yours.

I have tried various other 'after market' IDEs (PlatformIO, Eclipse, UECIDE) but they often do not install properly, are also slow or simply just do not work.

For what I do with the Arduino the official IDE is fine - well it was - now it is unusable!

Finally, I will add that although my PC is old and tired it will happily compile 20000 line .NET applications in less time than a 30 line arduino sketch - so it can be done.

Everyone, have a good weekend!

I've also noticed that the IDE sometimes seems to perform significantly worse in terms of compile time than 1.0.6 did (that's the "good" 1.0.x version). Unfortunately, 1.0.6 is getting really old, and doesn't support a lot of great new features. Frankly, performance of the IDE does not appear to have been a priority for the Arduino.cc team. Startup time has gotten much longer too for me (1.6.5r5 vs 1.0.6). For that matter, considering recent release history (of 10 1.6.x releases, only 3 have been usable*), it would appear neither backwards compatibility nor basic functionality are priorities either, which begs the question of what is...

Part of the issue may be that the new compiler version is slower (it also makes smaller binaries), but I can't believe that's all of it.

It also doesn't seem entirely consistent. Like, I know I've encountered unpleasantly slow compile times, but compiles were fast last time I was working with it, on the same system. I'm not entirely certain what factor it was that had the impact on things.

Now, of course, 1.6.6 did add a new build system (by 1.6.9, it actually kinda worked - 1.6.6~1.6.8 are a no-mans land and should be avoided) - 1.6.5r5 has the older one, so it might be worth comparing with. But the .org fork predates that, so I don't think this is it.

As promised, posted the question here

IDE Initial Compile Re-compile no changes
1.6.9 78s 54s

Huh. I don't get times anywhere near that on any of my systems (WXP, W8, W10, Mac)
Compiling ArduinoISP (a reasonable-sized sketch) took about 23 seconds on a rather limited WXP Virtual Box VM (1x2.8GHz CPU, 2G RAM) using 1.6.7 (and much less on a re-compile.)
Wimpy W10 laptops and VMs ran about the same with 1.6.9 (mind you, even my wimpy laptops tend to have SSDs, and the VM environment makes it difficult to match performance of a real disk, since there are extra layers of caching involved.) (at less than $40, an 120GB SSD is a very worthwhile investment for a "work" computer, IMO.)

It's been theorized that the Arduino IDE build process interacts badly with various anti-virus software; what protection are you using? Have you tried turning it off?

Thanks to everyone for their replies.

westfw:
Huh. I don't get times anywhere near that on any of my systems (WXP, W8, W10, Mac)

My machine is about the same spec and I already have an SSD and AV switched off.
I tried the ArduinoISP sketch and I get about the same times as you. V1.0.5 is still quicker but not by much.
This points to a problem with the FastLED library that I was using - so at least I now know where to start looking.

It is clear 1.6.9 has a lot of overhead, but what is it doing?
Blank sketch
1.6.9 First compile: 23s Recompile: 12s
1.0.5 First compile: 11s Recompile: 3s

I just did the same test on my with 1.6.9 and it take 3sec to compile, recompile 2 sec.

Are you sure your PC meets minimum system requirements?

Qdeathstar:
I just did the same test on my with 1.6.9 and it take 3sec to compile, recompile 2 sec.

Are you sure your PC meets minimum system requirements?

Well I think so - what are the min requirements?

As I said my PC spec is similar to that of 'westfw' - Win7, 32bit, 4Gb, 2.8Ghz, Samsung 840 pro SSD

The fact remains there is a significant (negative) difference between old and new IDEs.

For some sketches the difference is bearable, for others, 1.6.9 is almost unuseable.

Granted it does appear to be library related in this instance - so what does 1.6.9 do that 1.0.5 didn't that can cause the difference?

I cannot be the only one who has experienced this sort of behaviour.

It has to be something local, because most people do not experience it.

How old is your Java?