1read 100read
2012年07月プログラム185: C、C++の最適化について語るスレ 3 (761) TOP カテ一覧 スレ一覧 2ch元 削除依頼
GCCについて part10 (220)
【信者】C++の問題点【アンチ】 (375)
Eclipse統合M33【Java/C++/Ruby/Python/Scala】 (511)
C言語なら俺に聞け(入門編)Part 109 (554)
データ構造とアルゴリズム総合 (550)
WindowsDDK各種についてのスレ (744)

C、C++の最適化について語るスレ 3


1 :2008/07/05 〜 最終レス :2012/10/11
コンパイラ性能、コンパイルオプション、コードの最適化などについて語りましょう。
主に速度面の最適化を中心としますが、サイズなどの最適化もどうぞ。
なお、OS、CPU、コンパイラなどは限定しません。
前スレ
C、C++の最適化について語るスレ
http://pc11.2ch.net/test/read.cgi/tech/1084676298/ (過去ログ化前)
C、C++の最適化について語るスレ 2
http://pc11.2ch.net/test/read.cgi/tech/1177808054/

2 :
スレが荒れるので団子は書き込み禁止です

3 :
>前スレ1000
読めてないよ

4 :
>>2
まったくだよな。
前スレの後半読み飛ばしまくったけど、それでもむかついた。

5 :
むしろ組み込みしか頭にないおっさん連中全員うぜぇ

6 :
最適化の具体例を出して議論して欲しいな。

7 :
前スレの後半は組み込み関連の話だけになってたな。

8 :
ダンゴの名言が面白かった。

9 :
組み込みCPU限定の話題はスレ違いっていうか板違い

10 :
>なお、OS、CPU、コンパイラなどは限定しません。
かってにシキるなよ。クソを流さないダンゴ。

11 :
お前ら組み込みの大変さを理解してないだろ。
これだから組み込みを知らない奴らは・・・

12 :
>>11
大変なのはいいからC++でリソース潤沢な環境の最適化の需要を想定できない人は電子板に行ってください。
ここのカテゴリは「PC等」なんで。
俺はPPCマカーでもあるから非x86には寛容な方だけど

