1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ポータブルデバイスの違いによるパフォーマンスの差

Last updated at Posted at 2019-03-05

ポータブルデバイスの違いによるパフォーマンスの差

【ぜんぶポータブル】ポータル

最終更新:2019年3月5日

注:『速度』は使用環境によって大きく異なります。参考程度にご覧ください。

ポータブル環境を持ち運ぶにあたって、じゃぁポータブルデバイスは何がいいんだろうと考えれば絶対に外付けSSDだろう、と思うわけなんです。

でも、「ポータブル環境のためだけにSSDというのもなぁ… もっと安いデバイスでいいんじゃない?」という気持ちもある、僕もそうしたい。

そこで、このドキュメントでは、外付けSSD以外のデバイスにどれだけ夢を見られるか、職場のデスクトップPC(H87 Express+Core i7 4770K)を利用して、CrystalDiskMarkしてみました。
いちいちキャプチャ画像を貼るのもアレなので、適度にテーブルに書き直しました。

結論だけ見たい方はこちらでスキップ

内蔵

内蔵Cドライブ Seagate ST2000DM001(2TB/STAT600/7200rpm)+ Intel Smart Response Technology

まずは内蔵。
image.png
今年リース切れのマシンですから、まぁこんなもんです…

これが、システム制御実習室のSSDマシンだとこう

Read [MB/s] Write [MB/s]
Seq Q32T1 523.4 448.7
4KiB Q8T8 172.4 265.5
4KiB Q32T1 167.3 149.6
4KiB Q1T1 15.81 76.81

嫁の液タブだと
2019-03-02.png
わかっちゃいるけど異次元

外付けHDD

外付けHDD Elecom(Seagate) SGP-NZ020UBK USB3.0ポート vs USB2.0ポート

USB3.0接続 Read [MB/s] Write [MB/s] USB2.0接続 Read [MB/s] Write [MB/s]
Seq Q32T1 128.8 128.8 Seq Q32T1 40.11 36.20
4KiB Q8T8 0.624 1.544 4KiB Q8T8 0.628 1.585
4KiB Q32T1 0.624 1.576 4KiB Q32T1 0.629 1.561
4KiB Q1T1 0.543 1.585 4KiB Q1T1 0.527 1.549

去年買ったやつです。キャッシュがうまく効きやすいせいか、4KiB時の書き込みがえらい速いです。内蔵より速くてショック。

480Mbpsという制約上、USB2.0接続時には40MB/sぐらいでインターフェイス的な頭打ちとなります。ただ、ポータブル環境では小さいファイルを大量に扱うので、シーケンシャル読み書き性能は参考程度という感じです。

外付けHDD TOSHIBA HD-AA10TK USB3.0ポート vs USB2.0ポート

USB3.0接続 Read [MB/s] Write [MB/s] USB2.0接続 Read [MB/s] Write [MB/s]
Seq Q32T1 62.45 57.90 Seq Q32T1 43.93 44.75
4KiB Q8T8 0.540 0.266 4KiB Q8T8 0.549 0.269
4KiB Q32T1 0.551 0.269 4KiB Q32T1 0.546 0.272
4KiB Q1T1 0.484 0.271 4KiB Q1T1 0.488 0.273

かなり前からMac外付けで使っているHDDです。仕様が古いせいか今一つUSB3.0のメリットを活かせていません。性能差があるようで、小さいファイル読み込み性能的にはあまり変わらなさそうです。ただ、大規模ビルドでは大差がつきそう。

USBメモリ16GB

価格順

USB2.0で試すぶん時間の無駄なので、USB2.0デバイスもUSB3.0接続でしか試していません。

image.png
某ディスカウントショップで購入。0.000ェ…

下の二つは異なる家電量販店の安売りカゴから購入した、異なる日本メーカーの製品。
まぁだいたいこの辺りがUSB2.0を謳うUSBメモリの標準的な性能って感じでしょうね。

メモリB Read [MB/s] Write [MB/s] メモリC Read [MB/s] Write [MB/s]
Seq Q32T1 18.80 11.51 Seq Q32T1 18.85 8.153
4KiB Q8T8 4.002 0.001 4KiB Q8T8 3.818 0.001
4KiB Q32T1 3.979 0.000 4KiB Q32T1 3.764 0.001
4KiB Q1T1 3.454 0.004 4KiB Q1T1 3.340 0.005

見せてもらおうか、値段が2倍の性能とやらを

使ったのは、Sony ポケットビット USM16W3Bです。コネクタカバーはありませんが筐体全面ヒートシンク感満載です。
ガワなんて飾りです、冷えるのが正義です。
パッケージでUSB3.1Gen1対応の読み込み最大160MB/sを謳っています。
ほんとにそんな速度出るの?
image.png
おぉSonyよ、お前はSuzukiか?
ランダムリードで3倍速いじゃないか、よし、もう安物を買うのはやめたぞ。

SDHCカード

MicroSDHCカード 8GB UHS-I Class10 最大読み込み30MB/s

とりあえず手元にあった、かなり以前にラズパイ向けに購入したやつ。
image.png
少なくとも安物のUSBメモリを使うよりはいい。特筆すべきは、爆速タイプUSBメモリよりも4KiB書き込み性能が良いこと。リードはアレだけど、バランスとしてはSDカードの方がいいのかな。

MicroSDHCカード SanDisk 16GB UHS-I Class4 SDSDQ-016G-J35U

さて次はこの間安く買い増したClass4のカード…
image.png
ファッ!?

MicroSDHCカード SanDisk Ultra 16GB UHS-I Class10

