2ちゃんねる スマホ用 ■掲示板に戻る■ 全部 1- 最新50    

Rust part17

1 :デフォルトの名無しさん:2022/10/06(木) 22:43:13.96 ID:Re0G7B20.net
公式
https://www.rust-lang.org/
https://blog.rust-lang.org/
https://github.com/rust-lang/rust

Web上の実行環境
https://play.rust-lang.org

日本語の情報
https://rust-jp.rs/

※Rustを学びたい人はまず最初に公式のThe Bookを読むこと
https://doc.rust-lang.org/book/

※Rustを学ぶ際に犯しがちな12の過ち
https://dystroy.org/blog/how-not-to-learn-rust

※Rustのasyncについて知りたければ「async-book」は必読
https://rust-lang.github.io/async-book/

※次スレは原則>>980が立てること

前スレ
Rust part16

942 :デフォルトの名無しさん:2022/12/09(金) 14:08:27.79 ID:3DNXTGzR.net
>>934
>コンピュータの速度は加重平均なんていう単純なもんではない
加重平均である事と、単純である事は同じことでは無い。
単純ではないが、加重平均である。
実行時間 T = Σ_i w_i T_i
w_i = 処理 i に対する重みパラメータ
T_i = 処理 i に掛かる時間

w_i は、経験を積まないとわからなくて、机上の空論家はこれを誤って見積もる。
偉いとされる先生を筆頭とした「象牙の塔」の集団幻覚の様な現象が起きる。

943 :デフォルトの名無しさん:2022/12/09(金) 14:13:39.03 ID:3DNXTGzR.net
>>941
[さらに補足]
・ノードを削除してから追加する--->malloc や new が、直近に
 削除したノードのアドレスを再利用されるのでキャッシュが良く効く。
・削除したノードのメモリ・ブロックが全部使われた場合、
 malloc や new がHeapやOSから新しくアドレスを確保してくる -->
 OSは後続の連続アドレスを返してくるので、アドレスはほぼ連続
 するので、キャッシュが良く効く。

故に、実際的な使用においては、LinkedListはキャッシュがよく効く。
 
 

944 :デフォルトの名無しさん:2022/12/09(金) 14:18:24.24 ID:3DNXTGzR.net
たとえば、馬鹿な人は、通信経路においてのエラーは「ランダムに起きる」から、
「本当にランダム」のケースを脳内で勝手に想像して、
「CRC符合は一般には役に立たない」
と結論付けてしまうかも知れないが、それは机上の空論で、
実際のエラーはバースト的に起きるから、CRC符合は非常に強力に働く。
それと同様にLinkedListもキャッシュが良く効く。
なぜならノードのアドレスが「ランダム」ではないから。

945 :デフォルトの名無しさん:2022/12/09(金) 15:08:04.74 ID:gsPXBpPV.net
どっちもヤバくて草w

946 :デフォルトの名無しさん:2022/12/09(金) 16:41:02.60 ID:WiULU0Bz.net
自己完結すれば最速で完結するが
机上で完結しないことを望むなら呪術的な対価を要求されるんだよ

947 :デフォルトの名無しさん:2022/12/09(金) 17:13:50.21 ID:TeKO8AU2.net
>自己完結すれば最速で完結する
アタオカの巣窟になりつつあるな

948 :デフォルトの名無しさん:2022/12/09(金) 18:30:00.75 ID:rq1aZYl+.net
絶対にベンチマークの数値は出せないリンクリストおじさん
いつまでrustに粘着してんの

949 :デフォルトの名無しさん:2022/12/09(金) 21:16:01.37 ID:o+3mnUPM.net
馬鹿は想像力が無いから、理論から計算できない上に、仮定も間違っているから
間違った条件で実験して間違った実験結果を出して、それを信じてしまう。
Stroustrup氏もその一部。

950 :デフォルトの名無しさん:2022/12/09(金) 21:33:34.50 ID:o+3mnUPM.net
>>949
そんな馬鹿でも実際にプログラムしてる人は自分の間違いに気付くが、
彼と彼の取り巻き達はベンチマーク以外のプログラムはしないので
一生気付かない。そして自分達は実験したから正しいんだと主張し
まくって、それを信じた人類は謝った認識を持って文明の発達が遅れる。

