Cygwin + MinGW + GCC 相談室 Part 8 (987レス)
上
下
前
次
1-
新
561
(1)
: 2019/08/25(日)16:54
ID:z6AAmiat(1)
AA×
>>559
>>560
[
240
|
320
|480|
600
|
100%
|
JPG
|
べ
|
レス栞
|
レス消
]
561: [sage] 2019/08/25(日) 16:54:37.16 ID:z6AAmiat >>559 -O3はコードの最適化を3レベル(あるいはタイプ3)で行う 実際に何を行っているかはコンパイランの説明を読まないと分からない -mtune=skylakeはコードをIntel CPUのSkyLakeアーキテクチャで最適な形にする どちらも記述したコードを実行形式にするときに最適化を行うオプションなので、 非常に大きなコードを書いた際や似たような処理を繰り返すコードを書いている際に 指定すると早くなる事もある(ライブラリに含まれるコードは最適化されない) >>560 都市伝説ってこともない 関数A、B、C、Dが含まれるライブラリlibhogeが存在する場合、自分のプログラムで 関数BとDだけを使っていると、ダイナミックリンクの場合自分のプログラムの実行 コードに加えてすべての関数が含まれるlibhoge.dll全体を読み込む必要がある スタックリンクの場合には自分のプログラムの実行コードに加えてlibhoge.aから抽出した 関数BとDのコードを読み込むだけなので関数AとCのコードを読み込まない分ロードが 早くなる可能性は高くなる ただし、実際問題としてはdllを一回読み込めばキャッシュからなくならない限り読み込む 必要がない+Windowsのプログラミングで使用するライブラリで基本的なものは通常 システムを起動した時点でキャッシュされていることに加えて、Windowsでプログラムを 動かすために必要な関数郡はかなりの量になる事が多いのでスタティックにリンクすると すでにキャッシュされている関数郡を使わずに、必要な関数郡を含んだ大きなコードを 読み込む必要があるのでスタティックリンクの方が起動が遅くなるって本末転倒な事態が 発生することもある MinGWの場合にはWindows一般では使わないライブラリを使用するので1回目の 起動時には必要なdllを読み込むよりは、必要な関数のみをリンクしたスタティックな 状態の方が早い場合があるかもってこと http://mevius.5ch.net/test/read.cgi/tech/1411399211/561
はコードの最適化をレベルあるいはタイプで行う 実際に何を行っているかはコンパイランの説明を読まないと分からない はコードを のアーキテクチャで最適な形にする どちらも記述したコードを実行形式にするときに最適化を行うオプションなので 非常に大きなコードを書いた際や似たような処理を繰り返すコードを書いている際に 指定すると早くなる事もあるライブラリに含まれるコードは最適化されない 都市伝説ってこともない 関数が含まれるライブラリが存在する場合自分のプログラムで 関数とだけを使っているとダイナミックリンクの場合自分のプログラムの実行 コードに加えてすべての関数が含まれる全体を読み込む必要がある スタックリンクの場合には自分のプログラムの実行コードに加えてから抽出した 関数とのコードを読み込むだけなので関数とのコードを読み込まない分ロードが 早くなる可能性は高くなる ただし実際問題としてはを一回読み込めばキャッシュからなくならない限り読み込む 必要がないのプログラミングで使用するライブラリで基本的なものは通常 システムを起動した時点でキャッシュされていることに加えてでプログラムを 動かすために必要な関数郡はかなりの量になる事が多いのでスタティックにリンクすると すでにキャッシュされている関数郡を使わずに必要な関数郡を含んだ大きなコードを 読み込む必要があるのでスタティックリンクの方が起動が遅くなるって本末転倒な事態が 発生することもある の場合には一般では使わないライブラリを使用するので回目の 起動時には必要なを読み込むよりは必要な関数のみをリンクしたスタティックな 状態の方が早い場合があるかもってこと
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 426 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
ぬこの手
ぬこTOP
0.067s