公式
https://www.rust-lang.org/
https://blog.rust-lang.org/
https://github.com/rust-lang/rust
Web上の実行環境
https://play.rust-lang.org
※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 part17
https://mevius.5ch.net/test/read.cgi/tech/1665063793/
Rust part18
■ このスレッドは過去ログ倉庫に格納されています
2022/12/10(土) 18:17:02.61ID:XSNoXTPt
78デフォルトの名無しさん
2022/12/12(月) 02:09:06.83ID:gFGRqSRq 冗談きついな、別室で頑張ってね
2022/12/12(月) 02:11:40.12ID:BZoLN2AH
それおちょくってるのか、そういう組織があるとマジで思ってるのか、どつち?
80デフォルトの名無しさん
2022/12/12(月) 02:14:41.40ID:gFGRqSRq >それおちょくってるのか、そういう組織
リスクの話をしている。おちょくりでもマジでもない
リスクの話をしている。おちょくりでもマジでもない
81デフォルトの名無しさん
2022/12/12(月) 02:15:18.25ID:gFGRqSRq レピュテーションリスク
82デフォルトの名無しさん
2022/12/12(月) 02:16:26.89ID:gFGRqSRq 実態通りのレピュテーションが重要
2022/12/12(月) 02:17:58.12ID:BZoLN2AH
84デフォルトの名無しさん
2022/12/12(月) 02:20:53.27ID:gFGRqSRq そうか、スレ立て人だったか。バイバイ、面白かったよ、別室で頑張ってね
2022/12/12(月) 02:26:04.34ID:na5n8HXk
成果を数値化した側は誤解を招き、リスクを数値化しようともしない側が数学的に優位なのはまあ分かる
3.14よりもπの方が誤解がないのと同じ
3.14よりもπの方が誤解がないのと同じ
86デフォルトの名無しさん
2022/12/12(月) 02:28:14.68ID:gFGRqSRq あらら、キャラ召喚してるじゃんw
87デフォルトの名無しさん
2022/12/12(月) 02:58:18.77ID:Igq6bqVZ88デフォルトの名無しさん
2022/12/12(月) 03:05:27.82ID:gFGRqSRq そりゃどうも
89デフォルトの名無しさん
2022/12/12(月) 03:07:58.75ID:gFGRqSRq 85もキャラ変しただけだからNGしときな。
2022/12/12(月) 06:07:39.15ID:sG+NubL6
>>85
15倍の誤差だからπ=47.12って言う大暴投だからな
15倍の誤差だからπ=47.12って言う大暴投だからな
2022/12/12(月) 06:51:30.97ID:wN/j/0mR
2022/12/12(月) 07:35:06.40ID:BKVbG4TJ
2022/12/12(月) 07:35:25.61ID:T7WlM3CT
自称集団ストーカー被害者の供述と同じ
2022/12/12(月) 07:49:30.92ID:0yhb1mCe
2022/12/12(月) 16:49:32.11ID:BsuscEYz
Fedora37のLinux KernelがVer.6.0になってたから新機能なんだろってググったら6.1から遂にRustサポートされるんだね
2022/12/12(月) 23:25:53.54ID:MqOriyPq
このスレ捨て捨てよ
2022/12/13(火) 22:51:58.96ID:PZobp7zP
Android12のtokeiしたぞ計算は自分でやれ
===============================================================================
Language Files Lines Code Comments Blanks
===============================================================================
Assembly 10 1835489 1776138 61 59290
GNU Style Assembly 511 698434 666001 20331 12102
C 2269 858479 652278 119729 86472
C Header 20347 4528431 3057716 1023059 447656
C++ 17900 9289538 7491429 858792 939317
C++ Header 305 157423 120050 11387 25986
Go 805 271377 201441 35705 34231
Java 57305 14796003 9709131 3245016 1841856
JavaScript 91 25468 20400 2951 2117
Kotlin 1833 319017 225519 58641 34857
Python 3721 933286 747682 79727 105877
TypeScript 231 680201 536363 142914 924
-------------------------------------------------------------------------------
Rust 203 47094 38569 3786 4739
|- Markdown 148 4044 13 3696 335
(Total) 51138 38582 7482 5074
===============================================================================
Total 105531 34440240 25242717 5602099 3595424
===============================================================================
externalの名前が実態に同意だしそもそもexternal内はダブルカウントが多発している
===============================================================================
Language Files Lines Code Comments Blanks
===============================================================================
Assembly 10 1835489 1776138 61 59290
GNU Style Assembly 511 698434 666001 20331 12102
C 2269 858479 652278 119729 86472
C Header 20347 4528431 3057716 1023059 447656
C++ 17900 9289538 7491429 858792 939317
C++ Header 305 157423 120050 11387 25986
Go 805 271377 201441 35705 34231
Java 57305 14796003 9709131 3245016 1841856
JavaScript 91 25468 20400 2951 2117
Kotlin 1833 319017 225519 58641 34857
Python 3721 933286 747682 79727 105877
TypeScript 231 680201 536363 142914 924
-------------------------------------------------------------------------------
Rust 203 47094 38569 3786 4739
|- Markdown 148 4044 13 3696 335
(Total) 51138 38582 7482 5074
===============================================================================
Total 105531 34440240 25242717 5602099 3595424
===============================================================================
externalの名前が実態に同意だしそもそもexternal内はダブルカウントが多発している
2022/12/13(火) 23:23:57.37ID:wZtwdQkr
もっとGoがフィーチャーされてもいい
Rust 0.27%(Android13)
Rust 2.19%(rust増減/全体増減)
Rust 6.25%(rust増減/native増減)
Go 0.94%(Android13)
Go 3.14%(go増減/全体増減)
Go 8.97%(go増減/native増減)
native(C/C++,go,rust,asm)
Rust 0.27%(Android13)
Rust 2.19%(rust増減/全体増減)
Rust 6.25%(rust増減/native増減)
Go 0.94%(Android13)
Go 3.14%(go増減/全体増減)
Go 8.97%(go増減/native増減)
native(C/C++,go,rust,asm)
2022/12/13(火) 23:30:32.49ID:5abcV+yr
相関で言うと、致命的バグが減ったのはGoが増えたおかげ
100デフォルトの名無しさん
2022/12/13(火) 23:37:00.82ID:wwjAZKKd GoはNSA公認の安全志向言語だからね
101デフォルトの名無しさん
2022/12/14(水) 01:02:52.63ID:ITXTdsK+ 我が軍のリターンと我が軍のリスクを比較するべきで
味方のリターンと競争相手のリターンの差をカイゼンさせようとするのは合理的ではないと思う
味方のリターンと競争相手のリターンの差をカイゼンさせようとするのは合理的ではないと思う
102デフォルトの名無しさん
2022/12/14(水) 01:14:31.36ID:FVRGSfZv 最初から違和感があると思っていたが
元記事ではGoが何故か除外されてる
ストーリー構成に不都合だったのか
相関だと何とでも言えるんだね
元記事ではGoが何故か除外されてる
ストーリー構成に不都合だったのか
相関だと何とでも言えるんだね
103デフォルトの名無しさん
2022/12/14(水) 01:27:29.73ID:yU9uAi27 >>101
良くないね、堂々と数字のカラクリを肯定するとは
良くないね、堂々と数字のカラクリを肯定するとは
104デフォルトの名無しさん
2022/12/14(水) 01:56:11.07ID:5mkAA7Tq105デフォルトの名無しさん
2022/12/14(水) 06:45:32.23ID:RA7cvU7V106デフォルトの名無しさん
2022/12/14(水) 07:01:51.79ID:Jcr0Ea1q ストーリーの無い生データを見た実際のところ、バグデータのある期間(~android12)でのRustは高々0.13%しか無い
C++の検証ツール類の活用だったりGo活用だったりの方が圧倒的に貢献していると考えるのが普通
他言語の成果を横取りしてる印象を持ったし、データを見たマの反発を買うのも当然
C++の検証ツール類の活用だったりGo活用だったりの方が圧倒的に貢献していると考えるのが普通
他言語の成果を横取りしてる印象を持ったし、データを見たマの反発を買うのも当然
107デフォルトの名無しさん
2022/12/14(水) 07:15:30.66ID:qnQQMcYI108デフォルトの名無しさん
2022/12/14(水) 07:40:22.86ID:3cYTS+R6109デフォルトの名無しさん
2022/12/14(水) 08:29:54.62ID:RA7cvU7V110デフォルトの名無しさん
2022/12/14(水) 08:46:08.12ID:l9mIlMff111デフォルトの名無しさん
2022/12/14(水) 12:43:46.50ID:RA7cvU7V112デフォルトの名無しさん
2022/12/15(木) 18:34:29.90ID:XGuELYQs Rust自体は好きで趣味で使ってるんだけど、最近の猫も杓子もRustっていう一部の風潮には、在りし日のC++やJavaが持て囃されていた時代を思い出してしまう時がある
113デフォルトの名無しさん
2022/12/15(木) 18:53:18.12ID:4nUn5UbZ 奴隷言語ってことなのかもな
114デフォルトの名無しさん
2022/12/15(木) 19:32:12.34ID:eVXaJ4u5 同意。
趣味では楽しく使ってるけど仕事では使いたくないわ。
不具合とか新規要件とか起因で所有権周り軒並みいじる必要が出てきたりしたら泣いちゃう。
趣味では楽しく使ってるけど仕事では使いたくないわ。
不具合とか新規要件とか起因で所有権周り軒並みいじる必要が出てきたりしたら泣いちゃう。
115デフォルトの名無しさん
2022/12/15(木) 20:01:15.60ID:adPtbWG7116デフォルトの名無しさん
2022/12/15(木) 21:34:29.95ID:2hO+Mt8T 正解は一つだけのようなことは昔Pythonが標榜していたけど
違反や無視しても棒で殴られたりしなかったので普通に普及した
違反や無視しても棒で殴られたりしなかったので普通に普及した
117はちみつ餃子 ◆8X2XSCHEME
2022/12/15(木) 21:48:07.72ID:xFKc8Du5 C や C++ が駄目な部分を改定でどうにかしようとしてもツギハギだらけでますますグダグダになるばかり。
C や C++ みたい (いわゆるシステム記述言語) なことを安全にやれるように更地から設計しなおそうという試みの中では Rust は比較的よいと思うよ。
C や C++ みたい (いわゆるシステム記述言語) なことを安全にやれるように更地から設計しなおそうという試みの中では Rust は比較的よいと思うよ。
118デフォルトの名無しさん
2022/12/15(木) 23:23:09.65ID:GGhsuwM3119デフォルトの名無しさん
2022/12/15(木) 23:37:14.28ID:wuh/WyJD LinkedListってなんで使われないんですか?
VecDequeのほうが性能いいの?
VecDequeのほうが性能いいの?
120デフォルトの名無しさん
2022/12/16(金) 01:36:50.79ID:2he3/3ZS >>119 性能いいことが多いからじゃないかな。
https://www.stroustrup.com/Software-for-infrastructure.pdf
> ... Consider a simple example: generate N random integers and insert
> them into a sequence so that ...
> Now, for which N is it better to use a linked list than a
> vector (or an array) to represent the sequence? ...
> ... When I ran the experiment on my 8-Gbyte laptop, I found N to be much
> larger than 500,000. ...
https://www.stroustrup.com/Software-for-infrastructure.pdf
> ... Consider a simple example: generate N random integers and insert
> them into a sequence so that ...
> Now, for which N is it better to use a linked list than a
> vector (or an array) to represent the sequence? ...
> ... When I ran the experiment on my 8-Gbyte laptop, I found N to be much
> larger than 500,000. ...
121デフォルトの名無しさん
2022/12/16(金) 01:45:46.48ID:qUkmAe13 言語仕様はまあいんだろうけどライブラリがうんこっこ
122デフォルトの名無しさん
2022/12/16(金) 02:56:52.27ID:3ITpan43 自演か軍団かどうでも良いが纏めるぞ
>>112
息を吐く様に嘘を混ぜるのはよせ
猫も杓子も...←ウソ シンプルに分かりやすいウソ
在りし日の...←ウソ 今も昔もJava/C++の時代 + JS/Python/C#
https://i.imgur.com/xwnzvYQ.png
>>117
大人しくしてれば良いものを、そのキャラまたどぶに捨てるのか
もう終わりだよ、そのコテハン
>>117,119-121
話題のすり替え方が雑になってワンパターン
>>112
息を吐く様に嘘を混ぜるのはよせ
猫も杓子も...←ウソ シンプルに分かりやすいウソ
在りし日の...←ウソ 今も昔もJava/C++の時代 + JS/Python/C#
https://i.imgur.com/xwnzvYQ.png
>>117
大人しくしてれば良いものを、そのキャラまたどぶに捨てるのか
もう終わりだよ、そのコテハン
>>117,119-121
話題のすり替え方が雑になってワンパターン
123デフォルトの名無しさん
2022/12/16(金) 06:42:28.75ID:2Krh7+9V124デフォルトの名無しさん
2022/12/16(金) 07:28:20.01ID:YV6XWhOF >>122のデータ面白い
例えば、0.4%以下集団の慎ましさがまるで違う
Swift/Kotlin/Dart→分野に特化して第一候補、安泰
(モバイルアプリ開発は全体の中では小さいパイだけど)
Rust→システムの低レイヤー分野に特化すれば良いのに、
各方面のスキマ案件や非典型案件で、置き換え風潮だとか
吹聴するから、そこのメインストリームから反感買う
焦り過ぎ
例えば、0.4%以下集団の慎ましさがまるで違う
Swift/Kotlin/Dart→分野に特化して第一候補、安泰
(モバイルアプリ開発は全体の中では小さいパイだけど)
Rust→システムの低レイヤー分野に特化すれば良いのに、
各方面のスキマ案件や非典型案件で、置き換え風潮だとか
吹聴するから、そこのメインストリームから反感買う
焦り過ぎ
125デフォルトの名無しさん
2022/12/16(金) 07:48:14.80ID:iwbHqI4G 得意分野、スキマ案件や非典型案件、全部集めて0.30%
Rust全然キテないじゃん
Rust全然キテないじゃん
126デフォルトの名無しさん
2022/12/16(金) 08:03:19.06ID:ECVECWXD 無名の謎言語よりも強いぞ
127デフォルトの名無しさん
2022/12/16(金) 08:08:17.97ID:pYrl9qIa Rustもすぐに一巡して新規消滅まっしぐら
無名の謎言語と競うことに
どうしてこうなった?ry
無名の謎言語と競うことに
どうしてこうなった?ry
128デフォルトの名無しさん
2022/12/16(金) 11:56:22.77ID:7LaXToxn >>119
LinkedListがフィットするユースケースが少ないから
LRUキャッシュをHashMap+LinkedListで実装する時みたいにランダムインサート/デリートがメインでリストを高速に走査する必要がない場合に使われる
LinkedListがフィットするユースケースが少ないから
LRUキャッシュをHashMap+LinkedListで実装する時みたいにランダムインサート/デリートがメインでリストを高速に走査する必要がない場合に使われる
129デフォルトの名無しさん
2022/12/16(金) 14:41:11.47ID:mVtvcCjK TypeScriptでお馴染みのPrismaってRustでも使えるんか
130デフォルトの名無しさん
2022/12/16(金) 15:24:01.50ID:qfpmvh4y >>129
元々Rustで作ったバイナリをJSでラップしただけのライブラリだった
元々Rustで作ったバイナリをJSでラップしただけのライブラリだった
131デフォルトの名無しさん
2022/12/16(金) 17:29:26.91ID:dpgra0Sg132デフォルトの名無しさん
2022/12/16(金) 18:47:30.36ID:2he3/3ZS >>131 嘘つくのやめてもらっていいですか。
https://www.google.com/search?q=vector+list で
いま2位に出たこれ↓見ても引用と併せて「ほとんどvector」って言ってる人が少なくとも二人いる。
https://ja.stackoverflow.com/a/6008
> 大抵のケースでは vector<T> 利用で十分かと思います。(Tは要素の型)
> Scott Meyers, "Effective STL" でも、Item 1で次の言及があります
>> vector is the type of sequence that should be used by default.
俺も言うし>>128も言ってそう。
https://www.google.com/search?q=vector+list で
いま2位に出たこれ↓見ても引用と併せて「ほとんどvector」って言ってる人が少なくとも二人いる。
https://ja.stackoverflow.com/a/6008
> 大抵のケースでは vector<T> 利用で十分かと思います。(Tは要素の型)
> Scott Meyers, "Effective STL" でも、Item 1で次の言及があります
>> vector is the type of sequence that should be used by default.
俺も言うし>>128も言ってそう。
133デフォルトの名無しさん
2022/12/16(金) 19:52:47.31ID:P/cVRczV LinkedListがいいとかVectorがいいとかじゃなく適材適所やろ
134はちみつ餃子 ◆8X2XSCHEME
2022/12/16(金) 20:14:33.69ID:nhvY9+vf >>133
適材適所なのは前提として承知の上で「vector が適材である場所が多い」という話だろ。
適材適所なのは前提として承知の上で「vector が適材である場所が多い」という話だろ。
135デフォルトの名無しさん
2022/12/16(金) 21:44:58.60ID:6DlWbXOy vectorはメモリが並んでるからキャッシュヒット率が高くて速いって教わった
C++だと裏で追加したときにreallocされて参照が切れるリスクがあるけど
Rustだと一応安全だし
C++だと裏で追加したときにreallocされて参照が切れるリスクがあるけど
Rustだと一応安全だし
136デフォルトの名無しさん
2022/12/16(金) 21:55:52.92ID:k9rJal3H >>122
まず長文を嫌って端折ったのが悪かった、ごめん
Java/C++の在りし日ってのは、特にJavaなんだけど、JavaでGUIデスクトップアプリ作ったりアプレットでフロントをやってた時代の雰囲気と、Rustでwasmフロントやってたり、tauriがイケてる!GUIの決定版!みたいに言ってる奴が似てるなって思ったのよ
WEB全盛の昨今これらは趣味レベルでしかないので数字には出ないし、当然Rustコミュニティやプロダクト全般の事について言ったわけじゃないので"一部"と書いたんだけど、Rustaceanの一部ではなくプログラマコミュニティないし業界の一部とも読めてしまうね
これもごめんなさい
まず長文を嫌って端折ったのが悪かった、ごめん
Java/C++の在りし日ってのは、特にJavaなんだけど、JavaでGUIデスクトップアプリ作ったりアプレットでフロントをやってた時代の雰囲気と、Rustでwasmフロントやってたり、tauriがイケてる!GUIの決定版!みたいに言ってる奴が似てるなって思ったのよ
WEB全盛の昨今これらは趣味レベルでしかないので数字には出ないし、当然Rustコミュニティやプロダクト全般の事について言ったわけじゃないので"一部"と書いたんだけど、Rustaceanの一部ではなくプログラマコミュニティないし業界の一部とも読めてしまうね
これもごめんなさい
137デフォルトの名無しさん
2022/12/16(金) 23:54:59.70ID:b2g/f5EB >>132
ここにいるやつらは データ構造とアルゴリズム からやり直したほうがいいんじゃないか?
何を持って早い?っていってるんだ?
queueを実装するのにvector使うやつは愚か者だし
ソートするデータにlinked list使うやつも変なやつ
たいていVectorでOKとかいうのは脳みそ停止してる。ちゃんと考えるべき。
linked listは中間にデータをいれるとか、要素を取り除くのが得意なだけ。
普通に適材適所だろ?
ここにいるやつらは データ構造とアルゴリズム からやり直したほうがいいんじゃないか?
何を持って早い?っていってるんだ?
queueを実装するのにvector使うやつは愚か者だし
ソートするデータにlinked list使うやつも変なやつ
たいていVectorでOKとかいうのは脳みそ停止してる。ちゃんと考えるべき。
linked listは中間にデータをいれるとか、要素を取り除くのが得意なだけ。
普通に適材適所だろ?
138デフォルトの名無しさん
2022/12/17(土) 00:08:08.60ID:VEec8B0L まずお前はアルゴリズムうんぬんの前に日本語からやり直せ
はちみつの割にはまともなこと言ってる
> 適材適所なのは前提として承知の上で「vector が適材である場所が多い」という話だろ。
あとqueueの実装にvector使うのは別に変じゃない、リングバッファも知らんのか?
はちみつの割にはまともなこと言ってる
> 適材適所なのは前提として承知の上で「vector が適材である場所が多い」という話だろ。
あとqueueの実装にvector使うのは別に変じゃない、リングバッファも知らんのか?
139デフォルトの名無しさん
2022/12/17(土) 00:12:22.66ID:QKb/ZQVv140デフォルトの名無しさん
2022/12/17(土) 01:03:01.35ID:7EPFyoxp >>120
その記事で、Stroustrup氏は、非常に特殊な例で実験しているように思える。
最初から明らかにvectorに有利、LinkedListに不利な実験。
これは最初からLinkedListに不利なことが脳内でも分かるので、
それが分からないとしたらstroustrup氏は想像力が不足している。
Stroupstrup氏本人は難しくて理由が分からない、みたいに思ってるらしい。
その記事で、Stroustrup氏は、非常に特殊な例で実験しているように思える。
最初から明らかにvectorに有利、LinkedListに不利な実験。
これは最初からLinkedListに不利なことが脳内でも分かるので、
それが分からないとしたらstroustrup氏は想像力が不足している。
Stroupstrup氏本人は難しくて理由が分からない、みたいに思ってるらしい。
141デフォルトの名無しさん
2022/12/17(土) 01:08:13.28ID:7EPFyoxp142デフォルトの名無しさん
2022/12/17(土) 01:15:11.07ID:7EPFyoxp >>140
[補足]
コンテナ内にN個の要素がある場合、
リンクリストは、1個の要素の追加はO(1)。しかし、全走査や探索は、O(N)。
彼の実験だと、1個追加する際に、追加する場所を探すために平均で N/2 個の
ノードを巡ることになっているから、
1要素あたりに必要な時間 = 場所を探す時間 + 追加の時間
= O(N/2) + O(1)
= O(N)
となる。一方、vector の場合、
1要素あたりに必要な時間 = 場所を探す時間 + 追加の時間
= O(N/2) + O(N/2)
= O(N)
となる。
オーダー的には、O(N)で同じだが、前者は、キャッシュミスが酷くなるので、
「係数」がとても大きくなっている。
だから、前者の方が後者よりも遅くなっていっる理由は明確。
結論は、要素を追加する際に「場所を探す」ことを行なっていて、それがLinkedList
の不得意分野だから。
[補足]
コンテナ内にN個の要素がある場合、
リンクリストは、1個の要素の追加はO(1)。しかし、全走査や探索は、O(N)。
彼の実験だと、1個追加する際に、追加する場所を探すために平均で N/2 個の
ノードを巡ることになっているから、
1要素あたりに必要な時間 = 場所を探す時間 + 追加の時間
= O(N/2) + O(1)
= O(N)
となる。一方、vector の場合、
1要素あたりに必要な時間 = 場所を探す時間 + 追加の時間
= O(N/2) + O(N/2)
= O(N)
となる。
オーダー的には、O(N)で同じだが、前者は、キャッシュミスが酷くなるので、
「係数」がとても大きくなっている。
だから、前者の方が後者よりも遅くなっていっる理由は明確。
結論は、要素を追加する際に「場所を探す」ことを行なっていて、それがLinkedList
の不得意分野だから。
143デフォルトの名無しさん
2022/12/17(土) 01:26:25.05ID:7EPFyoxp >>142
[補足2]
リンクトリストとvectorで、条件を満たす1個の要素を線形探索で探す時に
かかる時間は、共に O(N)で、オーダー的には同じ。
ところが、彼の実験の場合、(均等確率の完全に近い)乱数で要素の追加される
場所と追加される順序が強くランダムになるようにしている。
この条件だと、途中結果の集合を線形探索する時、vectorは、
要素のアドレスが連続しているのでキャッシュの先読み(prefetch)がよく聞くが、
LinkedListは、アドレスが強くランダムになるので、キャッシュの先読みが
上手く働かず、1個の要素当り、現在のCPUで、80クロックほどのレイテンシーが
発生してしまう。
つまり、この実験においては、要素追加の場所をランダムにしているせいで、
要素を巡る際に、
vectorは、メモリーリードの追加レイテンシーが0に近い。
LinkedListは、メモリーリードの追加レイテンシーが80クロック程度かかる。
[補足2]
リンクトリストとvectorで、条件を満たす1個の要素を線形探索で探す時に
かかる時間は、共に O(N)で、オーダー的には同じ。
ところが、彼の実験の場合、(均等確率の完全に近い)乱数で要素の追加される
場所と追加される順序が強くランダムになるようにしている。
この条件だと、途中結果の集合を線形探索する時、vectorは、
要素のアドレスが連続しているのでキャッシュの先読み(prefetch)がよく聞くが、
LinkedListは、アドレスが強くランダムになるので、キャッシュの先読みが
上手く働かず、1個の要素当り、現在のCPUで、80クロックほどのレイテンシーが
発生してしまう。
つまり、この実験においては、要素追加の場所をランダムにしているせいで、
要素を巡る際に、
vectorは、メモリーリードの追加レイテンシーが0に近い。
LinkedListは、メモリーリードの追加レイテンシーが80クロック程度かかる。
144デフォルトの名無しさん
2022/12/17(土) 01:27:47.24ID:QKb/ZQVv >>140-141
そういう極端な解釈や誤解を解くためと思われる FAQ が置いてある。
https://www.stroustrup.com/bs_faq.html#list
まずはこれを読んで、それでもなにか異論を唱えたいならこの中のどの部分についての異論なのか、
自身の主張がどう違うのか明らかにするように。
そういう極端な解釈や誤解を解くためと思われる FAQ が置いてある。
https://www.stroustrup.com/bs_faq.html#list
まずはこれを読んで、それでもなにか異論を唱えたいならこの中のどの部分についての異論なのか、
自身の主張がどう違うのか明らかにするように。
145デフォルトの名無しさん
2022/12/17(土) 01:33:08.88ID:7EPFyoxp146デフォルトの名無しさん
2022/12/17(土) 01:36:35.34ID:7EPFyoxp この分野は、専門家かどうかより、生まれつきの頭の良さがものを言う。
彼ははっきり行って、計算速度の見積もりにおいては才能が無い。
彼が評価されるべきは、
誰もオブジェクト指向を知らない時にSimulaのようなオブジェクト指向言語を
知っていて、それをCに応用したというだけ。
vectorやLinkedListの速度に関しては彼は間違っている。
彼ははっきり行って、計算速度の見積もりにおいては才能が無い。
彼が評価されるべきは、
誰もオブジェクト指向を知らない時にSimulaのようなオブジェクト指向言語を
知っていて、それをCに応用したというだけ。
vectorやLinkedListの速度に関しては彼は間違っている。
147デフォルトの名無しさん
2022/12/17(土) 01:38:43.69ID:7EPFyoxp 「測定無しで語らないで下さい」
というのも理論を軽視している学者の典型例。
日本でも物凄く多い。
自分が理論を正しく理解できて無いから、テストしないと見積もることが出来ないだけ。
というのも理論を軽視している学者の典型例。
日本でも物凄く多い。
自分が理論を正しく理解できて無いから、テストしないと見積もることが出来ないだけ。
148デフォルトの名無しさん
2022/12/17(土) 01:46:15.68ID:7EPFyoxp 彼は理論を分かって無いことが明白。
この実験において、LinkedListがNが大きくなると有利になると思い込んでNを
大きくしていったらしい。すると、彼の予想に反してそうならなかった。
しかし、俺には理由が分かる。
むしろ、LinkedListで、Nで割った時の単位要素あたりの時間は、あるNが
ある値を超えたときから曲線の傾きが大きくなる。
(i) N < N0 : キャッシュが働く時:
f(N) = a1 * N + b
(ii) N > N0 : キャッシュが働かない時:
f(N) = a2 * N + b
DDR4-SDRAM での推定の係数 :
a1 = 0.5
a2 = 0.5 * 80
俺は、これを数秒間で導いたから、ケアレスミスが含まれるかもしれない。
この実験において、LinkedListがNが大きくなると有利になると思い込んでNを
大きくしていったらしい。すると、彼の予想に反してそうならなかった。
しかし、俺には理由が分かる。
むしろ、LinkedListで、Nで割った時の単位要素あたりの時間は、あるNが
ある値を超えたときから曲線の傾きが大きくなる。
(i) N < N0 : キャッシュが働く時:
f(N) = a1 * N + b
(ii) N > N0 : キャッシュが働かない時:
f(N) = a2 * N + b
DDR4-SDRAM での推定の係数 :
a1 = 0.5
a2 = 0.5 * 80
俺は、これを数秒間で導いたから、ケアレスミスが含まれるかもしれない。
149デフォルトの名無しさん
2022/12/17(土) 01:50:24.83ID:7EPFyoxp >>148
[ミス訂正]
a1 = 0.5 * L
a2 = 0.5 * (L + 80)
L = ループ一回当りのマシン語レベルでの見た目のクロック数。
0.5 を掛けているのは、1回の線形探索において、
平均移動回数が (N / 2) 回と推定されるから。
まだ、ケアレスミスがあるかもしれない。
[ミス訂正]
a1 = 0.5 * L
a2 = 0.5 * (L + 80)
L = ループ一回当りのマシン語レベルでの見た目のクロック数。
0.5 を掛けているのは、1回の線形探索において、
平均移動回数が (N / 2) 回と推定されるから。
まだ、ケアレスミスがあるかもしれない。
150デフォルトの名無しさん
2022/12/17(土) 02:27:39.08ID:QKb/ZQVv すごいな。0点回答じゃん。
今後のため、ぜひコテハン頼む。
今後のため、ぜひコテハン頼む。
151デフォルトの名無しさん
2022/12/17(土) 02:32:26.93ID:tahIU/4X152デフォルトの名無しさん
2022/12/17(土) 02:49:00.46ID:k1W2kl1x >>150
ID:7EPFyoxp = はちみつがはちみつ搾り取った後の残りカス
ID:7EPFyoxp = はちみつがはちみつ搾り取った後の残りカス
153デフォルトの名無しさん
2022/12/17(土) 03:25:53.37ID:sANdR5x8 100点おじさん頭悪いのは知ってたけどさすがにここまでとは思ってなかった
文章読解力に難があり過ぎ
文章読解力に難があり過ぎ
154デフォルトの名無しさん
2022/12/17(土) 07:25:20.60ID:jr3rWKyM155デフォルトの名無しさん
2022/12/17(土) 08:32:26.89ID:4FUmGBLH Stroustrupもオジ
156デフォルトの名無しさん
2022/12/17(土) 09:13:23.75ID:FhlO/q3l 適材適所にオジ
157デフォルトの名無しさん
2022/12/17(土) 09:40:37.34ID:7jrYNUaI158デフォルトの名無しさん
2022/12/17(土) 10:03:46.47ID:yTH8JJEo >>122
Rustの0.30%には流石にがっかりきた
比率からして既に一巡したんだと思う
Java vs Scala(JVM, 17.5%/0.47% => 何巡もして37倍)
C/C++ vs Rust(Native, 8.24%/0.30% => 一巡目で27倍)
Rustの0.30%には流石にがっかりきた
比率からして既に一巡したんだと思う
Java vs Scala(JVM, 17.5%/0.47% => 何巡もして37倍)
C/C++ vs Rust(Native, 8.24%/0.30% => 一巡目で27倍)
159デフォルトの名無しさん
2022/12/17(土) 10:51:59.45ID:Qk229x0R OSに依存しないライブラリの行数は、Android全体の行数で割り算できない
これが割り算のカラクリか
これが割り算のカラクリか
160デフォルトの名無しさん
2022/12/17(土) 12:18:07.73ID:Wsp+a048 フロントエンドのちゃらい流行り廃りを追いかけ続けるのに疲れて
早めにバックエンドに転向したいと目論んでいた筋にとっとは
Rustは無駄だと思い知ったことだろう
GoやっとけよGo
早めにバックエンドに転向したいと目論んでいた筋にとっとは
Rustは無駄だと思い知ったことだろう
GoやっとけよGo
161デフォルトの名無しさん
2022/12/17(土) 12:43:51.64ID:Qk229x0R しょーきょー法でGoみたいな風潮もいかがなものか
162デフォルトの名無しさん
2022/12/17(土) 13:48:17.15ID:xCKnPakF 自分はRust使うけど人にはとりあえずGoにしとけば?って言っちゃうな
VSCodeなんかと同じで無難感はある
VSCodeなんかと同じで無難感はある
163デフォルトの名無しさん
2022/12/17(土) 14:06:02.86ID:1OvQaYAC 統一教会は日本で、ゆとりある教育を提唱しているが、韓国では全く逆のことを言ってるからな。
騙されるなよ。
騙されるなよ。
164デフォルトの名無しさん
2022/12/17(土) 14:19:36.18ID:e3Jjde95 >>157
対象の集団規模やその集団のレイヤーが異なることと、各々の集団に対して類似又は共通の雰囲気・要素が存在することないし感じられることは両立しうると思わない?
対象の集団規模やその集団のレイヤーが異なることと、各々の集団に対して類似又は共通の雰囲気・要素が存在することないし感じられることは両立しうると思わない?
165デフォルトの名無しさん
2022/12/17(土) 14:38:10.16ID:1OvQaYAC 集団って統一教会のことか。
166デフォルトの名無しさん
2022/12/17(土) 14:42:50.70ID:1OvQaYAC 統一教会と自民党は両立じゃないだろ。
日本における統一教会の実行部隊が自民党。
日本における統一教会の実行部隊が自民党。
167デフォルトの名無しさん
2022/12/17(土) 15:23:19.74ID:y2/IfEDT なんでRustのスレで統一教会が出てくるんだ…
統一教会に限らずカルトの関心は政治権力だから判定条件はis_自民党()じゃなくis_政権与党()だろ
必ずしもすべての政党が実行部隊機能を実装してるとは限らないけど
自民党を取り換えればカルト問題が解決するみたいな発想だとデバッグに支障がでるぞ
統一教会に限らずカルトの関心は政治権力だから判定条件はis_自民党()じゃなくis_政権与党()だろ
必ずしもすべての政党が実行部隊機能を実装してるとは限らないけど
自民党を取り換えればカルト問題が解決するみたいな発想だとデバッグに支障がでるぞ
168デフォルトの名無しさん
2022/12/17(土) 15:42:05.55ID:Sr9loTqZ169デフォルトの名無しさん
2022/12/17(土) 16:16:29.71ID:CCt/1VrG Rustが適材適所なのはゼロではないと承知の上で「Goが適材である場所が多い」という話だろ
170デフォルトの名無しさん
2022/12/17(土) 16:35:05.53ID:tBNmuOUO Rustはlinuxのドライバー作成専用言語
171デフォルトの名無しさん
2022/12/17(土) 16:40:34.79ID:2HWiBBP7 Rustはしょーきょー法で>>170みたいな風潮
172デフォルトの名無しさん
2022/12/17(土) 17:07:17.99ID:OmKniCOI173デフォルトの名無しさん
2022/12/17(土) 17:29:21.75ID:vKjf1YhM 統一教会信者出てきたな
174デフォルトの名無しさん
2022/12/17(土) 18:34:12.05ID:nURLlX7p そうかそうかww
175デフォルトの名無しさん
2022/12/17(土) 19:05:38.21ID:u3ABxrNN >>151
要素数Nの時に何らかの処理Aに掛かる時間をf(N)とするとき、
O(g(N))は、ある N0 があって、N0 より大きな どんな実数 N に対しても、
f(N) / g(N) < アルファ
が成り立つことを意味し、「押さえられる無限大」、といい、
ランダウ記号(の一種)、または、ラージO 記法という。
だから、O(N/2)=O(N)であり、O(N)+O(1)=O(N)である。
要素数Nの時に何らかの処理Aに掛かる時間をf(N)とするとき、
O(g(N))は、ある N0 があって、N0 より大きな どんな実数 N に対しても、
f(N) / g(N) < アルファ
が成り立つことを意味し、「押さえられる無限大」、といい、
ランダウ記号(の一種)、または、ラージO 記法という。
だから、O(N/2)=O(N)であり、O(N)+O(1)=O(N)である。
176デフォルトの名無しさん
2022/12/17(土) 19:13:53.37ID:u3ABxrNN >>175
[補足]
このことは、
f(N) = O(g(N))
とも書く。以下、厳密性はないが、理解のために書いておけば、
f(N)=O(1)とは、大まかに言って f(N) = b
f(N)=O(N)とは、大まかに言って f(N) = a・N + b
f(N)=O(N^2)とは、大まかに言って f(N) = a2・N^2 + a1・N + b
を意味する。だから、
f'(N)=O(N/2)とは、大まかに言って f'(N) = a・N/2 + b のような意味になるから、
a' = a / 2 と書いてしまえば、
f'(N) = a'・N + b となり、f'(N)=O(N)と言えることが分かる。
f''(N)=O(N)+O(1) は、大まかに言って、
f''(N)= { a・N + b1 } + b2 = a・N + (b1+b2) であるから、
f''(N)=O(N) であることがわかる。従って、
O(N/2)+O(1)=O(N)
であることが分かる。
[補足]
このことは、
f(N) = O(g(N))
とも書く。以下、厳密性はないが、理解のために書いておけば、
f(N)=O(1)とは、大まかに言って f(N) = b
f(N)=O(N)とは、大まかに言って f(N) = a・N + b
f(N)=O(N^2)とは、大まかに言って f(N) = a2・N^2 + a1・N + b
を意味する。だから、
f'(N)=O(N/2)とは、大まかに言って f'(N) = a・N/2 + b のような意味になるから、
a' = a / 2 と書いてしまえば、
f'(N) = a'・N + b となり、f'(N)=O(N)と言えることが分かる。
f''(N)=O(N)+O(1) は、大まかに言って、
f''(N)= { a・N + b1 } + b2 = a・N + (b1+b2) であるから、
f''(N)=O(N) であることがわかる。従って、
O(N/2)+O(1)=O(N)
であることが分かる。
177デフォルトの名無しさん
2022/12/17(土) 19:21:03.57ID:u3ABxrNN >>176
[補足2]
また厳密性を無視して大体で書くと、
f(N)=O(g(N))
の場合、f(N)のNに関する最大次数がg(N)と同じ、という意味。
だから、g(N)がNに関して k 次元だと、f(N)もNに関して k 次元、という
ことを概ね意味する。だから、大体、
f(N)=O(1) とは、f(N)=b を意味する。
f(N)=O(N) とは、f(N)=a * N + ・・・ を意味する。
f(N)=O(N^2) とは、f(N)=a * N^2 + ・・・ を意味する。
なので、f(N)=O(N/2)+O(1)だと、
f(N) = a・N/2 + b
みたいになり、これは、N に関して 1 次関数だから、Nに関する最大次数は 1。
だから、O(N)ということになる。
[補足2]
また厳密性を無視して大体で書くと、
f(N)=O(g(N))
の場合、f(N)のNに関する最大次数がg(N)と同じ、という意味。
だから、g(N)がNに関して k 次元だと、f(N)もNに関して k 次元、という
ことを概ね意味する。だから、大体、
f(N)=O(1) とは、f(N)=b を意味する。
f(N)=O(N) とは、f(N)=a * N + ・・・ を意味する。
f(N)=O(N^2) とは、f(N)=a * N^2 + ・・・ を意味する。
なので、f(N)=O(N/2)+O(1)だと、
f(N) = a・N/2 + b
みたいになり、これは、N に関して 1 次関数だから、Nに関する最大次数は 1。
だから、O(N)ということになる。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★4 [七波羅探題★]
- 【地震速報】青森県で震度6強 沿岸部に津波警報 ★6 [ぐれ★]
- 【速報】気象庁は津波注意報すべて解除 [蚤の市★]
- 「日の丸にバツ印」掲げた大学生 あいまいな国旗損壊罪に「怖い」 The Mainichi [少考さん★]
- 【テレビ】25年ぶり復活「炎のチャレンジャー」南原清隆&菊池風磨がMC 懐かし「電流イライラ棒」も [湛然★]
- 【音楽】BARBEE BOYS・KONTAが事故で四肢麻痺を公表、新体制で活動は継続 [少考さん★]
- 働いて参ります
- ( ・᷄ὢ・᷅ )あ?
- ブタをぶったたく
- とうとう袖なしジージャン買ったったwww
- こんな自転車乗ってたやつがいたら?
- 【画像】童貞は絶ッッッ対"4"を選ぶバレー部J Kが寮でパンパンの集合写真見つけちゃったwwwwwwwwwwwwww [904880432]
