[過去ログ] FreeBSDを語れ Part49 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
134(1): 2019/09/13(金)20:16 AAS
 >>133 
 三行にまとめてくんないと、1ミリも理解できないんだけど 
135: 2019/09/13(金)20:29 AAS
 素敵なコンパイラなら4行くらいにまとめてくれないかな.... 
136(1): 2019/09/13(金)21:01 AAS
 >>134 
 理解しなくていいよ。 
 x86系の知識だけで、とりあえず知ってるワードでマウント取ろうとしてるだけだから。 
137(1): 2019/09/13(金)21:21 AAS
 確かMS-C6.0の頃か?(うろ覚え)破壊しないレジスタは退避しなかった筈だが?w 
 十数年前からメジャーどこのコンパイラは短い関数なら勝手にインライン展開するのが殆どだし 
 いつの時代の話をしてるんだかさっぱり 
138: 2019/09/13(金)21:24 AAS
 流し読みで読み飛ばしちまったけんども 
 アセンブラでプロシージャ書いたとこでコーダーがスタックポインタを設定する事なんて先ずありえんwww 
139: 2019/09/13(金)21:28 AAS
 >>137 
 俺も最初そう思って ??? 状態だったけど、よく読んだらアセンブラで書いた時の話みたい 
 アセンブラで書く時に全レジスタ保存なんてよほど間抜けでないと普通しないけどな 
140: 2019/09/13(金)22:25 AAS
 知的障害者きてんね 
141: 2019/09/13(金)22:35 AAS
 支離滅裂さからは糖質の臭いがする 
142(1): 2019/09/13(金)22:52 AAS
 >>136 
 俺は一桁ロリに mount -f したい 
143: 2019/09/13(金)22:57 AAS
 さすがに一桁はないわ 
144: 2019/09/14(土)00:36 AAS
 >>119 
 それはC++の場合だな 
 Cではそんなことする処理系が無い 
145(1): 2019/09/14(土)00:41 AAS
 ちなみにC++では配列の各要素に対してデストラクタを呼ばなくちゃいけない都合上サイズが格納されている 
146: 2019/09/14(土)05:03 AAS
 >>142 
 おまわりさんこの人 
147: 2019/09/14(土)05:13 AAS
 童貞です 
148: 2019/09/14(土)06:22 AAS
 www 
149: 2019/09/14(土)10:12 AAS
 >>133 
 レジスタ退避と復帰は専用の命令が有るけど、CPUは実際には見えてる以上にレジスタを持ってるから毎回律儀にメモリに退避とかしてないよ 
150: 2019/09/14(土)10:53 AAS
 2chスレ:linux 
 286 
 俺はもうWindowsでVirtualBoxは諦めてるんだが、 
 FreeBSDとかSolarisとかどうしてもVirtualBoxでしか動かせなくて 
 必要なときはMacを使ってる。 
  
 FreeBSDとかSolarisがHyperVでも動かせるなら良いんだけど 
 どうもうまく行かない。 
151(2): 2019/09/14(土)11:01 AAS
 >>145 
 delete [] hoge; 
 のときですね 
 良く [] 付け忘れるので防止策教えてくだされ 
152(2): 2019/09/14(土)13:04 AAS
 >>133は、アセンブラでコード書いてると自然にそうなるってこと。 
 ルーチン内ではできるだけ汎用レジスタを使って処理したほうが早くなるから、最初にメモリから必要なデータを持ってきた後は 
 極力レジスタだけで処理するように書く。後からその処理の途中に別の処理を入れることになって、別の関数を挟んだとすると 
 レジスタの値を変えてはいけないから、その関数に入ったところで全レジスタを待避し、関数の終わりで戻さないといけなくなる。 
  
 Cで同じことをしてアセンブラに展開したコードを見ると、変数の値はメモリに置いておき、必要になったらレジスタにロードして 
 計算したら結果をまたメモリに戻すという処理をしている。後から途中に関数が追加されても、その関数はメモリから値を 
 持ってきて処理するからレジスタを退避する必要はない。関数に渡すパラメータなどもスタックに入れて渡すから 
 同じくレジスタを退避しなくて良い。 
  
 しかしこのやり方ではメモリとレジスタ間のセーブ/ロードが頻繁に起こるので、アセンブラのソースで見るといかにも効率が悪くて 
 遅いとわかる。当たり前だがメモリ - レジスタ間のセーブ/ロードはレジスタ内だけの演算よりずっと遅い。 
 そうするくらいなら、必要なときだけレジスタを退避・復帰させた方がまし。さらに、これがforなどのループ内で使われた場合、 
 この遅さがプログラム全体の遅さになる。Cコンパイラのコード生成は、アセンブラから見れば遅くて無駄だらけに見える。 
 その分、ソースが見やすいから便利なんだけれども。 
153: 2019/09/14(土)13:06 AAS
 >>151 
 今から作るならnew/deleteなんてやめてvectorとかにしなよ 
 deleteの[ ]付け忘れるような人は例外時の解放忘れとかもしそうだし 
154(1): 2019/09/14(土)13:08 AAS
 >>152 
 頼むから今時のまともなコンパイラ使ってから語ってくれ… 
155: 2019/09/14(土)13:14 AAS
 問題はコンパイラじゃなくて変態的な処理になってしまったx86系CPUのコード処理の方だと思われ 
 もはやアセンブラ最適化とか狂気の沙汰と聞いた 
  
 あー、スモールでコード書いてた頃が懐かしい 
156: 2019/09/14(土)13:40 AAS
 >>151 
 valgrindを使えば実行時にエラーを検出して実行終了時にエラーを出力してくれる 
 つうかCやC++でコーディングする場合はvalgrindは必須だな 
 実行する環境によっては使えないかもしれんけど、他には静的解析ツールを使うという手もある 
 例えばcppcheckとか使うと実行する前に間違いを指摘してくれる 
157: 2019/09/14(土)13:48 AAS
 FreeBSDを12.0にアップグレードしたらvalgrindがメモリ関係のエラーを検出しなくなった(泣) 
 その上システムコールに対するサポートも不完全みたいで、エラーが出るし 
 だれかfreebsd-portsのvalgrindを更新プリーズ… 
158(2): 2019/09/14(土)13:51 AAS
 和訳せよ 
  
 Send FreeBSD to the great bitbucket in the sky. 
159(1): 2019/09/14(土)13:57 AAS
 to be to be ten made to be 
160: 2019/09/14(土)13:59 AAS
 >>158 
 FreeBSDを空の素晴らしいbitbucketに送ってください。 
  
 >>159 
 十歳になる 
161: 2019/09/14(土)18:38 AAS
 >>152 
 今北産業 
162: 2019/09/14(土)19:30 AAS
 これでも読んだほうがいいんじゃね? 
  
 外部リンク:gihyo.jp 
163(1): 2019/09/15(日)08:08 AAS
 86系にうんざりして68系に目覚めた遠いあの日の思い出 
上下前次1-新書関写板覧索設栞歴
あと 839 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.025s