treedown’s Report

システム管理者に巻き起こる様々な事象を読者の貴方へ報告するブログです。会社でも家庭でも"システム"に携わるすべての方の共感を目指しています。

PresentationFontCache.exeが重い

今日はあるPCでやけにCPU使用率が高いなぁ…と思ったら、PresentationFontCache.exeというプロセスだった、という内容のご報告です。
最終的にサービスを止めてしまいました。

PresentationFontCache.exe

何かPCが重い、遅いなぁ…。
ある日の休日出勤の日。PCのメンテナンスをしていたらやけにPCが遅くなるタイミングがありました。確かにCPUはCore2Duoと一昔前のPCではありますが、にしても遅い。
別の同スペックのPCはもう少しキビキビ動作してくれています。このPCだけなんだか遅い。

そういう時のタスクマネージャ、早速起動して重いプロセスを探ってみます。

タスクマネージャ:

f:id:treedown:20170905170505p:plain

PresentationFontCache.exeがCPUの稼働の負担になっているのが分かります。
パフォーマンスもこれによって低下しているようです。

f:id:treedown:20170905170526p:plain
となると、PresentationFontCache.exeが気になるところです。
ファイルのプロパティを見てみました。

f:id:treedown:20170905170548p:plain
「C:\Windows\Microsoft.NET\Framework64\v3.0\WPF」に存在していることが分かります。システムファイルってことですね。パスに.NETとありますしFramework64フォルダ配下にあるので、.NET Framework関連のファイルだろうことは想像できます。

主な機能としてWindows Presentation Foundation (WPF) アプリケーションの役に立つよう、フォントデータをキャッシュしてWindows Presentation Foundation (WPF) アプリケーションのパフォーマンスアップに貢献するプロセスってことのようです。
このプロセスでフォントをキャッシュするからWindows Presentation Foundation (WPF) アプリケーションの動きがより高速になる、ということらしいけども、PresentationFontCache.exeがPCの動きそのものを阻害しているという状況。

そうだ、サービスを止めてしまおう

とても安直なのですが、このプロセスが動作しないようにサービスを止めてしまうことにしました。何か動作上影響があるようであれば、再度起動すればいい、くらいの温度感です。
そもそもPresentationFontCache.exeがないとPCの動作上困ってしまって仕方ない、という重要プロセスではない、と判断できるような情報がネット上に多数散見されました。

サービスMMC(services.msc)から該当サービス「Windows Presentation Foundation Font Cache 3.0.0.0」というサービスを探し出します。

f:id:treedown:20170905170624p:plain
このサービスを右クリックしてプロパティ画面。

f:id:treedown:20170905170638p:plain
プロパティ画面からスタートアップの種類を「自動」から「無効」に変更してしまいます。

ここでひとまず再起動、PCの動作を一通り試しましたが、特に動作上問題はなく、使いたいソフトウェアの動作にはWindows Presentation Foundationアプリケーションはないのもあってか、無効化した影響は感じられませんでした。

一つ思ったのは

一つ懸念というか気になったのは、そもそもPresentationFontCache.exeが突然動きが重くなった根本的な原因です。このプロセスが「フォントをキャッシュする」という動きをするプロセスなので、「フォントファイルが破損しているんじゃないか?」という可能性が頭に浮かんできました。検証したわけではありませんが。
フォントファイルが破損しているせいで、そのデータをキャッシュするプロセスが暴走してしまった、というのはありそうな話に思えます。ただ、フォントの破損を検証しようにもインストールされたフォントは数百もあって一つ一つ検証するにも何か手を考えなきゃいけない、悩ましい⇒棚上げ、となっちゃいました。

フォントの破損が疑わしい動きをしていたら、ちょっと考えてみようかなと思ったところです。