プロジェクト

全般

プロフィール

202556時点のまとめ » 履歴 » バージョン 11

開発 次郎, 2025/05/06 07:12

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