SPが最大17000からスタートする『ライザのアトリエ3DX』。
その恩恵のすごさを紹介。

質のいい素材をバンバン入れられることにより、素材の質、それに伴うSPボーナスも増えていきます。
序盤、4人での冒険の時点で、リビルドLv.99まで到達。

これによりゴルドテリオンも調合。

薪割り斧から順調に調合していき

ゴールデンアックスを調合。
これにより、最初の状態で、最上位の採取道具が手に入りました。
SPが最大17000からスタートする『ライザのアトリエ3DX』。
その恩恵のすごさを紹介。

質のいい素材をバンバン入れられることにより、素材の質、それに伴うSPボーナスも増えていきます。
序盤、4人での冒険の時点で、リビルドLv.99まで到達。

これによりゴルドテリオンも調合。

薪割り斧から順調に調合していき

ゴールデンアックスを調合。
これにより、最初の状態で、最上位の採取道具が手に入りました。
いわゆるまとめです。
『ライザのアトリエトリロジーDX』が出たことで、ライザ3をやってみたいという方はいるかと思います。
また、自分への思い興しとしてこの記事を記します。
完全なるリンク集です。
シリーズのキモでもある
の「採取」にフォーカスした記事。
の全ては「最序盤(アガーテにグラスビーンズを届ける前)」から理論的に可能です。ファストトラベル解禁後にやっておくことをオススメします。
「調合」は戦闘と探索を劇的に楽にします。その中の「特性」は最初の中和剤でどうとでもなります。
逆に言うと「中和剤」1つを満足に作れないと、後の調合で躓きます。
実績にも関わる全てのランドマークを見つける。その中のクーケン島周辺エリアに関しては「エメラルドバンド」を使う必要があります。
採取する素材の関係、クレリア地方についてからのスタートとなりますが:
で理論上は可能。そして、シリーズを持っている方のスタートダッシュ特典は、この理論を縮めることが可能です。
初見プレイヤーはここが躓くポイントです。
などゲームの選択肢が広くなった分、迷いも出てきます。その一助となります。
これは割と修羅の道です。たとえスタートダッシュ特典でも「理論上はできるがやろうとはしない」コアなファン向けの記事です。
2025/11/13にリリースされた『ライザのアトリエトリロジーDX』の『ライザのアトリエDX』。
壊滅的なロードの遅さは改善されていました。
https://atelier.games/secretdx/jp/update


アップデート後、

オプション→グラフィック設定→フレームレート制限を「無制限」から

60に変更。
この後、ワークアラウンドによって「PS3ぐらいのロード時間」から「これぞDX」というぐらいまで見違えました。
よって、こちらの記事は取り下げます。
こちらのセーブデータ連動特典による大盤振る舞いの特典を大きく受けられるのが
『ライザのアトリエ3DX』です。
ライザのアトリエ2は品質上限アップや特定の採取道具などはある程度シナリオを進める必要がありましたが
「ほぼ全てのスキルツリーがフルオープン」という仕様になっているため、

を通しで買い、更に今回のトリロジーも購入しているというファンにとっては
17,000のSPでスタート。
これがどれほどの意味を持つかを説明します。
※リンク先はストーリーの流れ全てを記しています。(重大なネタバレは避けていますが)
https://atelier.reisalin.com/issues/246

「アガーテの依頼」受諾後のチュートリアルのスキルツリー後。
計算通り、17000ものスキルツリーによって

通常採取:獲得量強化Lv1.から始まり

メディカパウダーを解放。

エメラルドバンド経由で

通常採取Lv.2を解放してもまだ余裕があります。

通常採取Lv.3も上げます。

杖採取Lv.2→Lv.3を上げます。

スキルツリーの上、投入回数増加等もアップ。
品質上限突破:500。この辺りで流石にSPが5000を切りましたが

投入回数+2まで伸ばせます。

最後に獲得SP+10%を解放しました。

最序盤、クーケン島とアトリエ周辺のみから
などの最後まで使う特性が得られます。

全属性を付与した中和剤を作る