951 :デフォルトの名無しさん:2022/12/09(金) 22:18:43.15 ID:STy7gq1K.net
真面目に言うならStroustrupの指摘したリンクリストは、愚直で安直な1要素で次を示すようなデータ構造はバカのすることで間違いない。
というかStroustrupはプログラマのために教え諭してるのに対して、自分が攻撃されたと思い込み、稀なケースで「LinkedListがArrayListより速いことがある」なんていい年してイキっててもしょうもないだろう?
「非常に近いアドレス」とか自分で参照効率が悪いことを理解してるのに、何がしたいのかサッパリわからん。ぴろゆきみたいに見えない仮想的にロンパーしたいの?
https://www.youtube.com/watch?v=YQs6IC-vgmo

ま、今ではUnrolled Linked listとか普通の配列やB-Treeなどと区別がつかない参照の局所性が大幅に向上しているものもあるから
そんなことで騒ぐのはもはやジジイの域だなあ、10年前の出来事じゃん・・・・

952 :デフォルトの名無しさん:2022/12/09(金) 22:39:25.91 ID:rOm/uTcN.net
ジジイと言うかその人は
1) 頭が悪くて
2) 経験もなくて
3) その自覚が無い
というかわいそうな存在だからあんま刺激しちゃダメ
こうなってくるとこの手のひとは
あとは粘着するだけのマシンと化すから要注意だぞみんな

953 :デフォルトの名無しさん:2022/12/10(土) 00:05:08.23 ID:s9w4cjy9.net
自己完結は悪と思ってるから他者に粘着するんでしょ

954 :デフォルトの名無しさん:2022/12/10(土) 01:32:53.73 ID:ExYz252Q.net
コンピュータサイエンスやプログラミング関連の学者は、アホばっかだからな。

955 :デフォルトの名無しさん:2022/12/10(土) 01:33:28.16 ID:CrLmIOQg.net
Rustではポインタの代わりに要素のインデックスで管理するのが基本であり安全
リストもツリーもグラフもこれで実装可能
これはポインタがない言語では当たり前のように使われていた方式
これまでが間違ってた
ポインタなどというものは数百万行とかあるプログラムで正しく使うのは無理
世界中のエンジニアがそのために苦労している
ポインタとNULLは完全に失敗

956 :デフォルトの名無しさん:2022/12/10(土) 01:36:13.33 ID:CrLmIOQg.net
ちなみにインデックス管理がゴミだったのはCみたいに配列の要素チェックがなく
生アドレスを直接触れる仕様だったせい
本来この仕様があり得ない
これならポインタの方がマシだし楽だからという理由でポインタが乱用されてきた

957 :デフォルトの名無しさん:2022/12/10(土) 01:42:29.86 ID:ExYz252Q.net
>>951
その動画のジジイはまさに馬鹿。
老害。

958 :デフォルトの名無しさん:2022/12/10(土) 01:44:30.98 ID:ExYz252Q.net
アメリカのコンピュータ学者は馬鹿。
自ら馬鹿な方法ばかり想定しているから遅いと思い込んでいる。
それを鵜呑みにしてる学生は大ばか者。

959 :デフォルトの名無しさん:2022/12/10(土) 01:46:18.37 ID:ExYz252Q.net
だからアメリカ人の作るソフトは遅い上にサイズも大きいんだな。
日本人の作るソフトはコードも小さいし、データも小さいし、速度も速い。
全然違う。
なぜなら、アメリカ人がイマジネーションが足りなくて馬鹿なのに自覚が無いから。
なのに、詐欺的手法によってアメリカ製ソフトを蔓延させた。

960 :デフォルトの名無しさん:2022/12/10(土) 01:47:54.33 ID:48CeiLls.net
ポインタてのは、CPUの汎用レジスタの
アドレッシングモードを考慮して
OSをコーディングしやすくする仕組みだから

961 :デフォルトの名無しさん:2022/12/10(土) 01:51:53.77 ID:ExYz252Q.net
>>957
おっと、こいつが、Stroustrup氏だったのか。
どうりでデタラメな事言ってると思った。まさに、彼が自書で言ってる通りの内容。
この人は計算量などを考えるイマジネーションが不足している。

962 :デフォルトの名無しさん:2022/12/10(土) 02:00:02.88 ID:ExYz252Q.net
仮に、彼の間違った仮定であるところの、リンクリストのノードのアドレスが
ランダムに近い状態だったとして(それ自体がウソの仮定なのだが)も、
キャッシュペナルティーは、一回当り20クロックほどだ。
だから、この場合、次のノードに移るのに20クロック掛かることになる。
しかし、それでも、ノード数がNの場合に、20*N クロックほどで済むから
そんなに致命的ではない。Nを100倍しても、100倍の時間がかかるだけで、
大した増加ではない。
一方、std::vectorの場合、挿入や削除一回当り、O(N)の時間が掛かるから、
N回それを繰り返すと、O(N^2)の時間が掛かる。
これは致命的で、Nを100倍すると、1万倍の時間になってしまう。
Stroustrup氏は、オーダーの考え方が経験的に身についてない。

