元スレGCCについて part8
gcc覧 / PC版 /みんなの評価 : ☆
301 = :
snapshots見てたから気づかなかったぜ
302 = :
4.3の一番の売りは、主な数学関数をコンパイル時に展開してより最適化してくれるってことでOK?
305 = :
で、4.1より早いの?
じゃなきゃ糞だが
306 = :
gcc-4.3のバイナリ実行速度は、integerについてはgcc-4.1よりも速いし、バグの数もgcc-4.1よりも少ない。
307 = :
>>306
4.1から4.3で何が良くなったのか簡潔に頼む。
309 = :
fate見ると4.3って4.1に比べて遅くなってるような。
4.1.2http://fate.multimedia.cx/index.php?build_record=6158
4.2.3http://fate.multimedia.cx/index.php?build_record=6169
gcc svn 133010, built 2008-03-07http://fate.multimedia.cx/index.php?build_record=6163
310 = :
以前にベンチをnbenchとかbzip2とかで取ってみて比較した印象だと整数演算に関しては4.1より4.2の方が明らかに良いと
思っていて、最適化フラグが-O2の場合は4.2より4.3の方が若干良いという印象を持っていたのでそう書いたのでけど、
実は-O3の場合は事情が違って、4.2の方が4.3より良い結果になると思っています。つまり、
gcc-4.2-O2<gcc-4.3-O2<gcc-4.3-O3<gcc-4.2-O3
の順に性能が良くなると思っています。fateというベンチはstdout textを見ると-O3でコンパイルされているので
4.2の方が4.3より良い結果になるというのは順当だと思います。
311 = :
C++ヲタだから、あんまり速度比較には興味ないんだけど、
4.3はforward propagationが大幅に書き換えられているから、
4.2のの頃の結果から4.3の振る舞いを推測するのは危険だぞ。
313 = :
速い遅い以前に挙動が変わっちゃって今トレース中だよ・・・
315 = :
>>307
http://gcc.gnu.org/gcc-4.3/cxx0x_status.html
Status of Experimental C++0x Support in GCC 4.3
Rvalue references N2118 Yes
Rvalue references for *this N2439 No
Variadic templates N2242 Yes
Static assertions N1720 Yes
Declared type of an expression N2343 Yes
Right angle brackets N1757 Yes
Default template arguments for function templates DR226 Yes
Extern templates N1987 Yes
C99 Features in C++0x
__func__ predefined identifier N2340 Yes
C99 preprocessor N1653 Yes
long long N1811 Yes
もちろんg++起動オプションでオンにしたときだけ。
http://gcc.gnu.org/gcc-4.3/changes.html
317 = :
Linuxで最近よく自分でアプリやカーネルをmake installします。gccの最適化フラグをつけないとつけた時に
比べてやはり遅いんだなってのは体感しました。所がアプリによりつけたフラグによっては動きが悪くなる
ってのも体感。
なので自分はソースが読めないのでgcc4.2シリーズの-march=native -O2のみにして全部これでやることに
しました。それなりに快適に動いてます。
少し前からgcc4.3の最適化は4.2よりいいと書いてある記事をみて開発版の4.3を入れたけど
なんか動きがかなり違う。コンパイルが出来ない(一切フラグをつけなくても)物も出てきた。
それどころかある設定をしないとカーネルでさえコンパイル出来ないんですね・・・・
ググってカーネルのmakeファイルに設定を追加して出来上がった物も動きが悪いです・・・
やはり今回の正式リリースもカーネルとかそのままコンパイル出来ないんでしょうか?
まあ、それは対策が解るからいいものの、使った感じちょっとソースが読めないような自分が使う物ではないな
と感じたです。コンパイルエラーが出たのをネットでググる時間が(TT)
318 = :
ソース読めない、情報拾うのが涙目、って状態で開発版を入れる神経が理解できない。
319 = :
>>318
じゃあ正式リリース版のgcc4.3.0では何もいじらなくてカーネルコンパイルくらいは平気で出来るの?
4.2シリーズは開発版だろうがまるで神経使わなかったけど。
320 = :
じゃあ(笑)
321 = :
>>320
答えられないような人は黙っててよww
322 = :
>>319
開発版を入れる神経を疑いはするが、4.3が安定しているかどうかは知らない。
私ゃ態々カーネルをコンパイルし直すほど暇じゃないんでね。
325 = :
春厨だよ
326 = :
>>322
安定とかの問題以前でgccサイドとカーネルサイドの意見が違っててどっちも直さないってのが
ある筈なんだけど・・・
gcc4.3、カーネルと聞いて思い浮かばないようならもう話はいいですww
327 = :
「ある筈なんだけど」っていう程度の人は、
リリースされたばかりのコンパイラを使わない方がいいと思うよ
> やはり今回の正式リリースもカーネルとかそのままコンパイル出来ないんでしょうか?
あなたにはよく分からないことだから。
328 = :
すいませんちょっとお尋ねしたいのですが、
コンパイル時に二つのオプションを使うことってできるのでしょうか?
例えば、若干スレ違い臭いのですが、質問させてください。
例えば、
`wx-config --cppflags` と `pkg-config --cflags gtk+-2.0`
を同時に使いたいのです。
同時に使えるとしたらどのように書けばいいのでしょうか。
どなたかご教示頂けると幸いです。
329 = :
3行目コピペミスなので無視してください・・
330 = :
別スレでレスがつかなかったからこっちで・・・とか
そのくらいの経緯は書いて欲しいな。
というか、向こうでレスついたぞ。
331 = :
>330
すいません、そういうもんなのですか。以後気をつけます。
レスついたみたいですね。ありがとうございましたm(_ _)m
334 = :
カーネルに限らず、O2レベルでもミスコンパイルはよくあるから別に驚く話でもないが。
GCCコミッテーに文句つけて今の版のバグフィックスをしろよ、クソハゲドモと外人に文句垂れてくるんなら
俺は得に気に留めないよ。
335 = :
方向の違うこういうのもあるから、素人さんにはお勧めしない。
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e40cd10ccff3d9fbffd57b93780bee4b7b9bff51
正直、コンパイル猿になるよりもずっと有意義なことがいくらでもあります。
何か一つターゲットを絞って深く追ってみるのならいいけどね。
337 = :
なんか付帯情報が変な気がするんだけど、
何を参考にしました?
339 = :
氏ね
341 = :
g77 死亡
342 = :
gccのオプションで-ggdb3,-gや-O0, -O2のようにどちらかしか採用されないようなオプションを
同時に渡したときどちらが採用されるのでしょうか?
gcc -ggdb3 -O0 -g -O2 -c src.c -o src.o
と実行したときsrc.oは「-ggdb3 -O0」それとも「-g -O2」?
343 = :
引数の解釈する順番?
344 = :
>>342
You can mix options and other arguments. For the most part, the order
you use doesn't matter. Order does matter when you use several options
of the same kind; for example, if you specify `-L' more than once, the
directories are searched in the order specified.
機能が被る場合にどうなるかは明記されてないが
理解の一助にはなるかな?
345 = :
-Qとかつければ、どう解釈されてたか見れたような?
346 = :
Windowsと違って、UNIXだとsleep(0)ってやっても効果ないの?
347 = :
Windowsだとどんな効果があるの?
348 = :
>>346
Windowsでの効果は知らないけれど、Linuxの場合はタスクスイッチングを強制させるのに使える。
要は「最低0秒」止まるので、他に処理するべきプロセスがあればそちらを実行することになる。
# 逆に言えば、最悪何秒も止まりっぱなしになるかもしれない。
350 = :
タスクスイッチというかカーネルへの制御の移行ね。
システムコールからそのまま戻るにしても既に送られたシグナルがあれば
戻る直前でシグナルハンドラが走る。
あとUNIXによってはsleepはプロセスタイマを使う可能性があるらしいので
ユーザプログラム側でタイマを使う場合は注意が必要かも。
みんなの評価 : ☆
類似してるかもしれないスレッド
- GCCについて part9 (1001) - [95%] - 2011/9/2 21:17 ○
- GCCについて part10 (538) - [90%] - 2018/7/5 20:30
- Cygwin + MinGW + GCC 相談室 Part 8 (938) - [18446744073709551610%] - 2022/10/28 8:00
トップメニューへ / →のくす牧場書庫について