「C++の色々配慮してめんどくさい感じは好きだけど、実務になったらメモリ安全性とか考えて今後Rustに変わっていくんかな」
「うだうだ言ってないで仕事で必要なのをやればいいんだよ、趣味なら好きなのやればいい」
っていう雑談スレ。
前スレ: 結局C++とRustってどっちが良いの? 2traits
https://mevius.5ch.net/test/read.cgi/tech/1680363777/
関連スレ(マ板): Google&MS「バグの70%はC/C++。Rustにする」
https://medaka.5ch.net/test/read.cgi/prog/1619943288/
探検
結局C++とRustってどっちが良いの? 3traits
■ このスレッドは過去ログ倉庫に格納されています
2023/05/04(木) 07:49:56.33ID:z+qB+AKQ
204デフォルトの名無しさん
2023/05/07(日) 15:41:53.17ID:zx4D7i6q とするとC++とPythonの下位は全く同じアルゴリズムを使っているが、
C++の言語性能のおかげで2500msに収まっている
考えてることが同じ人間でそう変わるわけもない
C++の言語性能のおかげで2500msに収まっている
考えてることが同じ人間でそう変わるわけもない
205デフォルトの名無しさん
2023/05/07(日) 15:43:48.79ID:/r7DBuOd まともにプログラミングができる人ならばC++かRustもやるだろうしな
高速さと省メモリで他の言語とはまるで違う
このスレになぜかJavaのほうが速いと主張してる一匹いるが
高速さと省メモリで他の言語とはまるで違う
このスレになぜかJavaのほうが速いと主張してる一匹いるが
206デフォルトの名無しさん
2023/05/07(日) 15:46:07.10ID:/r7DBuOd 効率の良いプログラムを書けない人はAI代替でいいから不要となるんじゃないか
C++とRustだけが残りそうだ
C++とRustだけが残りそうだ
207デフォルトの名無しさん
2023/05/07(日) 15:47:17.20ID:ms6+oRxa e問題を見れば分かるけどおそらく出題内容をベタにそのままプログラムすると遅くなる
c++の人たちはそんなことはしてないと思う
c++の人たちはそんなことはしてないと思う
208デフォルトの名無しさん
2023/05/07(日) 15:48:14.10ID:ms6+oRxa いいすぎかな
実際自分は解いてないで雰囲気で言ってるだけだから的外れかもしれない
実際自分は解いてないで雰囲気で言ってるだけだから的外れかもしれない
209デフォルトの名無しさん
2023/05/07(日) 15:57:11.39ID:zx4D7i6q 後は手元でのコンパイル時間だろうか
gccとrustcでせいぜい100行200行のコード、コンパイル時間に差が出るとも思えないが
100倍も違ったらさすがに競技プログラミングでは忌避されるがそうじゃあないでしょう
そして書いてすぐ試せるとなるとpythonとかになる
にも関わらずRuby利用者がいないのは悲惨としか言いようがない
gccとrustcでせいぜい100行200行のコード、コンパイル時間に差が出るとも思えないが
100倍も違ったらさすがに競技プログラミングでは忌避されるがそうじゃあないでしょう
そして書いてすぐ試せるとなるとpythonとかになる
にも関わらずRuby利用者がいないのは悲惨としか言いようがない
210デフォルトの名無しさん
2023/05/07(日) 16:01:14.86ID:0+o01IGu 競プロに限らず無駄な効率悪いプログラムを書くプログラマーが溢れてる
そいつらで十分な分野はAIで置き換わるのたろう
ちゃんと考えて効率良いプログラムを書けるプログラマーならC++でもRustでも会得すぐだしな
そいつらで十分な分野はAIで置き換わるのたろう
ちゃんと考えて効率良いプログラムを書けるプログラマーならC++でもRustでも会得すぐだしな
211デフォルトの名無しさん
2023/05/07(日) 16:03:17.49ID:ms6+oRxa pythonは有名ライブラリ内でavx512使ってたりする
コードが寄贈されたりしてる
コードが寄贈されたりしてる
212デフォルトの名無しさん
2023/05/07(日) 16:20:26.96ID:zx4D7i6q あとはCargoと競技プログラミングの相性だろうか
213デフォルトの名無しさん
2023/05/07(日) 17:00:28.41ID:ZuSoPChd 連休最終日だというのにお前らは
214デフォルトの名無しさん
2023/05/07(日) 17:27:29.15ID:IEgposGn >>206
効率の良いプログラムもAIが書いてくれるようになる
効率の良いプログラムもAIが書いてくれるようになる
215デフォルトの名無しさん
2023/05/07(日) 17:44:09.69ID:eOzMHQ5G216デフォルトの名無しさん
2023/05/07(日) 18:06:36.61ID:+pQ1lZnP >>131 みれば、平均したらRustのほうがC++より速いだろ
それどころか、平均したらC++はPythonにも負けてそうだぞ
それどころか、平均したらC++はPythonにも負けてそうだぞ
217デフォルトの名無しさん
2023/05/07(日) 18:07:20.74ID:+pQ1lZnP Pythonクソ速いな
C++より速いな
C++より速いな
218デフォルトの名無しさん
2023/05/07(日) 18:10:02.13ID:TRA1GHWk boxプロットも読めない奴がいるなw
219デフォルトの名無しさん
2023/05/07(日) 18:11:19.92ID:+pQ1lZnP んなもん読まんでええのや
220デフォルトの名無しさん
2023/05/07(日) 18:31:40.13ID:N703An5k221デフォルトの名無しさん
2023/05/07(日) 18:36:12.26ID:eOzMHQ5G222デフォルトの名無しさん
2023/05/07(日) 18:42:35.09ID:+pQ1lZnP C++がウェブ界に進軍したら、お前らみんな無職だぞ
C++のパワーをまざまざと見せつけられ、しょんベンチビルと思うわ
C++のパワーをまざまざと見せつけられ、しょんベンチビルと思うわ
223デフォルトの名無しさん
2023/05/07(日) 18:43:59.40ID:+pQ1lZnP それにしてもPython速いな
中にRust入ってるのと違うやろな
中にRust入ってるのと違うやろな
224デフォルトの名無しさん
2023/05/07(日) 20:06:09.85ID:IEgposGn225デフォルトの名無しさん
2023/05/07(日) 20:18:49.70ID:mxXhCe04 工夫すれば1行分(+電球とブロックの位置)の記憶だけで解けるのか
H,Wが1500以下でメモリ制限1024MBだとH=~Wの確保も許容範囲だからそこで差がつきそう
解答者全体のレベルがよく分からないけどPythonにもガチ勢がいただけでしょ
H,Wが1500以下でメモリ制限1024MBだとH=~Wの確保も許容範囲だからそこで差がつきそう
解答者全体のレベルがよく分からないけどPythonにもガチ勢がいただけでしょ
226デフォルトの名無しさん
2023/05/07(日) 20:20:12.61ID:eOzMHQ5G >>224
パターンはその通りで得意
しかしそこからの帰納法が無理
例えば素数を多数知っているがそこから素数の性質特徴を理解するのは無理
ただし学習として素数の性質特徴はわかるしプログラムも多数転がってるのでわかるだろう
でもそれじゃダメだ
未知のもの(初めてのもの)に対して出来ないといけない
パターンはその通りで得意
しかしそこからの帰納法が無理
例えば素数を多数知っているがそこから素数の性質特徴を理解するのは無理
ただし学習として素数の性質特徴はわかるしプログラムも多数転がってるのでわかるだろう
でもそれじゃダメだ
未知のもの(初めてのもの)に対して出来ないといけない
227デフォルトの名無しさん
2023/05/07(日) 20:42:06.12ID:IEgposGn >>226
そういうことができるプログラマ以外いらなくなりそうだよね
そういうことができるプログラマ以外いらなくなりそうだよね
>>226
素数に関して突っ込んでいえば、素数の定義と素数の性質=すべての自然数は素数の積で一意に表現できる、との間には大きなギャップがあるのに、それがあまり意識されていないのが問題
素数に関して突っ込んでいえば、素数の定義と素数の性質=すべての自然数は素数の積で一意に表現できる、との間には大きなギャップがあるのに、それがあまり意識されていないのが問題
229デフォルトの名無しさん
2023/05/07(日) 21:25:03.91ID:/qC6ccnK230デフォルトの名無しさん
2023/05/07(日) 21:34:18.83ID:IEgposGn231デフォルトの名無しさん
2023/05/07(日) 22:10:30.80ID:HMVW7dad バイアスがあった可能性を否定できない っていうんなら逆方向も否定できないだろうに、なんでこのおじいちゃんは片方にだけ肩入れするん?
不自然ですよ
不自然ですよ
232デフォルトの名無しさん
2023/05/08(月) 00:59:11.95ID:abS4z/F4 最大の問題は rustの利用者が何でこんなに少ないかだな
ただ これには複案があって おそらくは C ++から 移ってきたやつらがrustをやってると思われる
すると rustの標榜する モットーにも合致すると思われる
ただ これには複案があって おそらくは C ++から 移ってきたやつらがrustをやってると思われる
すると rustの標榜する モットーにも合致すると思われる
233デフォルトの名無しさん
2023/05/08(月) 01:13:16.38ID:abS4z/F4 もう出ている通りに この問題を最速で解く 機械語 は存在するので
あと疑うべきは 入出力のオーバーヘッドだけになる
メインのアルゴリズム やら ロジック やらが同じなら
遅くしている要因は 入出力だ
あと疑うべきは 入出力のオーバーヘッドだけになる
メインのアルゴリズム やら ロジック やらが同じなら
遅くしている要因は 入出力だ
234デフォルトの名無しさん
2023/05/08(月) 01:15:13.32ID:ddy6A8qL235デフォルトの名無しさん
2023/05/08(月) 02:06:52.10ID:A57Tkf07 C++のほうが機能が多いので、使える人はC++を使うからだろ
236デフォルトの名無しさん
2023/05/08(月) 02:33:43.51ID:ocGLFPvg 機能の差の比較は難しいが
言語自体で様々な安全保証をするRustの機能が本質的に大きいかな
言語自体で様々な安全保証をするRustの機能が本質的に大きいかな
237デフォルトの名無しさん
2023/05/08(月) 02:37:25.24ID:A57Tkf07 C/C++の90%のコードが危険というような話は
9割が20年以上前に書かれているだけで
最近のマナーで書けば済む話では
9割が20年以上前に書かれているだけで
最近のマナーで書けば済む話では
238デフォルトの名無しさん
2023/05/08(月) 03:00:18.94ID:ocGLFPvg IT大手各社が揃って同じ判断をした
C++では無理なので新たなシステムからRustを採用
そしてRust Foundationを共同で立ち上げた
さらに既存のWindows、Linux、AndroidなどもRustの採用を開始
C++では無理なので新たなシステムからRustを採用
そしてRust Foundationを共同で立ち上げた
さらに既存のWindows、Linux、AndroidなどもRustの採用を開始
239デフォルトの名無しさん
2023/05/08(月) 03:33:40.76ID:A57Tkf07 そんなこと言ったらJavaの採用も開始してるしC/C++なんか大昔から採用を開始してるだろ
240デフォルトの名無しさん
2023/05/08(月) 03:48:41.01ID:42N5+bFw 非GC言語として絶対的な王道を確立したC++が存在するにも関わらず、
新たな部分からC++ではなくRustを採用し始めたことに重い意味があるのでしょう。
しかも競合ライバル同士が同じ判断をした点も非常に重い意味があるのでしょう。
そのため正しい判断をした可能性が極めて高いでしょう。
新たな部分からC++ではなくRustを採用し始めたことに重い意味があるのでしょう。
しかも競合ライバル同士が同じ判断をした点も非常に重い意味があるのでしょう。
そのため正しい判断をした可能性が極めて高いでしょう。
241デフォルトの名無しさん
2023/05/08(月) 04:02:39.80ID:yn6KTAlC C++は死ぬべきだけど、後釜がRustでいいかはわからんわ
コストかけて置き換えるなら最高の言語がいいしな
コストかけて置き換えるなら最高の言語がいいしな
242デフォルトの名無しさん
2023/05/08(月) 04:21:48.93ID:c35xMa4f Rustの書きやすさは気に入ったね
次の言語はコンパイラが様々な保証をする点を押さえた上で、Rustが取り込めないような別の新たな画期的な機能を持たないといけない
他に芽が現状ないからこのままRustで進みそう
次の言語はコンパイラが様々な保証をする点を押さえた上で、Rustが取り込めないような別の新たな画期的な機能を持たないといけない
他に芽が現状ないからこのままRustで進みそう
243デフォルトの名無しさん
2023/05/08(月) 04:29:17.13ID:PP0yxCHU この流れなら言える
cpp2を知らなかったなんて言えない
cpp2を知らなかったなんて言えない
244デフォルトの名無しさん
2023/05/08(月) 08:23:06.69ID:eWwLSdkD 実際のところ、将来的に最適化はAIがやるようになって、要件定義と検証だけ人間がやるようになるんだろ。
設計自動化の流れだわな。
そうなってくると実装を人間がやる状況は限定されて、言語もIDLみたいになってくるかと。土方コーダーは全滅だな。
まぁ、c++はCOBOLみたいに過去資産メンテに、Rustはpostscriptみたいにバックエンドで生き残る可能性はあるけど。
設計自動化の流れだわな。
そうなってくると実装を人間がやる状況は限定されて、言語もIDLみたいになってくるかと。土方コーダーは全滅だな。
まぁ、c++はCOBOLみたいに過去資産メンテに、Rustはpostscriptみたいにバックエンドで生き残る可能性はあるけど。
245デフォルトの名無しさん
2023/05/08(月) 09:34:04.39ID:mYRj0CUt >>244
AIにとっても機械語を直接吐くのは保守性が悪すぎる
一方で少なくとも当面は人間が検証できる既存のプログラミング言語になりそう
万が一の時の対応や問題把握のためにも既存の言語が良さそう
インフラは人間がある程度把握し続けないとAIに主導権を奪われかねない点でも同じ
使われる言語は自動的に色々と保証されるRustになるのかな
AIにとっても機械語を直接吐くのは保守性が悪すぎる
一方で少なくとも当面は人間が検証できる既存のプログラミング言語になりそう
万が一の時の対応や問題把握のためにも既存の言語が良さそう
インフラは人間がある程度把握し続けないとAIに主導権を奪われかねない点でも同じ
使われる言語は自動的に色々と保証されるRustになるのかな
246デフォルトの名無しさん
2023/05/08(月) 10:33:58.34ID:faKRd8TS 人命や経済損失に大きく関わるシステムは責任や論理的な信頼性の観点からAIに頼るのは無理そうだね。
247デフォルトの名無しさん
2023/05/08(月) 10:45:11.11ID:iczXOFhv AIはTDD(人間がテストコード書いてAIが実装コード書く)と相性いいかなって思ったけど
絶妙にテストケースだけパスするようなコード吐いてきそうで怖い
人間的な一般化パターンを学習すれば使えそうだけど現状だとコピペミキサーでしょ
絶妙にテストケースだけパスするようなコード吐いてきそうで怖い
人間的な一般化パターンを学習すれば使えそうだけど現状だとコピペミキサーでしょ
248デフォルトの名無しさん
2023/05/08(月) 11:29:16.24ID:Kh0HUP9F AIがどうとか関係無いはずなんだが
Rustのここがダメ!みたいなことを書くと必死でレスしてくれる人がいるから無限に話を脱線させることができるんだね
Rustのここがダメ!みたいなことを書くと必死でレスしてくれる人がいるから無限に話を脱線させることができるんだね
249デフォルトの名無しさん
2023/05/08(月) 11:46:17.60ID:PotcPEgC .gitignore に Cargo.lock を入れてるのに
cargo publish すると Cargo.lock もうpされる
github の方にはもちろんうpされていない
cargo publish --allow-dirty は本気で要らないものまでうpされるからこれはやってないのだが
cargo publish すると Cargo.lock もうpされる
github の方にはもちろんうpされていない
cargo publish --allow-dirty は本気で要らないものまでうpされるからこれはやってないのだが
250デフォルトの名無しさん
2023/05/08(月) 12:11:03.58ID:Re0hEQKj AIに書いてもらうプログラミング言語はC++かRustになるんだろうが、
C++でプログラムの本質でない部分の隙を残すよりも、
コンパイルが通れば静的にその部分が自動検証されるRustになるんだろうな
C++でプログラムの本質でない部分の隙を残すよりも、
コンパイルが通れば静的にその部分が自動検証されるRustになるんだろうな
251デフォルトの名無しさん
2023/05/08(月) 12:16:11.80ID:PotcPEgC >>174
すばらC洞察
すばらC洞察
252デフォルトの名無しさん
2023/05/08(月) 12:31:11.67ID:B7yn02Wa253デフォルトの名無しさん
2023/05/08(月) 12:43:44.96ID:PotcPEgC254デフォルトの名無しさん
2023/05/08(月) 12:43:46.40ID:iczXOFhv >>249
内部で呼ばれるcargo packageの仕様っぽいね
https://doc.rust-lang.org/cargo/commands/cargo-package.html
の2.でCargo.lockを含める条件が書かれてる
excludeで強引に外せるのかな
内部で呼ばれるcargo packageの仕様っぽいね
https://doc.rust-lang.org/cargo/commands/cargo-package.html
の2.でCargo.lockを含める条件が書かれてる
excludeで強引に外せるのかな
255デフォルトの名無しさん
2023/05/08(月) 12:48:52.30ID:PotcPEgC >>228
全ての素数の積でπを造る公式あるな
全ての素数の積でπを造る公式あるな
256デフォルトの名無しさん
2023/05/08(月) 12:50:45.02ID:PotcPEgC257デフォルトの名無しさん
2023/05/08(月) 12:56:17.27ID:yn6KTAlC Rustの検証や推論ってAIの役に立つか?というか役に立つようなAIを作るべきか?
それらもコンパイラではなくAIが判断するようにしたほうがよくないか?
それらもコンパイラではなくAIが判断するようにしたほうがよくないか?
258デフォルトの名無しさん
2023/05/08(月) 12:57:11.50ID:PotcPEgC thx!
259デフォルトの名無しさん
2023/05/08(月) 13:48:29.03ID:imilCHLn 今話題になってるAIは緻密な整合性検証できるというよりも、人間の雑な問いに「らしい」答えを返してくれる感じだから、コンパイラ側の緻密な推論とかは引き続きやっていく必要あんじゃねえの。
260デフォルトの名無しさん
2023/05/08(月) 14:22:47.81ID:yn6KTAlC261デフォルトの名無しさん
2023/05/08(月) 15:04:56.15ID:eTYn8zaL >>245
AIにRustのコード吐かせる理由なんて無いよね
AIにRustのコード吐かせる理由なんて無いよね
262デフォルトの名無しさん
2023/05/08(月) 15:39:48.45ID:pZhRtbOb Rust急進派によると、rustcをパスするコードは自動的に与信できるらしいので
263デフォルトの名無しさん
2023/05/08(月) 15:42:47.04ID:QcAzVd3l 速度は、1%位の差になってくると、コンパイラの最適化能力に依存するが、
Rustはrustcの強力なLLVMを使っているのに、C++は、LLVMのclangを
使えばいいのになぜかgccを使っていたりするのもおかしい。
Rustはrustcの強力なLLVMを使っているのに、C++は、LLVMのclangを
使えばいいのになぜかgccを使っていたりするのもおかしい。
264デフォルトの名無しさん
2023/05/08(月) 16:19:16.98ID:SySGd/wN265デフォルトの名無しさん
2023/05/08(月) 16:35:56.27ID:x8c+D5IZ >>263
llvmの方がgccより性能良くなった?
llvmの方がgccより性能良くなった?
266デフォルトの名無しさん
2023/05/08(月) 16:41:27.47ID:NDGne9Ur >>265
12年前から既にclangの方が速いです:
https://stackoverflow.com/questions/3187414/clang-vs-gcc-which-produces-faster-binaries
12年前から既にclangの方が速いです:
https://stackoverflow.com/questions/3187414/clang-vs-gcc-which-produces-faster-binaries
267デフォルトの名無しさん
2023/05/08(月) 17:24:13.85ID:dxF1xGv4 >>264
仕様を自分で書く
仕様を満たしてるかどうかを確認するテストを機械に書かせる
テストが正しいがどうか人間がレビューする
テストをパスするコードを機械に書かせる
この繰り返し
機械にやらせてるところは今はベンダーに外注してる作業
抽象度が低くパターン化しやすい仕事ほど高い信頼度で機械化しやすい
仕様を自分で書く
仕様を満たしてるかどうかを確認するテストを機械に書かせる
テストが正しいがどうか人間がレビューする
テストをパスするコードを機械に書かせる
この繰り返し
機械にやらせてるところは今はベンダーに外注してる作業
抽象度が低くパターン化しやすい仕事ほど高い信頼度で機械化しやすい
268デフォルトの名無しさん
2023/05/08(月) 18:43:10.50ID:A57Tkf07 >>266
その手の話は信用ならねえな
その手の話は信用ならねえな
269デフォルトの名無しさん
2023/05/08(月) 20:09:42.31ID:tptm3XCm270デフォルトの名無しさん
2023/05/08(月) 22:23:28.00ID:Sk4xBlmq271デフォルトの名無しさん
2023/05/08(月) 22:48:34.95ID:23L22zMg そんな上位の仕様を渡すだけで内部設計も何でも自動でやってくれるAIは当分来ない
学習して曖昧パターンで答えてくれる方のAIは論理的思考がまるでダメ
論理的な方のAIは厳密に指定し尽くさないと適当に補完してやってくれない
根本的に180度違うから融合の見通しもない
学習して曖昧パターンで答えてくれる方のAIは論理的思考がまるでダメ
論理的な方のAIは厳密に指定し尽くさないと適当に補完してやってくれない
根本的に180度違うから融合の見通しもない
272デフォルトの名無しさん
2023/05/09(火) 02:35:37.18ID:roDNqhiB 公開したcrateの要らなくなった古いバージョンとか消したくても消せないのか
githubよりタチが悪いな
他から参照してると仕方ないのが判るが
管理システムとして破綻してないかこれ
githubよりタチが悪いな
他から参照してると仕方ないのが判るが
管理システムとして破綻してないかこれ
273デフォルトの名無しさん
2023/05/09(火) 02:55:17.89ID:oJhOeTc4 yank
274デフォルトの名無しさん
2023/05/09(火) 03:40:24.06ID:LWOtm1Dy >>268
gccとclangのどちらの最適化が優れているかは誰にも分からないので、
その影響をなくすためにも、rustc と 比較すべきは gcc ではなく、clang
ということになるわけです。なので、今後ベンチマークを取る際には、
rustc vs clang で行かないと意味が有りません。
gccとclangのどちらの最適化が優れているかは誰にも分からないので、
その影響をなくすためにも、rustc と 比較すべきは gcc ではなく、clang
ということになるわけです。なので、今後ベンチマークを取る際には、
rustc vs clang で行かないと意味が有りません。
275デフォルトの名無しさん
2023/05/09(火) 06:12:08.21ID:CM93Ewnl そのように同じくLLVMを使ってコンパイルしても
>>178のように言語仕様が原因でC++が遅くなりRustが速くなる事例があるんだよな
>>178のように言語仕様が原因でC++が遅くなりRustが速くなる事例があるんだよな
276デフォルトの名無しさん
2023/05/09(火) 07:51:20.97ID:roDNqhiB yankしても消えないやん?
277デフォルトの名無しさん
2023/05/09(火) 08:28:08.83ID:cNhnBb7C いくらC++が速いといっても、ちゃんと書かないと速度は出ない
当たり前の事実と向き合うべき時期が来ているようだなw
当たり前の事実と向き合うべき時期が来ているようだなw
278デフォルトの名無しさん
2023/05/09(火) 09:22:12.89ID:E9TE6Urv プログラミングは能力差が激しいからな
C++を使おうが遅いプログラムが出来上がってしまう人たちも多いが本人自身はなかなか気付けない
Rustだとそれが顕著に出るのでわかりやすい
入門初期は仕方ないがその後もRustを難しいとか面倒とか言ってる人たちは能力の低いプログラマーだけ
C++を使おうが遅いプログラムが出来上がってしまう人たちも多いが本人自身はなかなか気付けない
Rustだとそれが顕著に出るのでわかりやすい
入門初期は仕方ないがその後もRustを難しいとか面倒とか言ってる人たちは能力の低いプログラマーだけ
279デフォルトの名無しさん
2023/05/09(火) 10:03:50.18ID:MyUREp4F vec!とか使い捲ってると便利過ぎて
コピーされてるのか所有者移動してるのか意識してない人は遅くなりがち
コピーされてるのか所有者移動してるのか意識してない人は遅くなりがち
280デフォルトの名無しさん
2023/05/09(火) 10:17:59.79ID:DWbeMcsH とフィボナッチイテレータより高度なプログラムが書けない人が申しております
281デフォルトの名無しさん
2023/05/09(火) 10:29:01.80ID:VcsuRebp282デフォルトの名無しさん
2023/05/09(火) 11:12:55.99ID:MyUREp4F >vec!はベクタ初期化時のみに用いられるマクロにすぎずそんな問題はない
doubt
>値一つ指定でN個を初期化するにはClone以外に方法はない
doubt
>まあClone回避パターンもありRustは完璧だ
doubt
よくこんな短文で嘘ばかりかけるな
doubt
>値一つ指定でN個を初期化するにはClone以外に方法はない
doubt
>まあClone回避パターンもありRustは完璧だ
doubt
よくこんな短文で嘘ばかりかけるな
283デフォルトの名無しさん
2023/05/09(火) 11:27:29.07ID:5GLz9i7j 複オジにいちいち突っ込んでたらキリがないぞ
騙されそうな奴がいなければほっとけばいい
騙されそうな奴がいなければほっとけばいい
284デフォルトの名無しさん
2023/05/09(火) 11:41:48.76ID:aPAF6NA5 オジ使いの人は否定はしても理由も正解も書かないからどっちが正しいのかいつもわからん
285デフォルトの名無しさん
2023/05/09(火) 12:08:20.62ID:By46q85D オジオジ言ってる人は間違いも多いけど偶然あってるときもあるぞ
適当に聞き流しとけ
適当に聞き流しとけ
286デフォルトの名無しさん
2023/05/09(火) 12:19:41.76ID:DWbeMcsH な、単発だろ
287デフォルトの名無しさん
2023/05/09(火) 12:27:45.30ID:DWbeMcsH プログラミング言語に使われる人になってはいけない
プログラミング言語を使える人になりなさい
プログラミング言語を使える人になりなさい
288デフォルトの名無しさん
2023/05/09(火) 13:50:33.38ID:TWnpopnf >>275
ですが、LLVMの最適化層は、メモリー領域が重なっているかどうかを解析する
機能も持っていますから、noaliasを明示的に付けなくても、最適化層が
自動的にnoalias相当の属性を付けてくれる場合も有り、そうなれば、
同じ程度に最適化されます。
C 言語の register 属性を付けなくても今のコンパイラは変数を自動的にレジスタ
に割り当てるのと似たようなことです。
飽くまでも補助情報です。
ですが、LLVMの最適化層は、メモリー領域が重なっているかどうかを解析する
機能も持っていますから、noaliasを明示的に付けなくても、最適化層が
自動的にnoalias相当の属性を付けてくれる場合も有り、そうなれば、
同じ程度に最適化されます。
C 言語の register 属性を付けなくても今のコンパイラは変数を自動的にレジスタ
に割り当てるのと似たようなことです。
飽くまでも補助情報です。
289デフォルトの名無しさん
2023/05/09(火) 14:18:30.40ID:qRADqwfY >>288
残念ながら一般的な場合にはその解析が不可能
そのためC言語はrestrictキーワードの指定の有無がそのまま最適化の有無に繋がる
このnoaliasによる最適化はベクトル化にも繋がるため実効果も大きい
Rustの可変参照は常にnoaliasとなりLLVMへその情報が伝わるため有利
残念ながら一般的な場合にはその解析が不可能
そのためC言語はrestrictキーワードの指定の有無がそのまま最適化の有無に繋がる
このnoaliasによる最適化はベクトル化にも繋がるため実効果も大きい
Rustの可変参照は常にnoaliasとなりLLVMへその情報が伝わるため有利
290デフォルトの名無しさん
2023/05/09(火) 14:27:49.18ID:TWnpopnf291デフォルトの名無しさん
2023/05/09(火) 14:49:54.81ID:qRADqwfY >>290
もちろんLLVMが解析で見つけ出すケースもゼロではないだろう
実際にはC言語でrestrict指定のコードを書くか否かで最適化の有無となっている現実が多々ある
つまり各言語はnoalias情報をLLVMへ渡したほうが確実に有利だ
C++は言語仕様にないが各コンパイラの独自拡張を使えば指定可能
もちろん無闇に指定してよいわけではなく確実にnoaliasと判断できる場合でないと動作不良を引き起こす
Rustは言語仕様によりデータ競合を起こさないよう可変参照が排他的になるため確実にnoaliasがLLVMに渡る
もちろんLLVMが解析で見つけ出すケースもゼロではないだろう
実際にはC言語でrestrict指定のコードを書くか否かで最適化の有無となっている現実が多々ある
つまり各言語はnoalias情報をLLVMへ渡したほうが確実に有利だ
C++は言語仕様にないが各コンパイラの独自拡張を使えば指定可能
もちろん無闇に指定してよいわけではなく確実にnoaliasと判断できる場合でないと動作不良を引き起こす
Rustは言語仕様によりデータ競合を起こさないよう可変参照が排他的になるため確実にnoaliasがLLVMに渡る
292デフォルトの名無しさん
2023/05/09(火) 15:08:56.17ID:oJhOeTc4 https://stackoverflow.com/questions/57259126/why-does-the-rust-compiler-not-optimize-code-assuming-that-two-mutable-reference
だいたいそんな感じなんだけど実際にはバグったせいで付けたり外したりしてしてます
だいたいそんな感じなんだけど実際にはバグったせいで付けたり外したりしてしてます
293デフォルトの名無しさん
2023/05/09(火) 15:10:24.05ID:TWnpopnf294デフォルトの名無しさん
2023/05/09(火) 15:21:42.16ID:GHMOM/oZ >>292
バグが見つかったのはLLVM側ね
Rustが常にnoaliasをLLVMへ指定してくるようになって
適用事例が増えてLLVMのバグが発覚できた感じ
そしてLLVM側がバグ改修中にRust側は一時的にnoaliasの指定をオフした話だね
バグが見つかったのはLLVM側ね
Rustが常にnoaliasをLLVMへ指定してくるようになって
適用事例が増えてLLVMのバグが発覚できた感じ
そしてLLVM側がバグ改修中にRust側は一時的にnoaliasの指定をオフした話だね
295デフォルトの名無しさん
2023/05/09(火) 16:23:47.59ID:oJhOeTc4 重要なのは犯人捜しではなく
「可変参照は常にnoaliasとなり」は嘘だということです
「可変参照は常にnoaliasとなり」は嘘だということです
296デフォルトの名無しさん
2023/05/09(火) 16:57:31.86ID:qRADqwfY >>293
Cではプログラマーがrestrict指定した箇所だけコンパイラがLLVMへnoalias指定する
C++ではプログラマーがコンパイラ独自拡張__restrict指定した箇所だけLLVMへnoalias指定される
言語仕様によりC/C++コンパイラがnoaliasを自動付与することはできない
C/C++プログラマーが安全に適用できると判断した時だけ自己責任でrestrict指定することになる
Rustは言語仕様により常に安全に自動的にコンパイラがLLVMへnoalias指定する
そのためRustプログラマーは何もしなくてもnoaliasによる最適化の恩恵を受けることができる
これが根本的な違い
Cではプログラマーがrestrict指定した箇所だけコンパイラがLLVMへnoalias指定する
C++ではプログラマーがコンパイラ独自拡張__restrict指定した箇所だけLLVMへnoalias指定される
言語仕様によりC/C++コンパイラがnoaliasを自動付与することはできない
C/C++プログラマーが安全に適用できると判断した時だけ自己責任でrestrict指定することになる
Rustは言語仕様により常に安全に自動的にコンパイラがLLVMへnoalias指定する
そのためRustプログラマーは何もしなくてもnoaliasによる最適化の恩恵を受けることができる
これが根本的な違い
297デフォルトの名無しさん
2023/05/09(火) 17:04:50.38ID:9RO9lVT1 コンパイラに撃墜されてるRustプログラマもいるから「何もしなくても」は言い過ぎだな
298デフォルトの名無しさん
2023/05/09(火) 17:08:17.41ID:qRADqwfY >>295
現在はLLVMがバグ対応したため常にnoalias指定となる
もちろん意図的にバグ未対応の古いバージョンのLLVMを指定したときを除く
その場合にRustコンパイラはnoaliasを指定しないという安全な動作をする
現在はLLVMがバグ対応したため常にnoalias指定となる
もちろん意図的にバグ未対応の古いバージョンのLLVMを指定したときを除く
その場合にRustコンパイラはnoaliasを指定しないという安全な動作をする
299デフォルトの名無しさん
2023/05/09(火) 17:09:31.38ID:oJhOeTc4 そんでいったい何nsec早くなるんですか?ってな
些細すぎる点です
些細すぎる点です
300デフォルトの名無しさん
2023/05/09(火) 17:30:52.58ID:JrSVS9vw Rustならテキトー書いても速くなる…はさすがに夢見すぎだろう (やってないので)しらんけど
301デフォルトの名無しさん
2023/05/09(火) 17:33:18.67ID:d0WXtuj5 おそらくだけど最適化が利いたとしてもベンチとかでは0.01%も速度は速くならないと思うけどな
302デフォルトの名無しさん
2023/05/09(火) 17:35:11.58ID:d0WXtuj5 普通にコードを書く限り一般的な速度は
c<c++<rust何だろ
でもそんなのにこだわって言語選ぶ意味はないよ
c<c++<rust何だろ
でもそんなのにこだわって言語選ぶ意味はないよ
303デフォルトの名無しさん
2023/05/09(火) 17:49:39.63ID:d0WXtuj5 速度じゃないわな
実行時間だ
速度だと
c > c++ > rust
実行時間だ
速度だと
c > c++ > rust
304デフォルトの名無しさん
2023/05/09(火) 21:13:21.70ID:jpsGavbj >>300
Rustは適当に書いたらコンパイル通らない。
Rustは適当に書いたらコンパイル通らない。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国外務省局長 「ポケットに手を入れていたのは寒いから」 日本との局長級会談で [お断り★]
- 【速報】中国外務省報道官 高市首相発言撤回なければ「断固たる対抗措置」 ★3 [蚤の市★]
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★7 [ぐれ★]
- 中国、日本行き“50万人”キャンセル 渡航自粛でコロナ禍以来最大 ★3 [お断り★]
- 【国際】ロシアはすでに戦争準備段階――ポーランド軍トップが警告 [ぐれ★]
- 【速報】日本産牛肉の対中国輸出再開協議が中止 ★2 [おっさん友の会★]
- 【実況】博衣こよりのえちえちフログロ学力テスト🧪★4
- 【実況】博衣こよりのえちえちフログロ学力テスト🧪★3
- 【悲報】吉兆ささやき女将(頭が真っ白になって)高市早苗「頭が真っ白になって・・・」 [616817505]
- 【朗報】高市経済ブレーン「経済対策の執行で来春には内需が大復活。3月頃利上げ可能に」 [237216734]
- 【高市早苗】習近平、本気で激おこ [115996789]
- 【高市有事】高市早苗が就任一ヶ月でやったこと一覧wwwwwwwwwwwwwww [603416639]
