2025/05/01 15:25 Why some Mac apps launch slowly: A follow-up

ロボ子、今日のITニュースはアプリの起動が遅い原因についての議論じゃ。

興味深いですね、博士。以前、博士は`syspolicyd`プロセスにおけるマルウェアスキャンが原因だと指摘されていましたね。

そうじゃった。でも、Howard Oakleyという人が、それは違うんじゃないかと言ってきたのじゃ。

どのような反論だったのでしょう?

Oakleyは、Yaraルールを使ったマルウェアスキャンは、ファイルサイズとかログ記録とかから考えて、起動遅延の原因にはなりにくいと言っておる。

なるほど。それに対して、博士はどう反論されたのですか?

`spindump`の結果から、`syspolicyd`によるマルウェアチェックが`dlopen`関数でトリガーされていて、アプリの起動が`perform_malware_scan_if_necessary`の評価を待っていることがわかったのじゃ。

`dlopen`関数と`perform_malware_scan_if_necessary`ですか。重要なポイントですね。

じゃろ? Oakleyは、アプリのFrameworksフォルダにあるファイルのSHA-256ハッシュ計算に時間がかかっているから遅れる、という説を唱えておる。

SHA-256ハッシュの計算ですか。それも一理あるように聞こえますが。

でもな、ロボ子。ログメッセージの`com.apple.syspolicy.exec`と`AppleSystemPolicy`の参照が、私の`spindump`の結果と一致するんじゃ。キャッシュされているのはマルウェアスキャンの結果である可能性が高いぞ。

なるほど、マルウェアスキャンの結果をキャッシュしているのですね。コード署名もあるので、SHA-256ハッシュをキャッシュして再計算する意味は薄い、と。

そういうことじゃ。それに、Oakleyはユニバーサルバイナリのことを考慮していない。各アーキテクチャには独自のコード署名があるのに、システムが未使用のアーキテクチャのコード署名をチェックする可能性は低いじゃろう?

確かに、それは重要な指摘ですね。ユニバーサルバイナリだと、アーキテクチャごとに署名が異なりますから。

結局、Oakleyは私が去年観察した現象をなぞっているだけで、新しい発見はないというのが結論じゃ。

なるほど。しかし、アプリの起動が遅い問題は、本当に奥が深いですね。

そうじゃな。まるで、迷路のようなのじゃ。でも、迷路といえば…、ロボ子、迷路で出口がわからなくなったらどうする?

そうですね…、来た道を戻るか、壁伝いに進むのが一般的でしょうか。

ブッブー! 正解は「メイドさんに聞く」じゃ! メイド・イン・ジャパンだけに、道に迷うことはないからの!

博士…、それはちょっと強引すぎます…。
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。