963 :デフォルトの名無しさん:2022/12/10(土) 02:06:32.68 ID:ExYz252Q.net
>>962
[補足]
CPUの速度はこの30年間で、1コアあたりに限定しても300倍以上になっている。
良いアルゴリズムを使えば、扱うデータも300倍に増やすことが出来る。
ところが、std::vetcorを使った挿入や削除を行なっていた場合、300*300=9万倍
にクロック数が増えるから、CPUの速度がせっかく300倍になっても、300倍の
時間が掛かることになる。
一方、std::listを使った挿入や削除を行なっていた場合には、クロック数が
300倍で済むから、CPUが300倍になったことにより、時間は昔のままで済む。
つまり、std::listの場合、CPUの速度が300倍になった現在、
データを300倍に増やしても、挿入や削除が昔と同じ時間で済むのに対し、
std::vectorは、同じことをするとなんと昔の300倍の時間が掛かるということだ。

こういう基本をstroustrup氏は理解出来て無い。
探索の時間は関係無い。探索しなければいいのだから。

964 :デフォルトの名無しさん:2022/12/10(土) 02:29:35.43 ID:ExYz252Q.net
>>951
>稀なケースで「LinkedListがArrayListより速いことがある」なんていい年してイキっててもしょうもないだろう?
稀ではない。
今はCPUが速くなりすぎて実感がわかないだけ。
だから、遅いCPUでトレーニングした方が良いと言われている。

965 :デフォルトの名無しさん:2022/12/10(土) 03:06:45.22 ID:EiHCMpy7.net
プロファイルでは粘着というより、論破された時の憂さ晴らし自演が延々と続くパターン
ID:Lb4jZ7zf = ID:pMPEGjtK = ID:3DNXTGzR = ID:ExYz252Q +α
今回は ID:Mw8qZqut だな

966 :デフォルトの名無しさん:2022/12/10(土) 08:26:05.03 ID:wI0qdr5j.net
CPUが早くなったんだからRustで多少遅くなっても大丈夫

967 :デフォルトの名無しさん:2022/12/10(土) 08:49:37.65 ID:pTzP7Jq7.net
Goも大丈夫

968 :デフォルトの名無しさん:2022/12/10(土) 08:52:02.51 ID:QB2FhiiS.net
>>965
ID:Mw8qZqut だけどこの人と同一人物判定されるのは不名誉すぎるからやめてくれ

969 :デフォルトの名無しさん:2022/12/10(土) 08:54:11.81 ID:5JJKT/6S.net
>>968
そうかな?流れ的には水増し論に決着して放り投げてるよ

970 :962:2022/12/10(土) 09:12:41.82 ID:pmPytGrf.net
誤解は避けたいからいちおう書いとく

> ジジイと言うかその人は

これはもちろん連投してる哀れなID:ExYz252Qのことね
C++やハゲに文句言うとか身の程知らずもいいとこやわ

971 :デフォルトの名無しさん:2022/12/10(土) 09:19:33.69 ID:5JJKT/6S.net
>>970
その人C++スレの自称天才でRustに傾倒していてChatGPT並みに尤もらしい適当をこいている人

972 :デフォルトの名無しさん:2022/12/10(土) 09:22:07.09 ID:5JJKT/6S.net
その人自演が大好きなので ID:Mw8qZqut だとしてもおかしくない

973 :デフォルトの名無しさん:2022/12/10(土) 09:25:57.47 ID:5JJKT/6S.net
流れ的には水増しの話が再開するはずなので、ID:Mw8qZqut = >>968がどう反応するか楽しみ

974 :デフォルトの名無しさん:2022/12/10(土) 09:30:48.75 ID:pmPytGrf.net
>>971
C++スレも荒らされてるのか
自称天才の粘着力すげえな

975 :デフォルトの名無しさん:2022/12/10(土) 11:09:35.00 ID:/zXB1Eur.net
C++ vs Rust Part4建てとく?

976 :デフォルトの名無しさん:2022/12/10(土) 12:35:14.53 ID:QB2FhiiS.net
>>973
Androidのソースコード量については、
* コンパイラはカウントされていない
* 外部の依存関係はカウントされているぽい
ということで、事実関係についてはだいたい確定したのでは

