You’re browsing Activity Monitor when you notice something named cfprefsd. What is this, and should you be worried about it?
Quick answer: No, cfpresfd is a core part of macOS, and you couldn’t use your computer without it.
This article is part of our ongoing series explaining various processes found in Activity Monitor, like kernel_task, hidd, mdsworker, installd, WindowServer, blued, launchd, backup, opendirectoryd, powerd, coreauthd, configd, mdnsresponder, UserEventAgent, nsurlstoraged, commerce, parentalcontrold, sandboxd, cloudd, and many others. Don’t know what those services are? Better start reading!
Today’s process, cfprefsd, is a daemon, which means it runs in the background and handles system tasks. You can generally identify daemons by the “d” at the end. This specific daemon allows macOS and your applications to read and write preferences files.
What cfprefsd Does
To quote the man page, which you can view by typing
man cfprefsd in Terminal:
cfprefsd provides preferences services for the CFPreferences and NSUserDefaults APIs.
That’s a little confusing if you don’t know what CF Preferences and NSUserDefaults are, so let’s dig into those briefly.
The CF in CFPreferences stands for Core Foundation. According to Apple’s developer documentation, Core Foundation is how your Mac manages both system-wide and application-specific preferences:
Core Foundation provides a simple, standard way to manage user (and application) preferences. Core Foundation stores preferences as key-value pairs that are assigned a scope using a combination of user name, application ID, and host (computer) names. This makes it possible to save and retrieve preferences that apply to different classes of users.
Basically, anytime your computer creates or edits a .plist file inside the hidden Library folder on your Mac, it’s CFPreferences that makes that happen.
NSUserDefaults, meanwhile, is a related system that allows programs to access your default settings. If you’ve set up your computer to use Inches and Celsius, I’m confused by your choices. Your applications aren’t, however, because they can use NSUserDefaults to learn what options you’ve selected. To quote the Apple Developer documentation again:
The NSUserDefaults class provides a programmatic interface for interacting with the defaults system. The defaults system allows an app to customize its behavior to match a user’s preferences. For example, you can allow users to specify their preferred units of measurement or media playback speed. Apps store these preferences by assigning values to a set of parameters in a user’s defaults database.
To summarize: cfprefsd is a daemon used by macOS and applications to create and edit preferences files. It’s also used to make sure applications respect your system-wide default settings.
What To Do If cfprefsd Is Using Up CPU Power
This process shouldn’t be using up a lot of CPU power, because it has a fairly simple job. If it is, the culprit is likely an application you installed recently. As we’ve said, cfprefsd is used by both macOS and your individual applications.
If you recently installed something, try closing that app and seeing if it helps. If it does, you might be dealing with a corrupted .plist file. Consider wiping that app’s settings by using AppCleaner, or by manually deleting any .plist files you find for the application from the Library folder. If that doesn’t help, you’ve found a bug; get in touch with the developer of the problematic app.
Photo credit: guteksk7/Shutterstock.com