Will empty hook definitions slow down a site? I'm working on porting over some Drupal 6 custom modules that another developer wrote, and I'm coming across some hooks that are, with the exception of comments, completely empty. I'm likely going to clean these out, for the sake of readable code, but I was curious if I would get any form of performance increase out of it.
I suspect I have been guilty of deploying code with empty hooks.  Often, I will stub out hooks for debugging purposes, so I don't have to clear cache in order to dpm() something at the point I need.  Ideally, though, dead code should be removed.

If you remove an empty hook, you will


Save a small amount of database space from the hook being saved in the registry.  I think it will save one row.
Save a small amount of memory in APC.
Save some query memory and some PHP memory from reading in that row from the registry
Save a few CPU cycles from having a module_invoke_all() call something that does nothing.
Potentially save you some headache of having dead code in a file.


If you have the time, and have a site that works, there should be no harm in removing these hooks.  Just test it to be positive.

Whether you have a meaningful performance impact is really debatable.

In the case of cached pages, the only hook that fires is hook_boot().  There will be some overhead from the bootstrap process reading in an extra hook from the registry.  I seriously doubt this is measurable, though.

For authenticated access, or non-cached pages, the hook may run if the invoker runs.  In other words, a hook_init() will always run, but a hook_node_insert() will only run if you actually save a new node.  Even in this case, I doubt that you will have any meaningful impacts.  Actually profiling this would be an interesting exercise, though.

TL;DR, there should be no harm in removing them, but you will probably not notice them gone.