13 :
家電 UIのR加減(ry

14 :
>>12
前スレの807-813の再レスというかネタだろ

15 :
マカーきめえw

16 :
>>15
うるしぁiPodぶつけんぞ

17 :
>>16
前スレの948に答えてあげよう、ROMは割と余る、RAMは意外と足りない。
あと16ビット系は多品種少量でめちゃ現役。
ARMやMIPSみたいな豪華なCPUが使えない場所はけっこうあるよ。

18 :
ヨッシーの鳴き声

19 :
団子さん薬飲みすぎじゃね?
テンション高すぎw

20 :
そろそろ具体的な最適化の話にもどらないか?

21 :
最適化の需要が少ないって絡まれるのは、やだなあ。

22 :
ここは団子さんを最適化するスレ

23 :
早く右辺値参照が使いたい・・・

24 :
具体的なの書くと、マイノリティって言われるしな〜。

25 :
マカーか。納得。

26 :
飛ばしすぎなダンゴさんがちょっと心配になってきたな

27 :
前スレのこれってダンゴさんの自演なの?
905 :デフォルトの名無しさん:2008/07/04(金) 00:07:09
>>899
憶測だけど多分25前後。
>>903-904
いや、シャシャリ出てこないだけで話を理解出来る奴もいるよ。
奴は持論、空論、論理のすり替えは多いがCPUのアーキテクチャは人一倍理解している。たまに勘違いしてるが、突っ込みどころは少ない。
それよりファミリーカーの話題にスポーツカーとか農機とか平気で語り出して、それで結論づけて話を終わらせるのが問題なんだよ。

28 :
ほとんどがダンゴさんの自演だよ

29 :
>>24
どうせならHDみたいな本に載せてもいいような、
機種によらずほとんどのCPUで有効な最適化手段用意しようよ。
ちなみに前スレのは俺の使う石だとかえって遅くなるぞ。
そういう特定のCPUに依存したコードをことわりもなく書くのが傲慢なんだよ
俺がどれだけSSEとかVMXの話題遠慮してると思ってるんだ

もっとも、この板に専門スレがあるがな

30 :
そのまま色々遠慮しててください。

31 :
ダンゴさんの心遣いがとうとう語られてしまったな

32 :
団子に構って欲しい人だらけのようだけど、気にせず書くよ。
ヒープ確保よりスタック確保の方が早いけど、
スタックだとコンパイル時にサイズ決まってしまうのが残念だ。
allocaが安心して使えたら良いのに。

33 :
リンク時だろ

34 :
C++はもちろん当たり前だがC99準拠の処理系では
void foo(int n)
{
 double a[n];
 …
}
こんな風に整数の変数でスタック上配列を確保できる。
もちろん関数の途中でも{}で囲んでやりさえすればいつでも使える。
なんにせよC99準拠の処理系ならほぼ例外なく
何らかの形でallocaみたいな関数も実装されてると思ってるが。
しかし機械語レベルで見るとなんのことはない、x86でいうespを変数値ぶんだけ操作してるだけ。

35 :
何のことは無いって言うけど、
配列のアドレスを別に保存しておかないといけないし、
サイズも sizeof 用に保存しておかないといけないんだぜ。

36 :
その昔 x68k 用の gcc で
void foo(const char *p)
{
 char a[strlen(p) + 1];
 ...
}
で上手くコンパイルできないバグがあった。
esp を操作するだけなんて言う奴は考え浅すぎ。

37 :
>>34
>C++はもちろん当たり前だがC99準拠の処理系では
C++でも出来るように読めてしまう

38 :
>>35,36 そんなのコンパイラ屋ならできて当たり前のレベルだろw

39 :
>>34
allocaと同じく、関数頭辺りでスタックのページ拡張コードも入るよ。
espをいじるだけだと例外が発生する。

40 :
C++にも可変長配列欲しいな・・・

41 :
>>38
だから、>>34 はそんなレベルじゃないって言ってるだけだが。
>>39
それは、環境による。
全ての環境にページングシステムがついてるわけじゃないし、
スタック例外処理ハンドラで拡張するシステムもあるし。

42 :
>>40
std::vect(ry

43 :
そんなnew/deleteのただのラッパーじゃ嫌です><

44 :
手元にint32_t変数があるとして、このビットを逆順にする高速なコードをください

45 :
i = ~i;

46 :
>>45
それ反転

47 :
鏡を2つ用意します

48 :
ビット逆順ってどんなときに必要になるんだ?

49 :
>>29
>そういう特定のCPUに依存したコードをことわりもなく書くのが傲慢なんだよ
すげぇ
お薬効きまくってますネ!

50 :
47みたいなのを天才というんだな

51 :
前スレがdat落ちしていない間は良いけど、
前スレ見てない人には、団子の人格批判だけのレスは
アホっぽく見えるから、止めた方が良いと思うぞ。

52 :
団子が居る限り
このスレも
同じレベルだろ

53 :
正直、団子だけでなく双方同レベルです・・・

54 :
>>43
ヒープに確保で駄目な理由ってなに?
逆にスタックを使うデメリットは認識してる?
多くのCランタイムはアプリケーションヒープはプールしてmallocの度に未使用領域を再利用する実装が多いよ
Cellのspu-gccだとは単にLS上の空いたとこ割り当てるだけだし

55 :
>>29
>そういう特定のCPUに依存したコードをことわりもなく書くのが傲慢なんだよ
勝手に決めんな。このスレはOS、CPU、コンパイラは限定しないんだから、
古くても新しくても、機種依存でも、あきらかにそれとわかれば問題ねーんだよ。
>>34
高速なメモリプールを動的に確保したいってだけでしょ?
最適化は直接関係ないじゃん。
>>48
他システムとのエンディアン変換で使わんか?フーリエ変換でもあると便利でしょ。
SIMDにそんな命令があるCPUもあるから、どうしても速度が気になるなら直書でやったら?
ダンゴが固定しているCPUに依存しない最適化じゃ無理。

56 :
スタックに確保するとか決まってたっけ? 別にヒープで実装してもいいんじゃないの

57 :
>>56
ダンゴの使っていない処理系の話題は板違いです

58 :
>>44
じゃ古典的な実装のひとつでも覚えようか。
ちなみに4〜5行目はBSWAPがあれば一発だね。
i = ((i&0x55555555)<<1) | ((i>>1)&0x55555555);
i = ((i&0x33333333)<<2) | ((i>>2)&0x33333333);
i = ((i&0x0F0F0F0F)<<4) | ((i>>4)&0x0F0F0F0F);
i = ((i&0x00FF00FF)<<8) | ((i>>8)&0x00FF00FF);
i = i>>16 | i<<16;
ま、これが最善とは限らないがね。
ちなみに他に、ビットスワップにXORを使う実装があるが
スーパースカラと相性よくない気がするので俺はこっちが好き
#組み込み爺さんは放置推奨。かまうあなたも組み込みです。

59 :
>>55
Radix-SRT dividerは組み込みには関係ないからと噛みついたのが組み込み爺さん
ダブスタもいいところだな

60 :
くみ取り系は基本的に自己チューですので

61 :
>>58
用意してたの?

62 :
>>58
で?最適化は?

63 :
すまんが、組み込み=じいさんってどういう発想なの?
俺、組み込みやってるんだけど、このスレじゃダンゴ氏に
肯定的でないと発言出来ないって事?
あと、結局このスレはCPU依存な話題はNGって事でOK?

64 :
>>54
いや、駄目ってことではなくて、違うじゃんってこと。
そりゃヒープ気分ででかいの確保したらすぐ死ぬけどさ。
>>56
可変長配列のこと?
だとするとC言語用の単なる構文糖衣みたいなものか・・・。
>>55
バイト列じゃなく、ビット列まで逆になるエンディアンがあるってこと?

65 :
エンディアンってバイト順のことじゃないのか?
最近はビット順もエンディアンって言うのか?

66 :
シリアルでLSBから送ってくる機器を相手にした事はあるけど

67 :
7セグLEDの表示ビット列が逆で手持ちのビット列を逆順にしたいことはあったな。
まぁ手でやったけど。

68 :
780 名前:デフォルトの名無しさん[] 投稿日:2008/06/17(火) 08:53:09
ビット演算だけで、剰余を求める方法を教えてください
788 名前:,,・´∀`・,,)っ-○◎●[sage] 投稿日:2008/06/28(土) 13:17:18
というか、除算・剰余にビット演算を使うような厨テクなんて
最近のCPUじゃマイクロコードレベルで同等かそれよりエレガントなことやってるだろうから
よっぽどガチガチのRISCでも使わない限り覚えても意味ないよ
795 名前:デフォルトの名無しさん[sage] 投稿日:2008/06/29(日) 06:48:48
古いCPUと枯れたコンパイラの仕事はもう無いっておもってるのか?
それとも、ダンゴがアホなのか?
--
これで荒れはじめたんでしょ。
よっぽどツボついたのか、ダンゴが組込み=悪って事にして散々罵倒しだした。
それで、なんだか、ココは最新のベクトル系の最適化の話以外は禁止なふんいき。

69 :
>>61
こういうのは基本的に何パターンか丸暗記してる。HDにも載ってるし。
ちなみにこれは比較的命令の並列度が高めのCPU向け。
>>62
逆に、これより速いのあるならやってみてよ。
ちなみにAltiVecやSSE4を使っていいなら攪拌命令を使って各バイト4ビットずつ
同時にビットオーダーを反転する手もある。

70 :
ごめん。エンディアンとFFTのビット順の逆は別の話だった。混同しちゃってた。

71 :
>>65
汲み取り系君はビット順とバイト順が区別できないほど頭がアレなんで。

72 :
>>68
お前みたいなスレが荒れる原因を
わざわさ持ち出してくる奴も同じくらい迷惑なんだが

73 :
リア房んときCASL&COMETでビットシフトと加減算で除算やったことあるが、
普通はCではコンパイラの仕事だろ。

74 :
ダンゴさんよっぽど悔しいんだな。

75 :
>>74
くやしいのうwwwくやしいのうwww
こうですかわかりません><

76 :
>>74-75
vipでやれカス共

77 :
>>75
ところで、モトローラのマイコンの件はどうなりましたか?

78 :
ム板でも特筆すべき勢いのスレ

79 :
>>77
あの会社の収益は組み込みPPCが大半だと思ってたよ
で、R8Cとどっちが売れてるの?

80 :
だいぶ前にフリースケールに売ったけどな。

81 :
> 大半
だからマジョリティしか発言権無いのかと。

82 :
一々単語に噛み付くなようぜぇ

83 :
>>80
売ったんじゃなくてスピンアウトだろ
どっちかというと分社化
MacのIntel移行は痛かったようだな

84 :
ダンゴさんは前スレから勝ちっぱなしだな

85 :
なんでそこでR8Cなんだろう?

86 :
すっかり雑談スレだな。ダンゴの自演が面白いけど。
モトローラは通信事業の収益の方が大きかったから辞めたがってた。
アポは五月蝿いくせに数捌かない客だったし。
アポが消えたら、厄払いが済んだかのように、各ゲーム機が一斉にPPC系になって
フリスケとIBM大勝利って感じ。
>>63
別にダンゴスレじゃないから、ココで組込みの話題でもオッケー。
最適化関係ならね。

87 :
>>86
は?
Freescaleはゲーム3機種に絡んでないよ。Wiiのは750CLカスタムだし。
Appleこそ脱PPC以降米国市場で1000ドル以上のPCの売上でダントツトップになったり
大躍進じゃないか

でもclassic見捨てるなボゲ

88 :
>>87
どーでも良い事にいちいち噛み付くなよ。ウゼェ。

89 :
>>87
最適化された結果消えたんだから文句言うな

90 :
ダンゴ的にアップルはマイノリティじゃないの?
PPCマックのプログラムなんて、爺の野良仕事みたいなもんだと思うけど。

91 :
お前ら、今日もム板最速スレ伝説を築く気か。
ダンゴもいい加減からかわれてるって気づけ!
良い天気なんだから、外に出て体動かせ。ビタミンDでも補給しろ!

92 :
>>87
で、モトローラのマイコンはどうなんだ?
市場規模とかw

93 :
>>92
まあRじゃね?
ハードの売上とそれに群がるソフト市場、ともにIntelが圧倒的に首位なのは言うまでもないし。

94 :
>91
たまのフレーミングが終われば過疎スレに戻るんだから、いまはこのイベントを楽しめ
>87
> Freescaleはゲーム3機種に絡んでないよ。Wiiのは750CLカスタムだし。
言いたいことは否定しないが、CodeWarrior を供給してる関係で、"ゲーム開発に絡んでいる" という言い方は出来る。
つうか、前スレ831 にアンカー付けてくれないかな。
824には同意なんだが。

95 :
ダンゴさんが順位で市場規模を語り始めたぞ。

96 :
そーいやメトロワークスってFreescaleに買われたんだww
しかしCodeWarriorねぇ・・・
Wii向けならまだ使ってるとこあんのかね?
PS3はSCE謹製のSDKがあるし360はもちろんVisualStudioだし。

97 :
むしろIDEとしてはMSVSとEclipseに蹴散らされてるのがCWの現状

98 :
団子って組み込み屋にクビでも切られた?
ツボをつく書き込みがあった?
団子はしばしば発狂してるけどトリガが知りたいな

99 :
CodeWarriorのIDE部分がEclipseに移行するという発表は先月だったな。
なかなかの蹴散らされっぷりだなw

100read 1read
1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼
Visual Studio 2012 Part4 (431)
Jython、Groovy、JRuby - どれが一番効率的? (262)
C++11が動的言語よりも開発効率が良くなってる… (224)
最も美しいプログラミング言語は? Part6 (400)
■暗号技術【ROUNDsurea】■ (542)
C/C++の宿題片付けます 160代目 (615)
--log9.info------------------
【MTG】昔欲しかったカードを安く買ってデッキ組もう (598)
【遊戯王】爬虫類族スレ23【エーリアンヴェノムワームレプティレス】 (440)
【我】Lycee月スレ16【上弦なり】 (953)
遊戯王トレードスレ Vol.20 (520)
周りにやる相手がいない人が集まるスレ14 (566)
【遊戯王】アドバンス召喚とは何だったのか (271)
ぎゃざガール (685)
お前ら遊戯王CGIやろうぜ (607)
【BS】バトルスピリッツ開封報告スレ【バトスピ】 (319)
【海外版】遊戯王コレクタースレ part39【プロモ】 (278)
【遊戯王】悪魔族デッキ総合スレ【Lv27】 (313)
【MTG】土地破壊デッキで天下取ろう【ランデス】 (282)
TCG漫画総合スレ 4枚目 (674)
【D0】ディメンション・ゼロ Part.43【全最予選】 (331)
【遊戯王】機皇スレpart3【機皇帝】 (370)
過大評価されてるTCG (293)
--log55.com------------------
【種別不問】産業医についての総合スレ4
【ニンニク注射】おおさか維新の会梅村さとし
松戸市立病院 15
眼科医師11年目 将来の展望
麻酔科医だけど聞きたいことある?
医療法人社団清流会貞光病院が乗っとられたぞ!
看護師を輪姦しましたよね
【精神保健指定医】富岡 大(とみおか ひろい)不正取得医療機関講師