977 :デフォルトの名無しさん:2022/12/10(土) 13:03:40.38 ID:f/x7hc9i.net
>>976
横からですが、その回答だと、適切かどうかに関して、はぐらかそうとしているだけでは?
論理的に考えてC++でboostを使ってhello_asioとか書いたら、
そのレポジトリの行数にboostのソースもカウントするのが適切かどうかと照らし合わせて考えて見ては?

978 :デフォルトの名無しさん:2022/12/10(土) 13:23:37.96 ID:s9w4cjy9.net
行数の正確さを保証しているのは行数をカウントするアルゴリズムの質だよ
だから、質を保証するために量を根拠にするのはもう違和感しかない

979 :デフォルトの名無しさん:2022/12/10(土) 14:01:34.35 ID:aynhf3Gg.net
>>977
目的次第やろ

使ってるライブラリも含めてそのプログラムに含まれる脆弱性をカウントする際の分母として使いたいならboostのコードをカウントするのも一つの考え方

Googleが実際にどうカウントしたかは知らんけどRustとC++を異なる条件でカウントしてるんじゃなければここで何言っても無駄だよ

980 :デフォルトの名無しさん:2022/12/10(土) 14:17:34.56 ID:CrLmIOQg.net
糖質にかまうな

981 :デフォルトの名無しさん:2022/12/10(土) 14:23:19.49 ID:++bfMBzJ.net
盲目的に現状肯定する集団には見られたくないから言うけど
個人的には誤認する人が多発するから不適切だと思うよ

>目的次第
何の目的があって依存関係のソースもカンウトするのか、AndroidのRustチームの考えを知りたい

>>979
Androidがboost依存があって、boostソースがカウントされていない場合はどうなるの?
RustとC++を異なる条件でカウントしてる、に該当するよね

>>979がいう事が正しければ、新規ネイティブコード21%の下りでも依存関係ソースの増減も含めるのが同条件なんだよね?

982 :デフォルトの名無しさん:2022/12/10(土) 14:29:10.10 ID:++bfMBzJ.net
>>980
その発言で ID:CrLmIOQg の内容全部が地に落ちたよ

983 :デフォルトの名無しさん:2022/12/10(土) 15:17:06.99 ID:hJa6mCIB.net
>>981
仮に○○なら対等な条件の比較ではないという主張は真だと思うけど、
そもそもRustとC++が異なる条件で比較されてると考える根拠はなんかあるの?

984 :デフォルトの名無しさん:2022/12/10(土) 16:30:04.48 ID:/zXB1Eur.net
行数をカウントする目的:
利用状況の度合いをバカにも分かる数字で説明するため

依存関係を含めるのが適切か?:
数字を出すのが目的なのでどちらでもよい

985 :デフォルトの名無しさん:2022/12/10(土) 17:08:17.02 ID:+r0o6+3M.net
>>981
>何の目的があって依存関係のソースもカンウトするのか、AndroidのRustチームの考えを知りたい

Rustチームとかじゃなくセキュリティ監査をするチームが計測してるんだぞ
本当に計測方法の詳細や理由が知りたいなら記事書いた本人にTwitterとかで聞けばいいよ
この辺のエンジニアは普通に答えてくれるぞ

986 :デフォルトの名無しさん:2022/12/10(土) 17:13:44.96 ID:bYLLjzjY.net
>>970
>C++やハゲに文句言うとか身の程知らずもいいとこやわ
分かってはいたが、この板はレベル低いな。

987 :デフォルトの名無しさん:2022/12/10(土) 17:50:19.42 ID:8gOJz6B3.net
次スレは平和になりますように

988 :デフォルトの名無しさん:2022/12/10(土) 17:51:40.13 ID:s9w4cjy9.net
死者の数をカウントしてみろ、平和だぞ

989 :デフォルトの名無しさん:2022/12/10(土) 21:25:51.87 ID:AuQEELto.net
Androidドメインに限定したコードの量を測るよりも、Androidに搭載されうるコードの量を測る方が適切だと思うから外部ライブラリ含んでいいんじゃね。

990 :デフォルトの名無しさん:2022/12/10(土) 22:05:26.23 ID:s9w4cjy9.net
C,C++,Rustの三者は対等として、
C/C++とかいう概念はRustと対等か?

991 :2ch.net投稿限界:Over 1000 Thread
2ch.netからのレス数が1000に到達しました。

270 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
名前: E-mail (省略可) :

read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★