Arduino 1.6.5 and anti virus conflicts.

Hi,

I upgraded my laptop recently and noticed that arduino compilation was taking a long time (40 seconds compared to 2 or 3 seconds previously).

After a bit of investigating I discovered that if I switched off Bullguard anti-virus then compilation was back to a couple of seconds.

A bit more investigation and I discovered that I can instruct Bullguard to ignore certain files - so I told it to ignore arduino.exe.

However, this didn't work (compilation still took 40 seconds). My guess is that arduino.exe is calling some other executable during the compilation process. Does anyone know what this might be?

Thanks

You should add certain directories to your AV and not just the EXE.

C:\Users\Yourname\AppData\Local\Arduino15

C:\Users\Yourname\AppData\Roamingl\Arduino15

C:\ProgramFiles (x86)\Arduino

If you keep your sketches in a non default location that also might be worth excluding as there is a libraries folder in there used by the program.

If you have an OOBE / split installation of windows substitute your drive letters and user folder paths for the correct ones

FOR CREATE USERS the following should also be added to exclusions.

C:\Users\Yourname\AppData\Roamingl\ArduinoCreateAgent

C:\Users\Yourname.arduino-create

Yours is not the only AV to question Arduino and they are false positives for sure.
The compiler is basically making changes to files / changing actual code within the confines of its duties and rightly so AV classes this as suspicious.

Thanks for the suggestions, I have added the location of my arduino executable, and the location of all my arduino sketches and projects. Still takes ages to compile.

Just as a background test, I tried telling Bullgaurd to skip checks on both my C: drive and D: drive (only have two drives) but it still takes 40 seconds to compile a sketch! Either the bullguard folder-exclusion process doesn't work, or it only applies to the top level directory and doesn't recurse down.

I have also tried excluding processes from the virus scanning process but since I don't know exactly what processes are running, this to is a hit and miss affair

I've noticed in windows task manager that a couple of AVR* processes pop-up during the compilation process, but since these only pop up for a second or two I guess they aren't causing the long delays.

Any further suggestions?

The IDE does create some temporary files but I would not normally suggest excluding those.
However if you can find its location (not 100% sure) you could test and see if that helps.
If you do find or anyone else knows it let me know as its useful information to have.

I also found that mine was faster when all relevant windows updates were in before installing the IDE.

Another key issue on occasion seems to be allowing the Arduino items to "run as administrator"
Note that this is a level ABOVE that of a user with admin rights and is easily found with a quick google.

Do this:

  • File > Preferences > Show verbose during: > compilation(check)
  • Sketch > Verify/Compile
  • After compiling completes examine the output on the black console window at the bottom of the Arduino IDE window. This will show all executables that are used during compilation and the locations of the temporary build files that are generated.

There will also be additional executable(s) run in the Upload step, which will be shown in the console after an upload.

Thanks Pert,

According to verbose mode, I'm running these executable (even when compiling a blank sketch)

D:\my_apps\arduino-1.6.5\hardware\tools\avr/bin/avr-g++
D:\my_apps\arduino-1.6.5\hardware\tools\avr/bin/avr-gcc
D:\my_apps\arduino-1.6.5\hardware\tools\avr/bin/avr-ar
D:\my_apps\arduino-1.6.5\hardware\tools\avr/bin/avr-objcopy

I've added them all to the antivirus 'ignore' list, but it still takes ages, I've also added the directory itself to the list so it should ignore all executables.

What I could do with is a feature in Bullguard that allows me to switch anti-virus off for a limited period, and then re-enable itself later. What's happening at the moment is that I'm forced to switch it off entirely, and then I forget to re-enable.

Unfortunately Bullguards support is useless (despite me having a paid subscription!)

What about the temporary build files it creates in C:\Users\per\AppData\Local\Temp or whatever? can you whitelist the Temp folder?

What about the temporary build files it creates in C:\Users\per\AppData\Local\Temp or whatever?

These have already been whitelisted, but I have just noticed something which may be causing problems. I think Bullguard only allows specific directories to be whitelisted, not temporary directories created within a whitelisted directory. Arduino seems to create a temporary directory for each compilation, and then create files within that new directory. It doesn't just create them directly in C:\Users\per\AppData\Local\Temp.

Compilation times do vary quite wildly per computer even for the same IDE version.
Without "hands on" some of these things are a PITA to sort out trust me I have done a lot of RDP service.

You have taken care of most items that could be an issue with the AV.
Maybe its time you looked at other running processes and see if they hinder performance.

Start by temporarily disable any un-needed background services and take note of the times.

Simple things like Java update (if you have proper Java installed) Adobe background items, Video card driver updater or un-needed 3d video drivers etc etc.. Try to trim down to around 70 - 80 running processes.

If you have more than that regardless of base computer spec you may be wasting CPU time

You may want to also perfrom a good cleanup JIC any issues lie there.
I use CCLEANER to get rid of the crud followed by WISE REGISTRY cleaner to root out any stray bits. That method is by far the best way to not only remove programs but to do a thorough clean up of your computer too... both CCLEANER and WISE are advert free and work very well.

Will IDE 1.6.12 run on your box as I found that much faster than 1.6.5 (I only keep that to play with ESP8266 boards)

Done some more fiddling (actually got some help from Bullguard - eventually)

If I untick the 'scan behavioral' option then the compile speed is back to a couple of seconds. I'm not sure how much of a risk I'm putting myself at if I leave this permanently switched off.

I understand your concern and it doesn't sound like an option to be kept OFF as some nasties are particularly good with that behavior.

Doesn't sound like the exclusions option is doing a particularly good job if its not excluding as it should.