in reply to writing looped programs

To wait until the beginning of the next minute, you just
sleep(60 - (localtime)[0]);
However given the startup time of a script, the person who was concerned about efficiency shouldn't be.

Furthermore given the fact that a persistent process can easily be forgotten about (or not forgotten about, but not tested) when the time comes to reboot your machine, it is unwise to multiply them needlessly. (This is a classic Unix mistake that I already mentioned today.)

In short, the person who told you to be concerned is giving you bad advice. Unless the cron job is generating an unfortunate number of emails when something goes wrong, I strongly recommend just leaving it as it is.