【プログラミング】C++が速いとか言われてるけどよく考えたらアレだよな

記事サムネイル
1 : 2025/02/21(金) 19:02:03.598 ID:iHILekXV0
機械語にコンパイルできるから速いってだけで別にC++が速いってわけじゃないよな
2 : 2025/02/21(金) 19:02:44.559 ID:iHILekXV0
結局機械語にコンパイルしたら全部一緒です
になりそうな気がしてならない
3 : 2025/02/21(金) 19:03:01.489 ID:gfPfxNVD0
でもコンパイル可能な言語全部速度おなじではないよね?
7 : 2025/02/21(金) 19:04:28.796 ID:iHILekXV0
>>3
なぜ一緒じゃないの?
5 : 2025/02/21(金) 19:03:46.291 ID:YnzO04ss0
このスレはC#ゲェジが立てたスレです
6 : 2025/02/21(金) 19:04:24.297 ID:hJp3Z2bH0
意味不明すぎない?
9 : 2025/02/21(金) 19:05:11.340 ID:iHILekXV0
>>6
いや意味はわかるだろ
コンピュータの上では機械語(0と1の羅列)が動いてるわけでC++が動いてる訳ではない
8 : 2025/02/21(金) 19:04:34.393 ID:q/sqZX030
コンパイラが違うなら結果は異なるものになるのでは
11 : 2025/02/21(金) 19:05:39.852 ID:iHILekXV0
>>8
やっぱ結局機械語に翻訳するコンパイラなんだよなぁ
10 : 2025/02/21(金) 19:05:17.387 ID:hAI1Lcio0
違うぞ
C言語はエラーチェックしてないから速いんだぞ
その代わりエラー出たら即落とされる
高級言語は逐一やばい操作してないかチェックしてやばかったら例外投げる
12 : 2025/02/21(金) 19:06:25.051 ID:iHILekXV0
>>10
エラーチェックは機械語でやってんじゃないの?
JavaとかC#とかのJITでもそうだろ?
15 : 2025/02/21(金) 19:07:26.751 ID:hAI1Lcio0
>>12
やってないよ
すぐコアダンプ履くだろ
17 : 2025/02/21(金) 19:09:02.030 ID:iHILekXV0
>>15
じゃあエラーチェックはJITコンパイラがその都度やってんの?
13 : 2025/02/21(金) 19:06:28.125 ID:MC6nQ8yW0
オレのパソコンは普通にPythonでも速い
お前らの使ってるパソコンってXP時代とかの奴じゃないの
14 : 2025/02/21(金) 19:06:47.939 ID:iHILekXV0
>>13
そういうこと言ってるんじゃないけど
16 : 2025/02/21(金) 19:08:09.759 ID:1XV8yJnn0
実装依存で速く出来る可能性があるってだけ
チンカスが書いたC++とまともなやつが書いたPythonならPythonの方が速いかもしれない
18 : 2025/02/21(金) 19:09:40.840 ID:MC6nQ8yW0
むかしのしょうもないファミコンの時代だとアセンブラが最速で
みたいな話あったんで
いまだにこの2025年で工夫しながらプログラミングとかしてる人見ると
なんかさぁ、無駄な苦労をするタイプに見える
きっと良いプロダクト出来てないと思うよ、まぁ無駄な苦労を繰り返しなよ、お似合いだよ
19 : 2025/02/21(金) 19:10:53.356 ID:q/sqZX030
ちゃんと考えて組まないと遅くなるガベージコレクション搭載してる言語
ちゃんと考えないと危険なメモリ操作しようとするC言語
しかもコンパイラが僕の考えた最高に効率のいいプログラムに変換しようとするので、動かしてみないと気づかなかったりする
20 : 2025/02/21(金) 19:13:02.423 ID:B3K0tKPX0
言語違かったらコンパイラが違うし機械語への翻訳も変わるんじゃないん?
22 : 2025/02/21(金) 19:14:21.372 ID:iHILekXV0
>>20
まぁそれはあるけどだからと言ってほかの言語で機械語にコンパイルしたプログラムがC++で機械語にコンパイルしたプログラムより早くできる可能性は0ではないよね
結局機械語次第だよね?
27 : 2025/02/21(金) 19:23:20.592 ID:0cJKyQ8r0
C系列はコンパイルしたらこういう機械語を吐くよねってのが大体想像できちゃう
29 : 2025/02/21(金) 19:23:39.610 ID:iHILekXV0
>>27
そうなんだ
30 : 2025/02/21(金) 19:26:16.505 ID:Ne7rlDi60
C#のコンパイラって裏側LLVMなの?
33 : 2025/02/21(金) 19:29:09.698 ID:iHILekXV0
>>30
.NETだけど最近NativeAOTが実装された
UnityのBurstコンパイラーはLLVMだね
31 : 2025/02/21(金) 19:26:27.412 ID:0cJKyQ8r0
C言語では a[i] が *(a + i) と等価だってのは機械語やったことがある人から見ると「ああ、うん」という感じなのな
34 : 2025/02/21(金) 19:29:11.864 ID:/obmWYY4M
>>31
それは機械語関係なくC言語の事情でしかないと思う
糖衣構文ってやつ
36 : 2025/02/21(金) 19:31:33.949 ID:0cJKyQ8r0
>>34
インデックスレジスタの話
35 : 2025/02/21(金) 19:31:04.199 ID:iHILekXV0
>>31
C言語やってないけどわかるわ
配列はメモリが一直線になるからaのアドレスにiを足したところのアドレスがa[i]になる
32 : 2025/02/21(金) 19:27:38.689 ID:Ne7rlDi60
めっちゃ強強の型システムで配列の要素数をコンパイル時に決定して、実行時に全くチェックしないLLVMをバックエンドにもつ言語あったら、Cと同程度に速そう

コメント

PAGE TOP
タイトルとURLをコピーしました