202556時点のまとめ » 履歴 » リビジョン 13
リビジョン 12 (開発 次郎, 2025/05/06 09:58) → リビジョン 13/14 (開発 次郎, 2025/05/06 10:28)
h1. 2025/5/6時点のまとめ h2. 結果まとめ # cpp_bin_float_100型とlong double型ではどれくらいの処理時間差があるのか? ** (結果)2~4桁は違う(1/50~1/2000) # MSYS2/MinGW64環境でパッケージはビルドできるのか? ** GCC 4.8.5 *** (答え)4.8.2が最も古いのでPKGBUILDは不可。ただしSOURCEFORGE/x86_64-4.8.5-release-win32-sjlj-rt_v4-rev0.7zが使えるが、他のパッケージとの整合が取れなくなるかもしれない ** boost *** (答え)mingw64/mingw-w64-x86_64-boost があるからパッケージ化できるはず。ただし最古のバージョンは1_55_0 があるからパッケージ化できるはず。PKGBUILDがある場合 ** log4cpp *** (答え)ucrt64/mingw-w64-ucrt-x86_64-log4cpp があるからパッケージ化はできた。がMinGWバイナリを作れるかはこれから調査 ** PROJ4 *** (答え)mingw64/mingw-w64-x86_64-proj があるからパッケージ化できるはず。PKGBUILDがある場合 h2. 詳細 h3. cpp_bin_float_100型とlong double型 処理速度比較 * MSYS/MinGW(Windows) ** 比較表(単位はCPUクロック・カウント) |項目|double|long double|cpp_bin_float_100|cpp_bin_float_100/long double| |変数サイズ|8|16|80|| |sin|284|274|613004|2237| |cos|268|284|563428|1984| |tan|224|292|612512|2098| |pow|232|310|15891|51| |sqrt|190|184|148743|808| |サンプル|2355|4438|3526710|795| * CentOS 7(WSL) ** 比較表(単位はn秒) |項目|double|long double|cpp_bin_float_100| |変数サイズ|8|16|80| |sin|100|100|91000| |cos|100|100|92500| |tan|100|100|185500| |pow|0|100|10600| |sqrt|0|100|12300| |サンプル|700|1300|1046000| * Rocky9(Linux) ** 未計測 h3. 計測条件 * boost_1_66_0 ** MinGWがサポートされているのは1_66_0から * GCC 4.8.5 * {{collapse(計測したホストPCのスペック,閉じる) <pre> C:\Users\Tatsuo>systeminfo OS 名: Microsoft Windows 11 Pro for Workstations OS バージョン: 10.0.26100 N/A ビルド 26100 OS ビルドの種類: Multiprocessor Free システム製造元: Dell Inc. システム モデル: Precision 3240 Compact システムの種類: x64-based PC プロセッサ: 1 プロセッサインストール済みです。 [01]: Intel64 Family 6 Model 165 Stepping 5 GenuineIntel ~3401 Mhz BIOS バージョン: Dell Inc. 1.33.0, 2025/02/04 物理メモリの合計: 40,672 MB 利用できる物理メモリ: 23,282 MB 仮想メモリ: 最大サイズ: 43,232 MB 仮想メモリ: 利用可能: 24,658 MB ネットワーク カード: 3 NIC(s) インストール済みです。 仮想化ベースのセキュリティ: 状態: 実行中\ Hyper-V の要件: ハイパーバイザーが検出されました。Hyper-V に必要な機能は表示されません。 </pre> }} h3. 今回分かったこと * 各パッケージをMinGW向けにソースからビルドしても、ほとんど失敗する ** たいていのパッケージはMinGWという環境をサポートしていないためだと思われる * MinGWにはMINGW-pacakgesというのがあって、オリジナルソースファイルにパッチを充ててMinGW用のパッケージを作成することができる ** オリジナルソースからビルドしない方が良い ** この仕組みは、過去に所望のバージョンのPKGBUILD(Makefileみたいなもの)があることが前提 *** 例えば、log4cppはもっとも古いもので1.1.4であるから、最新の1.1.5はパッケージ化することができない *** 例えば、log4cppはurt64向けPKGBUILDはあるが、mingw64向けPKGBUILDがない * log4cppはVisual Studio 2022でビルドできない ** クローンを使っても静的ライブラリは作れるものの、動的ライブラリは作れない ** %{color:darkred}使い続けていいのか?%