Teensyduino has a heavily optimized Print
Tell the truth - did you actually optimize it, or did you just avoid bloating it? :-)
(It's been a bit depressing to watch Serial grow and grow with nearly every release... Despite contributions that would improve things.)
Yes, Arduino's HardwareSerial is horribly inefficient. The use of indirect addressing for all the I/O registers and constants is terribly inefficient on AVR hardware. Somebody obviously felt 1 copy of the code, no matter how complex and inefficient, would be better than a separate copy for each port. From a maintenance perspective, maybe it is, but the trade-off is slow performance and unnecessary compiled code size.At least 1.0.1 changes the index variables to unsigned, so the interrupt won't use the math library to implement the modulus operator! That's actually a huge improvement in interrupt latency.