Good Practices with debug.profilebegin() and debug.profileend()?

What is too much or too little and when does it become a hindrance to sensitive scripts that rely on speed and stability?

Should I create a module that has a toggleable value that will either make it a empty function or make it run the actual debug.profilebegin/debug.profilebegin?

Or has the functions for the microprofiler have been maintained enough that it’s reliable to be left in code for future debugging and optimizations of scripts?