image.png
大差ない。うーんなるほど、もしかすると良い個体を引いた可能性はあるかもなのだけれど、SDスピードクラスってのは最低保証なので、それ以上速くちゃいけないということはない。製造コストなど大人の事情が色々絡んできているのかもしれません、転送速度非公開だし。
また、よくよく見るといずれのカードもUHS-Iインタフェースを示す「I」マークはついているけど、UHSスピードクラスを表す「Uに1」マークはついていない。
今調べたら、このSanDisk 新無印Class4カードよりも、SanDisk Ultraの方がAmazon調べの実売価格が安いんですよね。

そんな訳で、外付けHDDはそれなりの値段がする割にはそれほどランダムアクセスのパフォーマンスが良いわけではなく、USBメモリは爆速モデルでも書き込み速度に難があるので、次善の策としては、そこそこ速いSDカードを、USB3.0以上接続のリーダーで使うのがよいのかなぁ…と思ったり。安い物だと2,000円ぐらいで揃います、持ってないけど。

でもね。

そこに2,000円ぐらいかけるなら、2019年2月現在だと、外付けSSDでも、例えばこんな素敵なものもあるんですよ。

Elecom ESD-EC0120G

TLCフラッシュ搭載、~~ってのはカッコいいのかバカ正直なだけなのかよく判りませんが、~~定価が税込8,294円ということで、某家電量販店で6,000円、某通販サイトで5,290円(2019年2月現在)。
ここまでスタイリッシュじゃなくても120GBだと他メーカーの商品でも実売は5,000円切ってます。SDカードやUSBメモリに2,000円かけるぐらいならいっそ…

「やーでもそこまで3倍ぐらいかけても3倍速くないかもしれない!」 ですよね、なので、ポチってみました。
image.png

なんかもうこのドキュメントのためにかけた時間がもったいないレベル。

ベンチマークまとめ

そんな訳で、ポータブル環境で物を言う小さいファイルでのランダムアクセス性能に関して、ざっくりとした今回の検証でのポータブルデバイス性能比をまとめます。

C無/有=キャッシュ無し/有り  2.0/3.0=USB2.0/3.x  SDHCのI/FはUSB2.0

HDD C無 HDD C有 メモリ 2.0 メモリ 3.x SDHC SSD
リード 1 1 8 26 12 190
ライト 1 6 0.004 0.024 8 368

もう3倍とか10倍とかそういうレベルじゃないのです。

起動時間実測編

とはいえ、ですよ。世の中そんなにうまい話はない、色々なボトルネックやらキャッシュやらがあるので、SSDを使ったらHDDより実測で数百倍速くなる、なーんてことはありそうにないです。

そんな訳で、マシン再起動直後のディスクキャッシュされていない状態で、ポータブル環境フォルダに格納されたVisual Studio Code一発目の起動が何秒かかるかを比較してみました。

起動は、ワークベンチの表示だけではなく、ExtensionHostまで起動するのを待っています。ここのループに1秒ウェイトを入れているので、その分誤差が出ていると思ってください。それぞれマシンを再起動した後に、タスクマネージャのパフォーマンス表示で起動プロセスが落ち着くのを待って計測しています。インストールされている拡張機能は5個です。

**SDHCカードだけUSB2.0接続なので、ちょっとかわいそうですが、**結果はこちら。

使用PC 外付けHDD 爆速USBメモリ microSDHC 外付けSSD
リース切れ寸前 15秒42 8秒20 18秒79 6秒72

爆速USBメモリが意地を見せました。
ちなみにUSB2.0メモリは3分45秒75、2回目起動でも36秒44で論外。
内蔵HDDは2回目起動と同じ環境なので比較はできないですが7秒01、誤差の範囲内とはいえ外付けSSDの方が速い結果に…。

ファイルコピー実測編

これがネックなんですよね、ポータブル環境フォルダを丸ごと書き込んでみました。

テストデータ
ディレクトリ数 5,673
ファイル数 39,479
総容量(MB) 2,828

構築途中なのでファイル数はかなり少なめです、npmしだすとヒドいことになりますからね。
使ったコマンドはこちら。

Windowsコマンド
robocopy  /mir /fft jtHiuPortable D:\jtHiuPortable

結果です。「リース切れ寸前」は対内蔵HDD、「嫁液タブ」は対内蔵SSDです。

使用PC 外付けHDD 爆速USBメモリ microSDHC 外付けSSD
リース切れ寸前 27分05秒 45分24秒 36分11秒 14分32秒
嫁液タブ - 42分06秒 30分41秒 3分25秒

もうSSD以外買わない。

ちなみにUSB2.0メモリは1時間11分21秒です、ほんとうに長い間ありがとうございました。

読み込みのボトルネックで、HDD→SSDはSSD→SSDの4倍ちょっとかかっています。
SSD以外のデバイスでは書き込みのボトルネックが圧倒的なので、それほど強烈な環境の差は出ませんでした。

一度コピーした後の同期は、基本的にディレクトリ領域だけを読み込むので、全環境で30秒程度と差は出ません。こちらはCPUやメモリといったPC性能に大きく依存します。
常用時には1分ちょっとというところです。

結論

  • USB2.0接続の安いUSBメモリ ... ポータブル環境では使わない方がいい。
  • 外付けHDD ... 性能はそれなりだけど、値段を考えると選ぶ理由が見つからない。
  • SDHCカード ... カードリーダーに左右されそうだがコスパ的に悪くない。
  • 爆速USBメモリ ... 読み込みはSSDに匹敵。ただ、create-react-appとか間違っても叩きたくない。

そんな訳で、確かに少々値は張るのですが、
【ぜんぶポータブル】では、外付けSSDをオススメします。

1
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?