[過去ログ]
FreeBSDを語れ Part49 (1002レス)
FreeBSDを語れ Part49 http://mevius.5ch.net/test/read.cgi/unix/1567770470/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
124: 名無しさん@お腹いっぱい。 [sage] 2019/09/13(金) 12:35:23.45 無駄なチェックを端折れて高速な処理を書けるからC使ってるのに、 遅い堅牢ならライブラリをC、C++に用意しろと言うような低レベルPGなら元からC、C++使うなってことだな。 http://mevius.5ch.net/test/read.cgi/unix/1567770470/124
125: 名無しさん@お腹いっぱい。 [sage] 2019/09/13(金) 13:48:35.80 今現在堅牢な高級言語は生き残ってるか? http://mevius.5ch.net/test/read.cgi/unix/1567770470/125
126: 名無しさん@お腹いっぱい。 [sage] 2019/09/13(金) 14:06:11.98 堅牢な高級言語しか生き残ってないだろw アドレスを直接扱える危険な言語って たくさんの言語のなかどの程度あると思う? http://mevius.5ch.net/test/read.cgi/unix/1567770470/126
127: 名無しさん@お腹いっぱい。 [sage] 2019/09/13(金) 14:10:10.06 >>123 へー、すごいねー で、お前ん所のテスト密度っていくらぐらいなんだ?w http://mevius.5ch.net/test/read.cgi/unix/1567770470/127
128: 名無しさん@お腹いっぱい。 [sage] 2019/09/13(金) 14:20:06.52 >>126 Cは元々アセンブラの代替として作ったものだからポインタが扱えて当たり前ですよ。 C = 高級アセンブラだから。それが嫌な人はFortranでも使っとけということで。 http://mevius.5ch.net/test/read.cgi/unix/1567770470/128
129: 名無しさん@お腹いっぱい。 [sage] 2019/09/13(金) 14:28:27.29 >>124 ならCじゃなくてアセンブラ使ってろよ http://mevius.5ch.net/test/read.cgi/unix/1567770470/129
130: 名無しさん@お腹いっぱい。 [] 2019/09/13(金) 17:39:53.55 >>124 ほんそれ 関数入るたびに境界チェックするコードとか入れてたらCの有難味がないな http://mevius.5ch.net/test/read.cgi/unix/1567770470/130
131: 名無しさん@お腹いっぱい。 [sage] 2019/09/13(金) 19:10:51.35 OpenBSDのportsに入ってたパッチw --- texk/dvipsk/writet1.c.orig +++ texk/dvipsk/writet1.c @@ -1449,7 +1449,9 @@ static void t1_check_unusual_charstring(void) *(strend(t1_buf_array) - 1) = ' '; t1_getline(); + alloc_array(t1_buf, strlen(t1_line_array) + strlen(t1_buf_array) + 1, T1_BUF_SIZE); strcat(t1_buf_array, t1_line_array); + alloc_array(t1_line, strlen(t1_buf_array) + 1, T1_BUF_SIZE); strcpy(t1_line_array, t1_buf_array); t1_line_ptr = eol(t1_line_array); } http://mevius.5ch.net/test/read.cgi/unix/1567770470/131
132: 名無しさん@お腹いっぱい。 [sage] 2019/09/13(金) 19:11:33.33 >>131 ごめんなさい。 全然違うサイトに誤爆です。 http://mevius.5ch.net/test/read.cgi/unix/1567770470/132
133: 名無しさん@お腹いっぱい。 [sage] 2019/09/13(金) 19:57:49.49 >>130 Cなら if ( checkfunc( func ) ) ... と1行で書けるから大したことなさそうに見えるけど、これをアセンブラで書くと、 汎用レジスタ全部退避して、戻りアドレス設定して、新しいスタックポインタ設定して、 チェック処理を実行して、戻る直前に汎用レジスタ全部戻してリターンするので、 毎回こんだけの処理させてわざわざ遅くするのが嫌になるんだよね。 全レジスタの退避と復帰を毎回実行させるのってほんとに無駄に感じる。 本当は、破壊されてもいいレジスタは関数ごとに異なるはずなので、破壊されて困るレジスタだけ退避 するようにすれば最適化されていいんだけど、そうするとどこかを書き換えたとき、元に戻さないといけない レジスタができて、それの退避を忘れただけで吹っ飛ぶ。 http://mevius.5ch.net/test/read.cgi/unix/1567770470/133
134: 名無しさん@お腹いっぱい。 [sage] 2019/09/13(金) 20:16:21.30 >>133 三行にまとめてくんないと、1ミリも理解できないんだけど http://mevius.5ch.net/test/read.cgi/unix/1567770470/134
135: 名無しさん@お腹いっぱい。 [sage] 2019/09/13(金) 20:29:34.91 素敵なコンパイラなら4行くらいにまとめてくれないかな.... http://mevius.5ch.net/test/read.cgi/unix/1567770470/135
136: 名無しさん@お腹いっぱい。 [sage] 2019/09/13(金) 21:01:24.16 >>134 理解しなくていいよ。 x86系の知識だけで、とりあえず知ってるワードでマウント取ろうとしてるだけだから。 http://mevius.5ch.net/test/read.cgi/unix/1567770470/136
137: 名無しさん@お腹いっぱい。 [sage] 2019/09/13(金) 21:21:08.17 確かMS-C6.0の頃か?(うろ覚え)破壊しないレジスタは退避しなかった筈だが?w 十数年前からメジャーどこのコンパイラは短い関数なら勝手にインライン展開するのが殆どだし いつの時代の話をしてるんだかさっぱり http://mevius.5ch.net/test/read.cgi/unix/1567770470/137
138: 名無しさん@お腹いっぱい。 [sage] 2019/09/13(金) 21:24:57.47 流し読みで読み飛ばしちまったけんども アセンブラでプロシージャ書いたとこでコーダーがスタックポインタを設定する事なんて先ずありえんwww http://mevius.5ch.net/test/read.cgi/unix/1567770470/138
139: 名無しさん@お腹いっぱい。 [sage] 2019/09/13(金) 21:28:15.19 >>137 俺も最初そう思って ??? 状態だったけど、よく読んだらアセンブラで書いた時の話みたい アセンブラで書く時に全レジスタ保存なんてよほど間抜けでないと普通しないけどな http://mevius.5ch.net/test/read.cgi/unix/1567770470/139
140: 名無しさん@お腹いっぱい。 [sage] 2019/09/13(金) 22:25:06.94 知的障害者きてんね http://mevius.5ch.net/test/read.cgi/unix/1567770470/140
141: 名無しさん@お腹いっぱい。 [sage] 2019/09/13(金) 22:35:27.85 支離滅裂さからは糖質の臭いがする http://mevius.5ch.net/test/read.cgi/unix/1567770470/141
142: 名無しさん@お腹いっぱい。 [sage] 2019/09/13(金) 22:52:56.29 >>136 俺は一桁ロリに mount -f したい http://mevius.5ch.net/test/read.cgi/unix/1567770470/142
143: 名無しさん@お腹いっぱい。 [sage] 2019/09/13(金) 22:57:17.03 さすがに一桁はないわ http://mevius.5ch.net/test/read.cgi/unix/1567770470/143
144: 名無しさん@お腹いっぱい。 [sage] 2019/09/14(土) 00:36:34.21 >>119 それはC++の場合だな Cではそんなことする処理系が無い http://mevius.5ch.net/test/read.cgi/unix/1567770470/144
145: 名無しさん@お腹いっぱい。 [sage] 2019/09/14(土) 00:41:44.98 ちなみにC++では配列の各要素に対してデストラクタを呼ばなくちゃいけない都合上サイズが格納されている http://mevius.5ch.net/test/read.cgi/unix/1567770470/145
146: 名無しさん@お腹いっぱい。 [] 2019/09/14(土) 05:03:45.80 >>142 おまわりさんこの人 http://mevius.5ch.net/test/read.cgi/unix/1567770470/146
147: 名無しさん@お腹いっぱい。 [sage] 2019/09/14(土) 05:13:55.38 童貞です http://mevius.5ch.net/test/read.cgi/unix/1567770470/147
148: 名無しさん@お腹いっぱい。 [sage] 2019/09/14(土) 06:22:47.86 www http://mevius.5ch.net/test/read.cgi/unix/1567770470/148
149: 名無しさん@お腹いっぱい。 [sage] 2019/09/14(土) 10:12:55.40 >>133 レジスタ退避と復帰は専用の命令が有るけど、CPUは実際には見えてる以上にレジスタを持ってるから毎回律儀にメモリに退避とかしてないよ http://mevius.5ch.net/test/read.cgi/unix/1567770470/149
150: 名無しさん@お腹いっぱい。 [] 2019/09/14(土) 10:53:54.50 https://mao.5ch.net/test/read.cgi/linux/1560665525/ 286 俺はもうWindowsでVirtualBoxは諦めてるんだが、 FreeBSDとかSolarisとかどうしてもVirtualBoxでしか動かせなくて 必要なときはMacを使ってる。 FreeBSDとかSolarisがHyperVでも動かせるなら良いんだけど どうもうまく行かない。 http://mevius.5ch.net/test/read.cgi/unix/1567770470/150
151: 名無しさん@お腹いっぱい。 [] 2019/09/14(土) 11:01:09.06 >>145 delete [] hoge; のときですね 良く [] 付け忘れるので防止策教えてくだされ http://mevius.5ch.net/test/read.cgi/unix/1567770470/151
152: 名無しさん@お腹いっぱい。 [sage] 2019/09/14(土) 13:04:16.01 >>133は、アセンブラでコード書いてると自然にそうなるってこと。 ルーチン内ではできるだけ汎用レジスタを使って処理したほうが早くなるから、最初にメモリから必要なデータを持ってきた後は 極力レジスタだけで処理するように書く。後からその処理の途中に別の処理を入れることになって、別の関数を挟んだとすると レジスタの値を変えてはいけないから、その関数に入ったところで全レジスタを待避し、関数の終わりで戻さないといけなくなる。 Cで同じことをしてアセンブラに展開したコードを見ると、変数の値はメモリに置いておき、必要になったらレジスタにロードして 計算したら結果をまたメモリに戻すという処理をしている。後から途中に関数が追加されても、その関数はメモリから値を 持ってきて処理するからレジスタを退避する必要はない。関数に渡すパラメータなどもスタックに入れて渡すから 同じくレジスタを退避しなくて良い。 しかしこのやり方ではメモリとレジスタ間のセーブ/ロードが頻繁に起こるので、アセンブラのソースで見るといかにも効率が悪くて 遅いとわかる。当たり前だがメモリ - レジスタ間のセーブ/ロードはレジスタ内だけの演算よりずっと遅い。 そうするくらいなら、必要なときだけレジスタを退避・復帰させた方がまし。さらに、これがforなどのループ内で使われた場合、 この遅さがプログラム全体の遅さになる。Cコンパイラのコード生成は、アセンブラから見れば遅くて無駄だらけに見える。 その分、ソースが見やすいから便利なんだけれども。 http://mevius.5ch.net/test/read.cgi/unix/1567770470/152
153: 名無しさん@お腹いっぱい。 [sage] 2019/09/14(土) 13:06:51.37 >>151 今から作るならnew/deleteなんてやめてvectorとかにしなよ deleteの[ ]付け忘れるような人は例外時の解放忘れとかもしそうだし http://mevius.5ch.net/test/read.cgi/unix/1567770470/153
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 849 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.019s