Normal to take 2 minutes to compile & upload a sketch..?

I just got a new mega 2560, my first Arduino. It seems like it is taking forever (ok, a minute or two) to compile the sketch, and then the transfer to the board takes seconds. I've also played with winavr, and am used to the speed of the make command, taking 5-6 seconds to compile, transfer, and verify to the mc.

Any thoughts on ways to get the compile speed up, or is this normal behavior? Thanks.

No, seems kind of slow.
I compile a 13Kbyte program in the IDE in about 9 seconds.
Don't know what makes it slow.

forever (ok, a minute or two)

Forever isn’t measurable. A minute or two is a difference of 100%.

How about some real numbers? Also it might be helpful to know your operating system, Arduino IDE version, and basic computer specs. If you are compiling on a 386 with Windows 95, two minutes sounds fast.

I had something similar happen to me. A program that compiled like stink with a makefile took forever (sorry for the non-technical terms James :)) when compiled with the IDE.

Watching the activity and running processes on the PC I decided that there was say 2 mins in Java and 2 secs in the compiler.

As the IDE scans the code to create function prototypes and I had a few include files I decided that it was this scanning that was the culprit.

That's as far as I took it as I seldom use the IDE so it wasn't worth pursuing.

There's a thread here about it but buggered if I can find it.


your problem should the the operation system.If you are using windows check if the anti-virus is off.I also have that problem and it was kaspersky trying to analise the behavior of the program.
Disabling it reduces to me to about 35 secounds compile and upload

Thanks for the replies. My specs: Arduino 0022, Win7, dual 2.4Ghz, 8Gb ram. The following code took 86 seconds to upload:

void setup() {
// set up the LCD's number of columns and rows:
lcd.begin(20, 4);


void loop() {
int reading = analogRead(sensorPin);

// converting that reading to voltage
float voltage = reading * 5;
voltage /= 1024.0;

// now print out the temperature
float temperatureC = (voltage - 0.5) * 100 ; //converting from 10 mv per degree wit 500 mV offset
//to degrees ((voltage - 500mV) times 100)
lcd.print(temperatureC); lcd.print("C ");

// now convert to F
float temperatureF = (temperatureC * 9.0 / 5.0) + 32.0;
lcd.print(temperatureF); lcd.print("F ");