ゼッテルによる中和剤の統合も自由
と、かなりのやりたい放題になっていました。
そして、なぜ、筆者がこれに感動しているかというと、ライザ2/3は「極端な成長曲線を描く超・超拡大再生産だから」に尽きます。
終盤であればあるほどSPは溜まりやすく、上質なアイテムを調合することができます。
しかし、逆を言えば「序盤のSPは溜まらず、低品質なアイテムを作ることしかできない」になります。
これが、今回のSP大幅獲得により「成長曲線のスピード」が極めて速くなりました。
なので、ライザDXの不具合報告とは全く違う「本シリーズを追いかけているファンにとっては」いいボーナスとなった次第です。
こちらに既に記しています。
先に述べた『ライザのアトリエDX』の不具合(壊滅的なロードの遅さ)はゲームの進行を阻害する深刻な不具合でした。
しかし、『ライザのアトリエ2DX』における仕様の大盤振る舞いはゲームの進行を「進めすぎる」ものかと思います。
ストレートに言うと「SP10,000でスタートする」です。

10,000となっています。

500スタート。
この、余りにも大盤振る舞いな(500→10000)は何か裏があるのか、バグがあるのかを調査しましたが「全くの正常な仕様」でした。
公式サイトにはこうあります。
https://atelier.games/secretdx/jp/products/index_standard.html
オリジナル版や『秘密DX』各タイトルのシステムデータがあると、セーブデータ連動特典が取得可能! 序盤の冒険に役立つアイテムが手に入る!
この内容は、筆者は衣装だけと見間違えていましたが……

ここの「SP」の欄を見落としていました。
この合計は9,500。そして、前述した「初期SP:500」が加わると合計は10,000。つじつまが合います。
ちなみにライザのアトリエ3の場合は……

