クリーンアップって大事ですよね......。
ただパソコンのクリーンアップをするだけの記事です。
使用容量を確認してみる
スクショ取り忘れました...。空き容量は 31.8GB です。ここからどのくらい減るか見ものです。
不要ファイルを削除していく
不要なプログラムを削除
はい、まず最初にやるべきことと言ったらこれです。不要なプログラムをアンインストールします。
「設定 > アプリ > アプリと機能 > (アプリ選択) > アンインストール」です。全く使っていないアプリ(1 桁台)をアンインストール。
プログラムサイズが小さかったのか、消すプログラムが少なかったのか、3GB くらいしか増えず...。
フォルダ整理
とりあえず、今後見やすくするために、空フォルダを削除していきます。
Powershell で削除したい親フォルダに移動した後、以下のコマンドを実行します。子孫フォルダが多いと、かなり時間がかかります。
(※一応動作確認はしていますが、以下のコマンドを実行したことにより生じた損害については責任を負いかねます)
Measure-Command{
$dirs = Get-ChildItem -Directory -Recurse | Sort-Object -Descending
foreach($dir in $dirs){
$item = Get-ChildItem -Path $dir -Recurse
if($item.Count -eq 0){
Write-Host "Deleting $dir"
Remove-Item $dir
}
}
}
$dirs
に子孫フォルダを保存し、それぞれについて、ファイル数が 0 なら削除、といった流れです。Measure-Command
で時間計測をしています。
%UserProfile%
フォルダで試してみた結果、1464 フォルダが削除されました。実行時間は 13 分 11 秒でした。
Windows のクリーンアップ機能を使う
Windows に標準搭載されている、クリーンアップツールを使います。
エクスプローラーで、C ドライブなどを選択して、上の「管理・ドライブツール」にあるやつです。
33.7GB まで空きました。
%temp%フォルダを消す
一応、ある程度は上のツールで消えてくれるんですが、まだ割と残っているので、エクスプローラーから削除します。
cd $ENV:temp
Measure-Command{
$dirs = Get-ChildItem -Directory -Recurse | Sort-Object -Descending
foreach($dir in $dirs){
Write-Host "Deleting $dir"
Remove-Item $dir -force -Recurse
}
$files = Get-ChildItem
foreach($file in $files){
Write-Host "Deleting $file"
Remove-Item $file -force
}
}
空き容量は 35.3GB です。そこまで期待はしていませんでした。
CCleaner で消していく
クリーニングソフトでは有名な、CCleaner を使って消していきます。
スキャンしてみた結果、「約 4,687MB(=4.58GB)消せそう」と出ていましたが、実際に消してみると 5,139MB(=5.02GB)消せました。空き容量は 39.8GB になりました。
ついでにレジストリも削除しました。
手作業で消していく
はい、結局これに尽きます。アンインストールしたソフトでも、完全にはファイルが消えているわけではないので。
以下のコードは、開いたフォルダ内のファイルのうち、最新の書き込み日時を取得して出力するコードです。
Measure-Command{
$dirs = Get-ChildItem -Recurse | Sort-Object -Descending
[System.Datetime] $lastUpdate = "2000/01/01 00:00"
foreach($dir in $dirs){
if($dir.LastWriteTime -gt $lastUpdate){
$lastUpdate = $dir.LastWriteTime
}
}
Write-Host "Last Update: $lastUpdate"
}
要らなさそうなファイルを消した結果、47.6GB まで増えました。
(アンインストールしたプログラムや、Cache フォルダ、最終更新から 1 年経っているフォルダなどを削除しました)
この後に念のため、CCleaner のレジストリクリーナーを走らせました。
.git フォルダの軽量化
C ドライブの Documents フォルダ内に Git 管理のプログラムを大量においていたため、Git により容量が使われている可能性があったので、軽量化します。
なお、日をまたいでしまったので 45.0GB にリバウンドしました()。
さて、Git リポジトリで以下のコマンドを実行します。
Git - メンテナンスとデータリカバリ
git gc
例えば、a01sa01to/covid19-ibaraki における .git
フォルダの容量は、4.72GB から 4.68GB に減りました。ほんとに誤差ですね...。ちなみに 12 分かかりました。
node_modules フォルダの軽量化
node_modules フォルダによっても容量が使われている可能性があったので、軽量化します。
この手法は npm を利用している場合有効で、Yarn を利用している場合は必要ないようです。
Yarn の場合 yarn install
時に 自動で軽量化される らしいです。
npm prune
えっと、npm を使っているプロジェクトがありませんでした...😥
次に、Yarn で不要なファイルを削除します。上の代替なのかもしれませんが。
注意(yarn autoclean | Yarn より意訳)
このコマンドは上級者向けと思っておいてください。
node_modules
内に大量のファイルがあることで問題が生じているとき以外は、このコマンドは推奨されません。node_modules
内のファイルを恒久的に削除するため、パッケージが停止する原因になり得ます。
はい、やっていきます。(実際に損害が生じても責任は負いかねます。)
yarn autoclean --init
yarn autoclean --force
yarn autoclean --init
で .yarnclean
ファイルを作成します。このファイルが存在すると、yarn install
や yarn add
の際に自動的に不要ファイルが削除されるとのことです。
でも、もうすでに yarn install
はしてあるし、yarn add
するパッケージもない...ということで、yarn autoclean --force
で実行しています。
再び a01sa01to/covid19-ibaraki で実験してみた結果、3,697 ファイルが削除され、14.23MB が空きました。ちなみに実行時間は 25.43 秒でした。十分高速。
結果は...?
前述したように、日をまたぐ前は 47.6GB 47.8GB まで増えました。
日をまたいだことにより 45.0GB までリバウンドしましたが、45.2GB まで増加。
内訳は上の画像の通り。システムは変更できないけど、「アプリと機能」も必要なものしか残っていないはず...です。たぶん。
上記以外にもいろいろな手法を試してみたいと思います。
年末に OS ごとクリーンアップするのもありかも...?