PeterPan321:
But I've worked with a few other little boards (such as the Pololu WIXEL, the one with the built in 2.4 Ghz radio), and in every usage example there you must call a library based "boardService()" routine. I believe its to make sure things like the USB, watchdog timers, system timers, and some other items were properly updated
AVR's integrates more than some MCU's I guess but Arduino IDE fits more than AVR's. Whatever in boardService() is needed probably gets compiled in (might need a #include) for those boards that don't run their own watchdog, timers, whatever. Arduino millis() runs off a timer interrupt for instance but if your sketch doesn't use it somehow, I wouldn't be surprised if the compiler left that out.
I realize this is just a small 8 bit MCU. But over my lifespan, I've had to write device handlers and communication drivers in devices that also were small and also had no OS, and they were expected to offer near "real time" performance. So yeah, I'm big into state machines
, and I guess I've gotten into the habit of asking these kind of questions, rather than assuming it doesn't matter.
Okay to be clear here the size of the total code isn't the point with loop() Hz. It's the size of the bites the tasks take. It is all about not-blocking, try and keep task steps shorter than 200us (analog read takes 105us) and if possible < 50us.
I have a serial input keyword matcher that read by read seeks to follow text in a linked word list until reaching the end of a word in that list while printing a trace to demo how it works; it just keeps up with 250000 baud input doing all that. At that rate you have 40us between char arrivals. Is that fast enough?
The way I do it, I have a match right after the last matching char is read and a no-match even quicker. Compare to buffer-then-parse IT methods.
The keyword list can have 255 variable length keywords as written, it and the indexes reside in flash ram. If I split a large dictionary up between many AVR's on a clocked-down SPI bus then almost arbitrarily more keywords can be recognized and trigger code on the list host chip or have it send the match number back to the master, the other chips not sending since they didn't match.
People forget how much can be done with a fast little 8 bit controller, and rule number one is always to avoid spinning your wheels in any kind of delay loop.
I "cut teeth" on programmable calculators before getting a 4 or 5MHz 8085 S-100 with 32K and a 5 1/4" FD at work. We made do and I found ways to make people not have to wait. The parse on the fly technique is one of those, don't waste cycles and there's less wait.
Writing on those old machines and even later ones using DOS, my code owned the hardware. Arduino gives me that back.
A 1MHz 6502 is enough to do a lot even as register-sparse as it is. It's a brilliant little machine. ]
AVR has 32 general use accumulator/index/address registers alone. It tromps the 6502 at 1MHz, can rate 20MHz, OC 24MHz.
Thanks for the informative post. I'm new here an it often seems questions are met with snappy and often sarcastic answers. 
You caught me on a good day, had muh caffeine!
If you want to play with bigger resource (same core) AVR's then look into the Mega250 that can take external RAM. Rugged Circuits sells (hopefully still but I have mine!) the QuadRam 512K board for under $30 shipped. You don't get to use all 512K due to the internal 8K taking the low addresses (and dedicated to stack) but you do get 8 banks of 56K heaps.
I don't have any big thing to do with mine, I just liked it, but there's something a person could go nuts with all sorts of ways.
The biggest resource DIP (DIY for can't-SMT) AVR is "The Mighty" ATmega1284P-PU, just got 2 at $5.51 ea.
It's a 40 pin DIP (size of 8088) with 32 IO pins as 4 ports. 16K RAM, 4K EEPROM, 128K flash. 2 serial ports as well as SPI and I2C. Note that all ATmega serial ports are capable of being full speed master-mode SPI ports. Even a 328P can be an SPI slave on its SPI port while mastering its own SPI bus to perhaps serve one or more SD cards as a subsystem.
This is knowledge, technique and software to program AVR chips on breadboard or any Arduino board with ICSP header.