DLLファイルとは何か、中身はどうなっているのか〜作り方・使い方まで実際に確かめた〜
DLLファイルとは何か、中身はどうなっているのかを実際に作って確かめた記録。DLLの中身は外から呼べる関数の名簿で、C・C++・Rust・C#で作って両OSで覗きました。C++とRustの同居も可能ですが、公開する関数を明示しないときの壊れ方はOSで正反対です。作り方4通り・使い方3通り・DLLが無いときのエラー処理まで
プログラミングや3DCGで何か作りたいと思っているエンジニアがいます
DLLファイルとは何か、中身はどうなっているのかを実際に作って確かめた記録。DLLの中身は外から呼べる関数の名簿で、C・C++・Rust・C#で作って両OSで覗きました。C++とRustの同居も可能ですが、公開する関数を明示しないときの壊れ方はOSで正反対です。作り方4通り・使い方3通り・DLLが無いときのエラー処理まで
.dylib とは何か、.so や .dll と何が違うのかを実際に作って確かめた記録。違いの軸は「いつ名前が解決されるか」の1つだけで、拡張子そのものは何も決めていません。静的リンクはオブジェクトファイル単位で取り込むため、呼んでいない関数まで付いてきます
FlutterからネイティブへC++で架けた橋を、そのままRustで架け替えて比べました。生のC ABIならRust 0.0089µs・C++ 0.0091µsで一致し、橋の材質は速度に関係ないと分かります。一方 flutter_rust_bridge は既定で1,442倍。さらにWindowsでは「渡った先が支配的」という前提が崩れ、Smart App Controlに阻まれてビルドすらできませんでした。
Cyclesを速くする11の設定を1つずつ足して、「何倍速くなったか」と「絵がどれだけ変わったか」を同時に測りました。絵をほぼ変えずに速くなったのは「ノイズ除去をGPUで走らせる」と「アダプティブのしきい値を緩める」の2つだけで、この2つだけで屋内1.71倍・屋外2.85倍になります。Fast GIは1.89倍速いが絵のズレが+52、タイル分割はむしろ遅い、ライトツリーは5000灯でも逆転しない、OptiXとCUDAの差は1.19倍——さらに「絵は変わらない」を画素単位で確かめ、差が反射・屈折の面に集中していることまで追いました。
BlenderのEEVEEとCyclesを、自作の屋内シーンとp973の街の2つで焼き比べました。Cyclesの高サンプルを「正解」に置いてズレを数値化したところ、EEVEEはサンプルを1から256に増やしてもズレが64.8→64.8とまったく動かず、Cyclesだけが40.9→4.5と下がりました。さらにノイズ除去を入れたCyclesは8サンプル・3.59秒でズレ2.8に到達します。ライトプローブの大きさとベイク時間の逆説、初回だけ15秒かかるシェーダキャッシュの正体まで、Blender 5.2 LTS・RTX 3060の実測で確かめた記録です。
組み込み開発でRustはどこまで実用になったのかを、①書けるか ②安全認証を通せるか ③現場が乗り換えるか の3層に分けて整理しました。Cortex-M3向けに「素のベアメタル」「cortex-m-rt」「Embassy」の3つの書き方で同じプログラムを作り、QEMUで動かして実測。短く書けるほど焼かれるサイズが大きくなる関係や、Ferroceneの認証、AUTOSAR互換RTOSが無い問題まで、目的別の判断表にまとめています。
MediaPipeで mp.solutions が使えなくなったときの直し方。0.10.31での削除と同梱モデル22個→0個の変更、Tasks APIへの書き換え手順、face_landmarker.task などモデルの入手先、.task の中身まで実測つきで解説
BlenderのGeometry Nodesで作った街に、道路の実体・地面の高低差・建物4種の作り分けを段階的に足しながら、そのたびに「ノードの再計算」と「ビューポート描画」を分けて実測しました。面数が減ったのに描画が2.3倍になった話、Raycastの重さが隣のノードに計上される話、実体化すると描画は10倍速いのに再計算は3.6倍になる話まで、480m四方・78,809個の街で確かめた記録です。
Blender 5.2 LTSの新機能をRTX 3060で実際に触りました。ノードベース物理で板が布になる様子、Cyclesのテクスチャキャッシュでメモリが70.6%減った実測、Mesh BevelとThin Wallのbefore/afterまで画像つきで。1か月前に調べただけで書いた予測記事の答え合わせでもあります。
互換レイヤーを使わず、Mac版Steamだけでどこまで遊べるのかを実測しました。ネイティブかRosettaかを見分ける手順と、同じゲームがSteam経由だとRosettaで動き、直接起動するとネイティブで動くという結果まで。CPU時間は1.44倍でした。
Whiskyの開発が終わったあと、Macで何を入れ直せばいいのかを実測でまとめました。移行先ごとの導入容量と所要時間、22GBのボトルのうち持ち出す価値があるのは2.7MBだけだったこと、そして同じWarframeがWine 11.14では起動すらしないのに11.13では動くという結果まで。