I can tell you from a tiny experience with this,
how you handle your data will matter much more than access times.
For my "prototype" version of my delayed regeneration mod, I refer to global settings, and accessed two or three-deep properties multiple times in a single tick (it was not every tick).
1.
As soon as I knew I didn't need to track an entity, I stopped tracking it or didn't start.
2. I stored information as simply as possible.
3.
I compared times to other mods 
. A mod that I like to use had running times that were 10-100x my mod, constantly. That mod let me make biter spawners, so I had lots of biters that needed regeneration every second (I only healed once per second), both of which gave me a good idea of how I could expect my performance to be.
I updated and made small optimizations:
If I needed a value I should have needed to calculate once, I did that and stored it instead of calculating every time.
I didn't have to define multiple functions, but if you have a ton of run-time checking for behavior, it may be more optimal to just define the function you're running based on something, instead of doing all the checking in a single function.