Synology NASとCMRなHDDとSMRなHDDの比較

データ保存の為のNASを新調した結果、色々とあったのでちょっと書いておきます
218jで試したけど、試してる間に220j出たよ

結論

  • アプリ入れるならCMRなHDDを入れた方が良い

アプリ一切入れないならSMRでも良いかも。でもSynology NAS使う理由もなくなる。

比較方法

  • DS218jにHDDを入れて、各HDD毎に共有フォルダを切る
    • SMR:SeagateのST4000DM004
    • CMR:WDのWD40EZRZ
  • 1回目:初期状態で何もアプリを入れずにベンチマーク
  • 2回目:WDにSynology Driveと依存ソフトをインストールしてベンチマーク
  • 3回目:STにSynology Driveと依存ソフトをインストールしてベンチマーク

アプリケーション追加なし

WD40EZRZの方。特に変な場所は無し
ST4000DM004の方。こちらも問題なし。
これだけ見れば、安くて高性能なHDDです。

WD40EZRZにSynology Driveをインストールする

アプリはインストール先が選べるので、両方試す
今回はWD40EZRZが不利です

不利なはずのWD40EZRZの結果。有利なST4000M004と同じ結果を出している。 こちらはST4000M004。有利なハズだが劣化がひどい。
体感速度の劣化はもっと酷く、ベンチマークは終わる気がしない。

ST4000M004にSynology Driveをインストールする

今度はST4000M004が不利なパターン
もしアプリインストール先の影響がなければ、同じ結果になるはず

まずWD40EZRZ。Synology Driveインストールし忘れたか不安になる結果 そして今回の主役、ST4000DM004の結果
壊れたかと思うくらい遅い

おまけ

その他、気づいた点
どれもこれもST4000DM004に対して良くない印象を得る

CMRなWD40EZRZにSynology Driveをインストール
WD40EZRZのベンチマーク後に、ST4000DM004のベンチした結果
見ての通り、ST4000DM004はI/O待ちが酷すぎてCPUが遊んでいるし、HDDも余裕なWDに対して必死感が伝わってくる。

SMRなST4000DM004にSynology Driveをインストール
WD40EZRZのベンチマーク後に、ST4000DM004のベンチをした結果
ベンチが終わった直後に、謎の負荷が跳ね上がっている。SMRをDBとして使った結果だろうか?
HDDの方は分かりやすい。DBとして使っているだけなのにST4000DM004の必死感が伝わってくる

おまけのおまけ

STのベンチマーク直後の結果はどうなっていると思う?
わかるだろうか、通信はもう終わっている(右下見て)
なのにST4000DM004は負荷がかかったまま帰ってこない
Synology DriveをWDにインストールしようがSTにインストールしようが変わらなかった
この状態、結構長く続くので高頻度で注意。今回のベンチだと1時間くらい維持した気がする(計ってないので体感です)

DirectX SDK インストール S1023対処

古い本が出てきたので弄っていたら、SDK(DXSDK_Jun10.exe)がインストールできない
エラーコードはS1023
文字がバグっていて不安になる

原因

  • SDKより新しい再配布可能パッケージが環境にインストールされている

インストールできた手順

  1. Microsoft Visual C++ 2010 x64 Redistributable を削除
  2. Microsoft Visual C++ 2010 x86 Redistributable を削除
  3. 以下からSDKインストーラを取得
    https://www.microsoft.com/en-us/download/details.aspx?id=6812
  4. 普通にインストール

インストール後は再配布可能パッケージが古くなっているので、必要なら(必要なので入っているのでほぼ必須)再度最新にしておく。

透過pngつなげる2

以前は横にしか繋がらなかったが、縦にもつながるように改善
あと投げた画像を開いたままつかんでいた不具合を修正

縦と横の切り替えはモード切替にしようかと思ったけど、使用時に手間だと思ったので単純にフィールドを区切りました

dlページ
https://nekomatagi.com/works/pngtunageru.html

三角形が表示できた、と思ったら違った

サンプルだけど、三角形が表示できた。
ということで、ソースコード眺めてた。

最初に言わせてほしい、Vulkan滅茶苦茶やる事多い

とりあえず表示できた三角形を載せてみます。

ここから本題。
ソースコードをいくら眺めても頂点情報や色情報を明記した場所が見当たらない。セマフォだとか新しい物はいろいろ知れて理解は幸せなのだが、なぜ三角形が表示されているのかわからない。

答え
そういえばシェーダで宣言してた

結論
事実上、まだ三角形表示できてない

GLSLからSPIR-Vファイルにする

SPIR-Vファイルとは、VulkanにおけるGLSLのシェーダファイルらしい
ただし、SPIR-Vファイルはバイナリファイルなので、直接作成できない

SPIR-Vファイルを得るためには、GLSLからの変換する方法があるとのこと
コマンドは以下の通り

glslangValidator -V 入力シェーダ名 -o 出力シェーダ名

glslangValidator自体はGLSLのチェック用スクリプトらしい。Vオプションで、これをSPIR-Vに変換できる。ただ出力ファイル名を指定しないと生成されなかったのでそっちも追加

ちなみに、最初は直接GLSLファイルを食べさせて食中毒起こしてました。サンプルファイルにGLSLファイルしか置いてなかったらそう思い込むよね・・・

std::optionalを使えるようにする

Visual Studio C++でstd::optionalが使えなかった
解決策は、ISO C++17の標準仕様を設定すれば良い

設定箇所

VS C++は標準への対応が遅いとか聞くけど、一応は設定できました。でも初期設定じゃないって事は何かありそう・・・
std::optionalに限らず、動くはずの物が動かなかったら、それがいつ追加された機能なのか確認するといいかも

Vulkanとか

とりあえずサンプルがコンパイル通るまで

  1. VulkanのSDKインストール
    https://vulkan.lunarg.com/home/welcome
    この辺からSDKダウンロードしてインストールする。exe形式なので実行するだけ
    デフォルトで C:\VulkanSDK 以下に配置されました
  2. GLFWの用意
    サンプルがGLFW使ってるので用意
    今回は割愛
  3. パス通す
    Visual Studio 2019からIncludeファイルのディレクトリとLibへのパスを通す
    一般的なことなので省略
  4. 追加のライブラリを設定
    3に続いて依存するライブラリを設定する
    一般的なことなので省略
  5. サンプルをビルドする
    サンプル取得元:https://vulkan-tutorial.com/
    サンプルのGitHub:https://github.com/Overv/VulkanTutorial
    上記設定が通ってれば普通にビルドできました

ビルドした結果
これだけだと何なのか分からない上に、本当にVulkan使ってるのかわからないですね。