First, I would like to thank all those who took the time to assist me
with this issue.
I have begun implementing the suggestions I received with good results.
Modifying the code to use IORegistryEntryCreateCFProperty() rather than
IORegistryEntryCreateCFProperties() resulted in CPU usage dropping from
around 5% to .25%. I am sure that implementing the other suggestions
will result in additional improvements.
Why was the code implemented as it was? This is my first experience with
OS X and I was mining working code. I took the approach that if it isn't
broke don't fix it. But it was, so I will. Still, I am astonished as to
the CPU overhead from calling IORegistryEntryCreateCFProperties() 3.5
times per second.
As an Apple newbie, I am pleasantly surprised by the high quality of
advice available in the developer forums... and no trolls! Thanks again.