で、追加SPが17,000というこれまた桁違いの数字
いくら何でもこれは大盤振る舞い過ぎるのではと思いましたが:
という当たり前の感覚が抜けていました。
なので、一種の「強くてニューゲーム」状態を「原作プレイ済みへのお礼」というメーカーからのメッセージだと受け取ります。
2025年11月13日にリリースされた『ライザのアトリエトリロジーDX』。
グラフィック廻りが一新され、一部のボイスがアニメに準拠したものへと差し替わっているなどがありましたが、Steam版に強烈な不満がありましたが、修正を確認しました。
※2025/11/18のアップデートによりこの遅さは劇的に改善されました。よって、これ以降の記事は取り下げます。
前にも述べた『むこうぶち』の江崎のこの言葉。
「船が陸にたどり着く寸前に生憎の嵐…… どうすればいいと思います?
いったん沖に引き返すんですよ
船ってのは水に浮かぶようにできているんです
無闇に上陸を焦って座礁する事が一番怖い」
この言葉が持つ意味を手順書の「切り戻し」により、改めて掘り下げていきます。
等によって起きた障害・サービスダウンを「無かったことにする」技術全般です。Linuxサーバで言うならば
等による、逆転時計(タイムターナー)のような存在です。これは、ITの最大のメリットと言ってもいい技術。医療や建築のような「不可逆性」を“ある程度”緩和してくれます。
これは、物流・メーカー・医療・その他諸々の業界の方には釈迦に説法でしょう。
は、予測不能なリスクを奇跡的な幸運から乗り切ったから言える生存バイアスです。
このような、予測不可能なミスを少しでも減らし、起きてしまったことを「無かったことにする」技術が、バックアップからの切り戻しです。
https://barrel.reisalin.com/books/950a4/page/mysql
こちらでも少し触れている「Webアプリで不具合が発生した際の切り戻し」の方法。
mysqldump -h localhost -u redmine -p --no-tablespaces --single-transaction redmine > redmine_backup.$(date +%Y%m%d).sql
等としてバックアップを取っておき、
mysql -h localhost -u redmine -p redmine < redmine_backup.$(date +%Y%m%d).sql
で戻す。多くのシングル構成のDBは(つまり、個人運用程度であれば)これで復旧するパターンがほとんどです。筆者はサーバ移行や「やっちまった」時のリカバリのほとんどをこれで復旧させることができました。
これが、「手順書によるコントロール」に他なりません。
という、一種の逆順処理を取ります。筆者が紹介した手順において
を含めるのは、「何かあったときに元に戻せる」を確実にするためです。
「行ってこい」の精神であればここまではやりませんし、やる必要はありません。しかし、情報という価値あるものを「維持する」ためにも戻り道という名のPoint of Returnable(回帰可能点)を随所に作っておくための確認、照合は必要なのです。
こちらを言及した方がよりよいでしょう。
「control」が現在の「制御する」「管理する」といった意味になるまでの主な流れは以下の通りです。
この流れから、「control」のコアな概念は、記録を照合して物事を正しくチェックし、それに基づいて物事を支配・管理するという点にあることが分かります。
拙稿でも述べた「Manual」の語源が「手を動かす」から来るように、「Control」の語源は記録することにあります。
いくらバックアップがあるから安心はできるといっても、それは両翼の片方に過ぎません。このバックアップでどうやって「破滅を回避するか」というもう一つの翼を担うのが「切り戻しの手順」というお話。
この姿勢を貫くためにも、筆者は“片羽の妖精”ことラリー・フォルクのこの言葉を目につくところに掲げて自らの戒めとしています。
Those who survive a long time on the battlefield start to think they are invincible. / 不死身のエースってのは戦場に長く居たものの過信だ。
I bet you do too, buddy. / お前のことだよ相棒。
――Ace Combat Zero
筆者はサーバ運用の、ほぼすべてを手順化しています。
「なぜ、趣味の一環なのにプロのような手順を設けているのか」を疑問に持った方もいるでしょう。
これに関しての理由付けを示します。
これに尽きます。私の性格上、一度躓いた作業は二度目以降も同じところで詰まります。
「この私なら絶対にやらかす」
という、自分の信頼のなさへの信頼感があるため、
などのPoint of No Return (回帰不能点)を少しでも減らすための強力なアンカーとしてマニュアルを作成しています。
特に、障害というやつは「起きてほしくないタイミングで起きる」から障害なのですから。
そもそも「マニュアル(Manual)」とは、ラテン語の「manus(手)」という単語に由来しています。
元々は「手を使う」「主導の」と言った意味の形容詞でしたが、そこから派生して「手引き」や「取扱説明書」といった名詞の意味で使われるようになりました。
なども、すべて同じ語源から来ており、「手」に関する言葉となっています。
古代ローマ軍が規格外の強さを誇った背景には、「行動が全てであり、一定の標準的機能の遂行が勝敗を決定する」という思想があったとされています。
特に、古代ローマ軍の圧倒的な強さは「各人が優れた土木技術者であり、野営のみならず街を作ることすら可能だった」ことにも現れています。
各軍人が軍事技術だけではなく土木技術の手引き書も共有化されていたからでした。
マニュアル通りとは、漫画や小説で言う
という意味ではないと筆者は考えます。むしろ「想定外の出来事が起きたとしても標準以上の行動ができるための引き出し」として定義しています。
など、すべての人が生み出した技術は言語化される余地があります。この言語化というやつは「自分の意を伝える」「相手の意をくみ取る」の両方で必要であり、他者からのフィードバックをもらうための最高の機会となります。
失敗した部分のロギングです。
「マニュアルのどこが行けなかったのか?」を確認することで、すっ飛ばしたところや、怠った事による裏目がすべて結果となって現れます。
以下、筆者が過去に行った「Ubuntuサーバにスワップを設定する」手順です。ここで、実際にどのような点に気をつけてマニュアルを作っていったかを解説します。
### 環境
- Ubuntu 24.04
- 4GBメモリ/80GBディスクのインスタンスを利用
### さっくりとした手順
1. 現在のメモリとディスク容量を確認します。
1. Swap領域を確保します。
1. 確保したSwap領域を有効化します。
1. Swap領域が増えたことを確認します。
1. fstabを修正します。
1. fstab修正後にシステムを再起動し、Swap領域有効化を確認します。
#### 作業の前に
ディスク起動時のオプションなど、特に重要なシステム領域の設定ファイルを修正する作業です。
失敗時に復旧できるようシステム全体のバックアップを取ることを強く推奨します。
これは、先に挙げたPoint of No Return (回帰不能点)を「Point of Returnable (回帰可能点) 」とするためのおまじないです。最悪の事態を挙げておくことで、もしもの時に備えます。
#### 現在のメモリ情報を確認
- メモリ情報を確認
free -h
-hオプションは(human readable)の略だそうです
- 実行結果
total used free shared buff/cache available
Mem: 3.8Gi 450Mi 2.9Gi 2.5Mi 688Mi 3.4Gi
Swap: 0B 0B 0B
Swapが全く作成されていません。
#### 現在のディスク容量の確認
- 要領確認
df -h
- ○実行結果
Filesystem Size Used Avail Use% Mounted on
/dev/root 78G 5.0G 73G 7% /
tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs 784M 980K 783M 1% /run
tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/vda15 105M 6.1M 99M 6% /boot/efi
tmpfs 392M 12K 392M 1% /run/user/1001
容量は問題ありません。実メモリと同じ4GBの領域を作ります。
と、作業の前の確認を行います。Markdownの判定で省いていますが、
1コマンド1ブロック というルールを遵守するように筆者は心がけています。
それがたとえ、参照するための
free -h
であってもです。この、最初の一歩を確認できない場合は
sudo rm -rf ./*
などの重要で致命的なコマンドも疎かにしてしまうからです。
#### Swap領域の確保
- Swap領域作成
sudo fallocate -l 4G /swap
- ファイル作成確認
ls -ldh /swap
指定ディレクトリに4GBのファイルがあることを確認します。
#### Swapの有効化
- /swapのパーミッション変更
sudo chmod 600 /swap
- パーミッション変更確認
ls -ldh /swap
rootのみが読み書き可能なことを確認します\
#### /swapの設定
- Swap領域作成
sudo mkswap /swap
- 実行結果
スワップ空間バージョン 1 を設定します。サイズ = 4 GiB (4294963200 バイト)
ラベルはありません, UUID=08cf06da-757e-4ab4-b049-e7da8ee73341
★/swapの有効化
sudo swapon /swap
#### Swap有効化確認
- メモリ情報確認
free -h
- ○実行結果
total used free shared buff/cache available
Mem: 3.8Gi 446Mi 2.9Gi 2.5Mi 689Mi 3.4Gi
Swap: 4.0Gi 0B 4.0Gi
4GBのSwap領域が確保されました。
ここで、作業手順を一気に書きます。ここでも、一つ一つの確認を行うことで、「すっ飛ばしたときのリカバリー」を容易にしています。
#### fstab設定
- /etc/fstabのバックアップ
sudo cp -pi /etc/fstab /path/to/backup/directory/fstab.$(date +%Y%m%d)
- バックアップ作成確認
diff -u /path/to/backup/directory/fstab.$(date +%Y%m%d) /etc/fstab
差分が無いことでバックアップが取れていることを確認します。
- /etc/fstab追記
cat <<- __EOF__ | sudo tee -a /etc/fstab
/swap none swap sw 0 0
__EOF__
- 差分確認
diff -u /path/to/backup/directory/fstab.$(date +%Y%m%d) /etc/fstab
- 差分
+/swap none swap sw 0 0
ここでは、「単にスワップを作成しただけでは終わらない」というLinuxのファイルシステムに言及しています。この/etc/fstabはディスク全体を司るテキスト群。そのため、
teeによる追記と、「実際に作業を行ったか」を感覚では無くコマンドという冷静で絶対的な眼として確認します。
#### 再起動後の修正確認
- システム再起動
sudo reboot
- 再起動後の確認
以下が確認できれば作業完了です。
1. サーバにログインできること
1. Webサービスなど既存システムが設定前と同様に稼働すること
1. free -h を実行し、Swap領域が確保されていること
ここで、最終確認を行います。rebootを実施するのは、それだけシステム全体に関わる作業を行うからです。
ようやく筆者の「標準」といえる手順書が作成されました。まぁ、最初にここまでやるというのは酷な話ではあると思いますが
systemctl status apache2.service→sudo systemctl restart apache2.service程度で構いません。と、ある程度の段階を積んでいくことが、より確実な手順と言えます。
「自分で作った手順書が有効かどうか、第三者に実際に行ってもらう」手法は極めて有効です。
その手順書で失敗してしまったら → 確実に作成した自分自身の責任です。
この、言語化・共有化というのは「間違った手段も共有される可能性がある」からです。私もそうならないよう気をつけますが、
『超電磁マシーン ボルテスV』の
岡長官
「そんな杓子定規な」
左近寺博士
「杓子結構、定規賛成」
という、割とガチめの引用で以て本稿を締めくくります。
2025年10月にサポート終了を迎えたWindows 10。
巷では
などの記事を見かけたと思います。
しかしながら
程度ではビジネスユースはおろか日常の
の同時利用には「とうてい耐えられない」と言い切れる根拠。
言い換えると「絶対に越えられない壁」という奴を「リソースの消費量」という形で証明します。
それも、巷にあるベンチマークソフトを使わずに。『アカギ』で言うところの「俺はもっと ストレートに行くよ……」です。
のみです。
テキストエディタを用いて、以下のパワーシェルスクリプトを作成します。
C:\batあたりにディレクトリを掘っておくといいでしょう。
# --- ユーザー設定 ---
# ファイルサーバ上のWordファイル(UNCパス)
# サンプルとして、ファイルサーバー名、共有名、ディレクトリ名を一般的なものに変更しています。
# 実際の環境に合わせてパスを変更してください。
$FilePath = '\\YourFileServer\ShareName\SampleProject\TestDocument.docx'
# ログファイル(ローカル保存)
$LogPath = "C:\Temp\Log\word_benchmark_log.txt"
# ------------------
# --- ログ出力関数(リトライ付き) ---
function Write-Log {
param (
[string]$Message,
[string]$Color = "White"
)
# コンソール出力
Write-Host $Message -ForegroundColor $Color
# ログファイル出力(リトライ付き)
$maxRetries = 5
$retryDelay = 500 # ミリ秒
for ($i = 0; $i -lt $maxRetries; $i++) {
try {
# ログファイルのディレクトリが存在しない場合は作成
$LogDir = Split-Path -Path $LogPath -Parent
if (-not (Test-Path $LogDir)) {
New-Item -Path $LogDir -ItemType Directory | Out-Null
}
Add-Content -Path $LogPath -Value ("[{0}] {1}" -f (Get-Date -Format "yyyy-MM-dd HH:mm:ss"), $Message)
break
} catch {
Write-Host "WARN: ログ書き込みに失敗しました。リトライ中... ($i/$maxRetries)" -ForegroundColor "DarkYellow"
Start-Sleep -Milliseconds $retryDelay
}
}
}
# --- 初期化 ---
# ログファイルをクリア
Clear-Content -Path $LogPath -ErrorAction SilentlyContinue
Write-Log -Message "--- Word(UNCパス指定)ベンチマークテスト ---" -Color "Yellow"
# --- ファイル存在確認 ---
if (-not (Test-Path $FilePath)) {
Write-Log -Message "エラー: 指定されたファイルが見つかりません。パスを確認してください: $FilePath" -Color "Red"
return
}
# --- 既存のWordプロセスを終了 ---
Write-Log -Message "INFO: 既存のWordプロセスをクリーンアップします..." -Color "White"
Get-Process winword -ErrorAction SilentlyContinue | Stop-Process -Force
Start-Sleep -Seconds 2
# --- 変数初期化 ---
$wordApp = $null
$document = $null
$TimeTaken = $null
$ProcInfo = $null
# COMメソッドの省略可能な引数に使用する値
$Missing = [System.Reflection.Missing]::Value
try {
# 1. Word起動とファイルオープンの時間を計測
Write-Log -Message "1. Wordの起動とファイルオープンを計測中..." -Color "White"
$TimeTaken = Measure-Command {
# Wordアプリケーションのインスタンスを作成
$wordApp = New-Object -ComObject "Word.Application"
# ファイルを開く (引数: FilePath, ConfirmConversions, ReadOnly, AddToRecentFiles, PasswordDocument, PasswordTemplate, Revert, WritePassword, Format, Encoding, Visible)
$document = $wordApp.Documents.Open(
$FilePath,
$false, # ConfirmConversions
$false, # ReadOnly
$false, # AddToRecentFiles
$Missing, # PasswordDocument
$Missing, # PasswordTemplate
$false, # Revert
$Missing, # WritePassword
$Missing, # Format
$Missing, # Encoding
$false # Visible (False: 開いた直後は非表示)
)
}
# Wordを可視化し、プロセスが完全に立ち上がるのを待つ
$wordApp.Visible = $true
Start-Sleep -Seconds 2
$StartTimeSec = [math]::Round($TimeTaken.TotalSeconds, 2)
Write-Log -Message " [結果] 起動&ファイルオープン時間: $StartTimeSec 秒" -Color "Green"
# 2. リソース使用量の計測
Write-Log -Message "2. リソース使用量を計測中..." -Color "White"
Start-Sleep -Seconds 3 # リソースが安定するのを待つ
$ProcInfo = Get-Process winword -ErrorAction SilentlyContinue
if ($ProcInfo) {
# 複数のwinwordプロセスがある場合の合計を計測
$TotalMemMB = [math]::Round( ($ProcInfo | Measure-Object -Property WS -Sum).Sum / 1MB, 2)
$TotalCpuSec = ($ProcInfo | Measure-Object -Property CPU -Sum).Sum
if ($TotalCpuSec -eq $null) { $TotalCpuSec = 0 }
$TotalCpuSec = [math]::Round($TotalCpuSec, 2)
Write-Log -Message " [結果] メモリ使用量 (WS 合計): $TotalMemMB MB" -Color "Green"
Write-Log -Message " [結果] CPU使用時間 (Total 合計): $TotalCpuSec 秒" -Color "Green"
} else {
Write-Log -Message " [警告] Wordプロセスが見つかりませんでした。" -Color "Yellow"
}
} catch {
Write-Log -Message "致命的なエラーが発生しました: $($_.Exception.Message)" -Color "Red"
# エラーの詳細ログ
Write-Log -Message "エラー詳細: $($_.ScriptStackTrace)" -Color "Red"
} finally {
# 3. クリーンアップ
Write-Log -Message "3. クリーンアップを実行します。" -Color "White"
if ($document -ne $null) {
# 変更を保存せずに閉じる
try {
$document.Close($false)
[System.Runtime.InteropServices.Marshal]::ReleaseComObject($document) | Out-Null
} catch {
Write-Log -Message "WARN: Document COMオブジェクトのクリーンアップ中にエラー: $($_.Exception.Message)" -Color "DarkYellow"
}
}
if ($wordApp -ne $null) {
try {
$wordApp.Quit()
[System.Runtime.InteropServices.Marshal]::ReleaseComObject($wordApp) | Out-Null
} catch {
Write-Log -Message "WARN: Application COMオブジェクトのクリーンアップ中にエラー: $($_.Exception.Message)" -Color "DarkYellow"
}
}
# 変数の解放
Remove-Variable wordApp, document, ProcInfo, TimeTaken -ErrorAction SilentlyContinue
# 残っているWordプロセスを強制終了
$remaining = Get-Process winword -ErrorAction SilentlyContinue
if ($remaining) {
Write-Log -Message "INFO: 残留Wordプロセスを強制終了しました。" -Color "White"
$remaining | Stop-Process -Force
}
Write-Log -Message "--- テスト完了 ---" -Color "Yellow"
}
開きたいファイルを正確に指定し、文字コードをUTF-8(BOMつき)で保存します。
まず、Windows Powershellを開きます。(管理者権限である必要はありません)
次に、スクリプトに一時的な実行権を与えます。(デフォルトでは自作のスクリプトの実行権が与えられていないため)
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
そうした上で、
& "C:\script\benchmark_word.ps1"
を実行。
結果は以下の通りです。
--- Word(UNCパス指定)ベンチマークテスト ---
INFO: 既存のWordプロセスをクリーンアップします...
1. Wordの起動とファイルオープンを計測中...
[結果] 起動&ファイルオープン時間: 1.36 秒
2. リソース使用量を計測中...
[結果] メモリ使用量 (WS 合計): 289.7 MB
[結果] CPU使用時間 (Total 合計): 4.44 秒
3. クリーンアップを実行します。
INFO: 残留Wordプロセスを強制終了しました。
と、300MB近くの使用量がありました。数MB程度の文書を開く際でも、ワードのようなモダンアプリケーションはメモリもCPUもそれなりに使うことが判明。
続いて、ブラウザの場合はどうなるでしょうか? 先ほどのフォルダに
benchmark_chrome.ps1
を作成します。
# --- ユーザー設定 ---
# ログファイル(ローカル保存)
$LogPath = "C:\Temp\Log\chrome_benchmark_log.txt"
# Chromeの実行ファイルパス (通常はこのままでOK)
$ChromePath = "C:\Program Files\Google\Chrome\Application\chrome.exe"
# 検索するURLとクエリ
$InitialUrl = "https://www.google.com/search?q=wikipedia"
# ------------------
# --- ログ出力関数(リトライ付き) ---
# (前回のスクリプトから変更なし)
function Write-Log {
param (
[string]$Message,
[string]$Color = "White"
)
Write-Host $Message -ForegroundColor $Color
$maxRetries = 5
$retryDelay = 500 # ミリ秒
for ($i = 0; $i -lt $maxRetries; $i++) {
try {
$LogDir = Split-Path -Path $LogPath -Parent
if (-not (Test-Path $LogDir)) {
New-Item -Path $LogDir -ItemType Directory | Out-Null
}
Add-Content -Path $LogPath -Value ("[{0}] {1}" -f (Get-Date -Format "yyyy-MM-dd HH:mm:ss"), $Message)
break
} catch {
Write-Host "WARN: ログ書き込みに失敗しました。リトライ中... ($i/$maxRetries)" -ForegroundColor "DarkYellow"
Start-Sleep -Milliseconds $retryDelay
}
}
}
# --- 初期化 ---
Clear-Content -Path $LogPath -ErrorAction SilentlyContinue
Write-Log -Message "--- Chrome Webアクセス・ベンチマークテスト ---" -Color "Yellow"
# --- 実行ファイル存在確認 ---
if (-not (Test-Path $ChromePath)) {
Write-Log -Message "エラー: Chrome実行ファイルが見つかりません。パスを確認してください: $ChromePath" -Color "Red"
return
}
# --- 既存のChromeプロセスを終了 ---
Write-Log -Message "INFO: 既存のChromeプロセスをクリーンアップします..." -Color "White"
Get-Process chrome -ErrorAction SilentlyContinue | Stop-Process -Force
Start-Sleep -Seconds 2
# --- 変数初期化 ---
$TimeTaken = $null
$ProcInfo = $null
try {
# 1. Chrome起動、Google検索、Wikipedia移動の時間を計測
Write-Log -Message "1. Chrome起動からWikipedia表示までの時間を計測中..." -Color "White"
# ストップウォッチを開始
$Stopwatch = [System.Diagnostics.Stopwatch]::StartNew()
# Chromeを起動し、Google検索URLへ移動
# -Wait: プロセスが終了するまで待機(この場合はタブを閉じるまで待機してしまうため使用しない)
$Proc = Start-Process -FilePath $ChromePath -ArgumentList $InitialUrl -PassThru
# プロセスが完全に立ち上がり、ページがロードされるのを待機
# ページの完全なロード完了を正確に捕捉するのは困難なため、ここでは固定の待機時間を使用します。
Start-Sleep -Seconds 5
# ストップウォッチを停止
$Stopwatch.Stop()
$TimeTaken = $Stopwatch.Elapsed
$StartTimeSec = [math]::Round($TimeTaken.TotalSeconds, 2)
Write-Log -Message " [結果] 起動&Webアクセス時間: $StartTimeSec 秒" -Color "Green"
# 2. リソース使用量の計測
Write-Log -Message "2. リソース使用量を計測中..." -Color "White"
Start-Sleep -Seconds 3 # リソースが安定するのを待つ
# Chromeは複数プロセスで実行されるため、全てを対象とする
$ProcInfo = Get-Process chrome -ErrorAction SilentlyContinue
if ($ProcInfo) {
# 複数のchromeプロセスの合計を計測
$TotalMemMB = [math]::Round( ($ProcInfo | Measure-Object -Property WS -Sum).Sum / 1MB, 2)
$TotalCpuSec = ($ProcInfo | Measure-Object -Property CPU -Sum).Sum
if ($TotalCpuSec -eq $null) { $TotalCpuSec = 0 }
$TotalCpuSec = [math]::Round($TotalCpuSec, 2)
Write-Log -Message " [結果] メモリ使用量 (WS 合計): $TotalMemMB MB" -Color "Green"
Write-Log -Message " [結果] CPU使用時間 (Total 合計): $TotalCpuSec 秒" -Color "Green"
} else {
Write-Log -Message " [警告] Chromeプロセスが見つかりませんでした。" -Color "Yellow"
}
} catch {
Write-Log -Message "致命的なエラーが発生しました: $($_.Exception.Message)" -Color "Red"
Write-Log -Message "エラー詳細: $($_.ScriptStackTrace)" -Color "Red"
} finally {
# 3. クリーンアップ
Write-Log -Message "3. クリーンアップを実行します。" -Color "White"
# 確実にChromeプロセスを終了
$remaining = Get-Process chrome -ErrorAction SilentlyContinue
if ($remaining) {
Write-Log -Message "INFO: 残留Chromeプロセスを強制終了しました。" -Color "White"
$remaining | Stop-Process -Force
}
Write-Log -Message "--- テスト完了 ---" -Color "Yellow"
}
まず、Windows Powershellを開きます。(管理者権限である必要はありません)
次に、スクリプトに一時的な実行権を与えます。(デフォルトでは自作のスクリプトの実行権が与えられていないため)
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
そうした上で、
& "C:\script\benchmark_chrome.ps1"
を実行。以下の驚くべき結果が出ました。
--- Chrome Webアクセス・ベンチマークテスト ---
INFO: 既存のChromeプロセスをクリーンアップします...
1. Chrome起動からWikipedia表示までの時間を計測中...
[結果] 起動&Webアクセス時間: 5.03 秒
2. リソース使用量を計測中...
[結果] メモリ使用量 (WS 合計): 1413.37 MB
[結果] CPU使用時間 (Total 合計): 17.97 秒
3. クリーンアップを実行します。
INFO: 残留Chromeプロセスを強制終了しました。
--- テスト完了 ---
なんと、メモリは1.4GB利用。単にWikipediaを計算しただけです。
補足しておくと、この検証に使用した筆者の環境は
と、ビジネスユースにしては「化け物」なスペックであってもです。
という現代の環境において、以下のポイントが、「ネット閲覧程度であれば云々」の神話を打ち破る主要な論拠となります。
Chrome(および他のモダンブラウザ)が採用しているマルチプロセスアーキテクチャが、メモリ消費量の最大の原因です。
結果として、たった1つのタブを開いているだけでも、タスクマネージャー上では10〜30個のchrome.exeプロセスが立ち上がり、ベンチマーク結果のように、それらの合計で1GBを優に超えるメモリを消費します。
そして、現在のWebサイトは、単純なテキストや画像で構成されていません。
| アプリケーション | 目的 | メモリ消費量 (WS 合計例) |
|---|---|---|
| Word (COM操作/UNCファイル) | 文書作成(重量級ローカルアプリ) | 約 290 MB |
| Chrome (Google検索 → Wikipedia) | ウェブ閲覧(単一タブ) | 約 1,413 MB |
この対比から、現代の「ウェブ閲覧」が、伝統的なローカルの重量級アプリケーションよりも、起動直後で約5倍近いメモリリソースを要求することが明確に示されます。
ここに、
が加わるとなると、古い、低スペックのハードウェアをLinuxに変えた「程度」では、付け焼き刃にすらなりません。
したがって、「ネット閲覧程度」の利用を想定してPCのスペックを決める場合、最低でも16GBのメモリを搭載しないと、動作が非常に緩慢になるリスクが高いという結論になります。
なぜなら、2025年現在、通常のインターネット環境でのビジネスや学習というのは「ブラウザのタブ多重起動」を前提に作られているのですから。
ジェレミー・クラークソン(旧TopGearやGrandTour司会者)の
Power is EVERYTHING. More is better.
( パワーはすべてを解決する。気筒数は多ければ多いほどいい)
や
A horsepower, A horsepower!
Horsepower for my kingdom!
「馬力だ! 馬力の代わりに我が王国をやるぞ!」
は、こと、PCのリソース割当については「反論の余地がない真である」という結論で本稿を締めくくります。
Powered by WordPress & Theme by Anders Norén