I found that writing takes 3.3ms per byte, but couldn't find figures for reading. I've got a situation where I read the internal EEPROM as soon as my arduino powers on, do my stuff in code using variables to hold the values which came from the EEPROM, and write those variable values back into the EEPROM just before I turn off (turning off is a planned event not a sudden cutting of power, it's done via a system where a user presses a button and the actual power off event comes a few seconds later when the arduino, upon seeing such a button press, changes a GPIO output so as to cut off power to a relay which powers the whole system). I only use three bytes (I've been using bytes 0, 1 and 2 of the EEPROM each time, as I'm only reading on powerup and writing on powerdown I don't expect life cycle problems. I guess the life would be longer if I cycled through all the EEPROM bytes but then I'd have no clue which byte addresses to read from when I powered up), and an extra 9.9ms during powerdown is not a problem for me, but knowing how long it takes to do the reading during powerup is very important. Thanks.
I'm using an ATMEGA328P based uno.
P.S. I'm nearly certain of this but, just to check, the EEPROM can be assumed to preserve data pretty much indefinitely (months atleast) when the chip is completely unpowered? There's no need for any kind of thing like a "BIOS battery" or little capacitor built into the atmega for which the EEPROM only keeps it's memory as long as this stays charged?
P.P.S. For various reasons of fast starting up I have to use my arduino without a bootloader and with custom fuses set. I haven't changed the brownout fuse bit, only the one which afefcts startup time, I startup in 16K clcok cycles plus 0ms ratehr than wait an extra 65ms to start. Is it ok to read from EEPROM instantly after starting or should I delay for several micro or milliseconds after starting up before I execute my initial read. When powering down it's less of a concern, I can do the EEPROM write inbetween a pair of multi-second delays, the relay not being switched off until the second delay ends.