helpd uses 100% CPU after installing any application with documentation I see that after installing a software that ships with documentation in OS X’s help document format, the helpd process uses 100% CPU for up to 5 minutes or so. I also see this when you first install OS X.

I assume this happens because of indexing of the new documentation that was added by the new application.

Is there a way to make this indexing a bit less resource intensive? 

Slow it down, maybe? 
When it happens, my system just crawls to a halt until it is finished. 

Have anyone else experience the same problem?
From thread https://discussions.apple.com/thread/3209466

« Jan 2, 2012 11:45 AM in response to zeBob

Helpd updates all of the Application help files on your Mac.

However, I hate having helpd launching repeatedly and seemingly randomly, taking up 1 gig of RAM, and using so much CPU time that the fans go loudly full blast on my MacBook Pro.  I prefer having my MacBook Pro be quiet.

Upon investigation, I found that helpd is controlled by a System LaunchAgent plist which is run on startup:

/System/LaunchAgents/com.apple.helpd.plist

When examining the contents of this plist using XCode, what you find is that:


helpd is run when it is loaded by the system at startup or login
helpd is run on every Sunday at 2:30 AM
the launch agent watches the following folders and runs helpd whenever the folders change:

/Applications/

/Applications/Utilities/


The biggest problem is the watch folders.  They change whenever you open them (i.e. their modified date changes when opened).  They change when you install a new application. Many applications change their Application folder content when run. etc. etc.

(Lingon is a simplified launch agent and launch daemon editor.  Lingon 3, by the way, cannot manage anything other than your own user's launch agents and launch daemons.  It is limited by Apple's new App Store rules.  Lingon 2 can open up system launch agetns and launch daemons.  But it is missing many of the plist fields revealed by using XCode. For example, it will show the /Applications/ watch folder. But there are TWO watch folders - the second one is /Applications/Utilities/  Thus, Lingon may cause problems by modifying the system launch agents and daemon plists by missing several fields. I don't recommend Lingon other than to create your own user launch agents and daemons - with Lingon 2 being a much more capable version)

The easiest solution is to use Xcode or another plist editor to modify the com.apple.helpd.plist to change the watch folders.

I changed /Applications/ to /Applications/Utilities/  and left the second watch folder /Applications/Utilities/

Since I seldom open /Applications/Utilities/ this causes helpd to launch far less often.

You can also just simpliy eliminate the watch folders.  This keeps helpd running on Sundays at 2:30 AM or on startup or login.

When users get rid of many older applications, they see helpd launch less often since these older applications may be the ones modifying the /Applications/ folder.

If you have only newer applications or few applications, you don't run into the helpd problem as often or at all. This is why few people complain about helpd. Only the users who have numerous applications (particularly older ones or ones not bought from the App Store) run into this problem.

Here are the contents of the com.apple.helpd.plist:









      &lt;key&gt;EnableTransactions&lt;/key&gt;

      &lt;true/&gt;

      &lt;key&gt;EnvironmentVariables&lt;/key&gt;

      &lt;dict&gt;

                &lt;key&gt;NSRunningFromLaunchd&lt;/key&gt;

                &lt;string&gt;1&lt;/string&gt;

      &lt;/dict&gt;

      &lt;key&gt;Label&lt;/key&gt;

      &lt;string&gt;com.apple.helpd&lt;/string&gt;

      &lt;key&gt;LimitLoadToSessionType&lt;/key&gt;

      &lt;array&gt;

                &lt;string&gt;Aqua&lt;/string&gt;

                &lt;string&gt;LoginWindow&lt;/string&gt;

      &lt;/array&gt;

      &lt;key&gt;MachServices&lt;/key&gt;

      &lt;dict&gt;

                &lt;key&gt;com.apple.helpd&lt;/key&gt;

                &lt;true/&gt;

      &lt;/dict&gt;

      &lt;key&gt;OnDemand&lt;/key&gt;

      &lt;true/&gt;

      &lt;key&gt;Program&lt;/key&gt;

      &lt;string&gt;/System/Library/PrivateFrameworks/HelpData.framework/Versions/A/Resourc es/helpd&lt;/string&gt;

      &lt;key&gt;RunAtLoad&lt;/key&gt;

      &lt;true/&gt;

      &lt;key&gt;StartCalendarInterval&lt;/key&gt;

      &lt;dict&gt;

                &lt;key&gt;Hour&lt;/key&gt;

                &lt;integer&gt;2&lt;/integer&gt;

                &lt;key&gt;Minute&lt;/key&gt;

                &lt;integer&gt;30&lt;/integer&gt;

                &lt;key&gt;Weekday&lt;/key&gt;

                &lt;integer&gt;7&lt;/integer&gt;

      &lt;/dict&gt;

      &lt;key&gt;WatchPaths&lt;/key&gt;

      &lt;array&gt;

                &lt;string&gt;/Applications/&lt;/string&gt;

                &lt;string&gt;/Applications/Utilities/&lt;/string&gt;

      &lt;/array&gt;




 »