its sensible to split function like that to smaller meaningfull tasks from OOP, reusability or what not point of view. but as you've figured it out, it can deviates from your "performance and space" modus operandi. its easy to show the overhead difference for that smaller code, not that so for the real application. and truly speaking from what i understand, you cant measure "overhead" by judging from code size alone, it is how much cpu cycle that is going to be wasted doing housekeeping work and function call. and then you need to look at how many times the "overhead" will be called in your application life or at a single event. the "compromise" will depends on your specific situation, there is no telling if inlining is necessary at all time vs code readability. for smaller application, pretty much you can inline without seeing too much space penalty. discussion of "inlined" functions and "code space" are pretty much trivial for a software of a significant complexity, imho. "algorithm optimization" is far superior than this, something like if you can make N.N operation into N.log(N). you code "clean", the performance should follows. YMMV.