Rust part31 (635レス)
Rust part31 http://mevius.5ch.net/test/read.cgi/tech/1751545806/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
1: デフォルトの名無しさん [] 2025/07/03(木) 21:30:06.95 ID:ORBrZxS2 公式 https://www.rust-lang.org/ https://blog.rust-lang.org/ https://github.com/rust-lang/rust 公式ドキュメント https://www.rust-lang.org/learn 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 part30 https://mevius.5ch.net/test/read.cgi/tech/1748392296/ ワッチョイスレ プログラミング言語 Rust 4【ワッチョイ】 https://mevius.5ch.net/test/read.cgi/tech/1514107621/ http://mevius.5ch.net/test/read.cgi/tech/1751545806/1
536: デフォルトの名無しさん [] 2025/07/28(月) 08:44:19.95 ID:Qh5MRIIH みんなー、最初の課題はな Emacsには M-x what-line と M-x what-cursor-position とがあるからその2つの情報をいっぺんに表示する M-x what-line-and-cursor-position というコマンドを書いてC-x =とかにバインドするんだ http://mevius.5ch.net/test/read.cgi/tech/1751545806/536
537: デフォルトの名無しさん [sage] 2025/07/28(月) 08:52:08.79 ID:zOCRCDwg よほどのことがない限り二刀流を想定しない これはITだけではない 特に、万物は一長一短であると信じている者にとっては 弱点を消すもう一つの武器を用意するなんて考えたくもないだろ http://mevius.5ch.net/test/read.cgi/tech/1751545806/537
538: デフォルトの名無しさん [sage] 2025/07/28(月) 09:40:58.24 ID:E3NP8lW2 躁うつ病(双極性障害)の周期は、躁状態とうつ状態が交互に現れるのが特徴です。 この周期は数カ月から数年と個人差があり、常に躁状態とうつ状態が表れているわけではなく、 間に症状がない「寛解期」を挟むこともあります http://mevius.5ch.net/test/read.cgi/tech/1751545806/538
539: デフォルトの名無しさん [sage] 2025/07/28(月) 14:08:46.46 ID:O7aojHnp Rustで自分用にライブラリを作ろうとしていて、 そこでC++のライブラリを利用しようとしているんですけど、 上手い感じに統合するためには、どうやったらいいんですかね…? 特にメモリ管理とかです。unsafeを使わなくていいようにしたいです http://mevius.5ch.net/test/read.cgi/tech/1751545806/539
540: デフォルトの名無しさん [] 2025/07/28(月) 14:16:59.82 ID:Qh5MRIIH 俺様アロケータがあるなら型Tの変数をアロケートするときに Oresama<T> と書くだけで、使い勝手はBox<T>とかと同じにしてしまう http://mevius.5ch.net/test/read.cgi/tech/1751545806/540
541: デフォルトの名無しさん [sage] 2025/07/28(月) 14:34:22.54 ID:O7aojHnp なんかsafetyでnewerなbindgenはないのか http://mevius.5ch.net/test/read.cgi/tech/1751545806/541
542: デフォルトの名無しさん [sage] 2025/07/28(月) 17:15:12.87 ID:kpR5qn81 Rust の外で定義されたものが safe かどうかは自動では判断しようがない。 プログラムを書かずに済ますにしてもなんらかのメタデータは与える必要があるだろうし、 バッチリと何から何まで自動化ってのは無理なんじゃねーのかな。 http://mevius.5ch.net/test/read.cgi/tech/1751545806/542
543: デフォルトの名無しさん [sage] 2025/07/28(月) 17:29:26.66 ID:daSk2bcg そんなもんAIで余裕でしょ 最もAIが得意とする類の課題 http://mevius.5ch.net/test/read.cgi/tech/1751545806/543
544: デフォルトの名無しさん [] 2025/07/28(月) 18:03:32.69 ID:Qh5MRIIH そして最大の罠 http://mevius.5ch.net/test/read.cgi/tech/1751545806/544
545: デフォルトの名無しさん [sage] 2025/07/28(月) 18:11:28.90 ID:oTNRYreL そこはAIが最も不得意とする分野 unsafeを用いて提供されるsafeな関数やモジュール関数群が安全か否かを100%判定できること これができる時代になった時に全てのプログラマーを全廃できる http://mevius.5ch.net/test/read.cgi/tech/1751545806/545
546: デフォルトの名無しさん [sage] 2025/07/28(月) 18:16:36.76 ID:V7NHZwCK AI使ってたらそんなこと言うはずもないんだよな 再現性ないんだぜ? http://mevius.5ch.net/test/read.cgi/tech/1751545806/546
547: デフォルトの名無しさん [] 2025/07/28(月) 18:41:43.40 ID:Qh5MRIIH 例えばRustはVecがあるからダブルリンクリストがいらなかったりするでしょ 「えっ、Rustでダブルリンクリスト?しかも自作?なにこの老害」 とかなって 「Rust歴何年よ?」「えっへん〇〇年」「馬鹿だったんだ、この人」 http://mevius.5ch.net/test/read.cgi/tech/1751545806/547
548: デフォルトの名無しさん [sage] 2025/07/28(月) 18:51:31.01 ID:vSY6h8X4 その理解もどうなのw http://mevius.5ch.net/test/read.cgi/tech/1751545806/548
549: デフォルトの名無しさん [sage] 2025/07/28(月) 21:04:58.46 ID:O7aojHnp 抽象化レイヤーをRustで書く方法 http://mevius.5ch.net/test/read.cgi/tech/1751545806/549
550: デフォルトの名無しさん [] 2025/07/28(月) 22:26:39.23 ID:Qh5MRIIH Rust歴というよりもダブルリンクリスト歴なんだよな Cで実際にダブルリンクリストを使って問題に対処した実務経験なしで彼らがRust製のダブルリンクリストを手放すわけがないし、 第一それだって彼らにとっては眺めて楽しむものなのだ http://mevius.5ch.net/test/read.cgi/tech/1751545806/550
551: デフォルトの名無しさん [sage] 2025/07/28(月) 22:28:22.25 ID:SLPj4B6Y まずRustの基本常識を身に着け終えた後でFFIやunsafeに進みなさい http://mevius.5ch.net/test/read.cgi/tech/1751545806/551
552: デフォルトの名無しさん [] 2025/07/28(月) 23:23:57.49 ID:Qh5MRIIH 人類は数十年かかって ・シングルリンクリストはそもそもライブラリ化しません ・ダブルリンクリストは「単純継承」のみライブラリ化します ・さもなきゃコンスセル という知恵を石から絞り出した RustはそれをVecとVecDeqeueに発展させたが 問題はそれが進化の正しい舳先かどうか http://mevius.5ch.net/test/read.cgi/tech/1751545806/552
553: デフォルトの名無しさん [sage] 2025/07/29(火) 01:00:10.21 ID:A5j4bQYz 双方向のリンクリストにこだわるのは 強参照の循環が必ず生じると思ってるか、その一部を弱参照に変えるしかないと思ってるんだよね 生ポインタなら一部ではなく全部生ポインタで作るのに http://mevius.5ch.net/test/read.cgi/tech/1751545806/553
554: デフォルトの名無しさん [sage] 2025/07/29(火) 01:00:59.09 ID:+DAbbYTz CPUキャッシュメモリ考慮が速さを支配する時代になって以降 リンクリストが有利な場面が大きく減ってベクタやベクタベースのデックなどが有利に変わったのは事実 それでも残るリンクリスト利用もCPUキャッシュメモリを配慮したアンロールリンクリストなど様々な応用変種が各用途ごとに使われることとなった http://mevius.5ch.net/test/read.cgi/tech/1751545806/554
555: デフォルトの名無しさん [sage] 2025/07/29(火) 15:51:23.75 ID:pHNfVPjg データの特性にあわせて最適なもの選ぶだけだろ 有利不利とかなんでそういう思考になるか謎 http://mevius.5ch.net/test/read.cgi/tech/1751545806/555
556: デフォルトの名無しさん [] 2025/07/29(火) 19:05:37.57 ID:EalfDF/V Rust C++ Java Python Vec<T> vector ArrayList List VecDeque<T> deque ArrayDeque collections.deque LinkedList<T> list LinkedList ー BinaryHeap<T> priority_queue PriorityQueue heapq HashMap<K, V> unordered_map HashMap dict BTreeMap<K, V> map TreeMap ー HasgSet<T> unordered_set HashSet set BTreeSet<T> set TreeSet ー http://mevius.5ch.net/test/read.cgi/tech/1751545806/556
557: デフォルトの名無しさん [sage] 2025/07/29(火) 19:07:30.10 ID:yr1Z5meU >>555 データ特性によるアルゴリズムの選択で参考にされるO(n)などはメモリアクセスでかかるコストをゼロもしくは均一とみなして来たが CPUの高速化によりメモリキャッシュに載るかどうかで何百倍も速さが変わるようになってアルゴリズム選択の観点も大きく変わって来た話だろ 有利と思われていたものが不利へと変わった http://mevius.5ch.net/test/read.cgi/tech/1751545806/557
558: デフォルトの名無しさん [sage] 2025/07/29(火) 19:12:24.34 ID:q5zHFRxw 必ずまとまった連続領域にあることが保証されるベクタはキャッシュに乗ることが保証されて速いからね http://mevius.5ch.net/test/read.cgi/tech/1751545806/558
559: デフォルトの名無しさん [sage] 2025/07/29(火) 19:36:55.11 ID:zbBRX4z5 スタックvsヒープも 常にキャッシュに載るスタックを活用しまくるRustが登場 http://mevius.5ch.net/test/read.cgi/tech/1751545806/559
560: デフォルトの名無しさん [] 2025/07/29(火) 20:11:21.16 ID:EalfDF/V Rustは変数の寿命をソースコードの静的解析から解き明かすのみならず、実際のメモリ確保もスタックから行うのであると思ってる人まだいるの? http://mevius.5ch.net/test/read.cgi/tech/1751545806/560
561: デフォルトの名無しさん [sage] 2025/07/29(火) 20:15:36.12 ID:1nklfDHD >>560 それで合ってる RustではBoxかVecを指定しない限り 構造体などオブジェクトもスタック上に確保 http://mevius.5ch.net/test/read.cgi/tech/1751545806/561
562: デフォルトの名無しさん [sage] 2025/07/29(火) 20:19:10.20 ID:RU6DXavP 駄目じゃん http://mevius.5ch.net/test/read.cgi/tech/1751545806/562
563: デフォルトの名無しさん [sage] 2025/07/29(火) 20:20:04.54 ID:1nklfDHD >>562 何がダメなの? スタック上に確保するから速くて有利 http://mevius.5ch.net/test/read.cgi/tech/1751545806/563
564: デフォルトの名無しさん [] 2025/07/29(火) 20:20:36.88 ID:EalfDF/V >>561 え?返り値として返される時はコピーされるんでしょ? http://mevius.5ch.net/test/read.cgi/tech/1751545806/564
565: デフォルトの名無しさん [sage] 2025/07/29(火) 20:24:19.75 ID:1nklfDHD >>564 コピーされない 返り値最適化により初めから呼び出し元のスタックフレーム上に生成される http://mevius.5ch.net/test/read.cgi/tech/1751545806/565
566: デフォルトの名無しさん [] 2025/07/29(火) 20:29:47.96 ID:EalfDF/V あのさ、 スタック上に確保すると 「解析がなくても」「解放は容易」でしょ? それが 「解析はあるのだから」「どこでも同じ」にならない? http://mevius.5ch.net/test/read.cgi/tech/1751545806/566
567: デフォルトの名無しさん [sage] 2025/07/29(火) 20:36:31.61 ID:1nklfDHD 何を問題にしてる? スタック上のため確保もアクセスも高速 その上でRustではアクセスと解放の安全も両立している http://mevius.5ch.net/test/read.cgi/tech/1751545806/567
568: デフォルトの名無しさん [] 2025/07/29(火) 20:47:35.07 ID:EalfDF/V 「スタック上に確保しなくても同じことはできる」 って言ってる そのうえで 「スタック上にしか確保してないのか」 って言ってる http://mevius.5ch.net/test/read.cgi/tech/1751545806/568
569: デフォルトの名無しさん [sage] 2025/07/29(火) 20:52:53.58 ID:1nklfDHD >>568 スタック上に確保するときのみ確保が高速 スタック上で確保した時はキャッシュにほぼ載るためアクセスも高速 ヒープ上ではどちらも遅くて不利 http://mevius.5ch.net/test/read.cgi/tech/1751545806/569
570: デフォルトの名無しさん [sage] 2025/07/29(火) 21:02:55.02 ID:yJ/ZZe3K ついに糖質と言い争えるレベルまで落ちたか http://mevius.5ch.net/test/read.cgi/tech/1751545806/570
571: デフォルトの名無しさん [sage] 2025/07/29(火) 22:39:15.04 ID:pHNfVPjg >>557 操作ごとに計算量違うだろ? CSの教養のないど素人じゃん http://mevius.5ch.net/test/read.cgi/tech/1751545806/571
572: デフォルトの名無しさん [sage] 2025/07/29(火) 22:48:01.97 ID:ysadVfOf >>571 どの操作も計算量の算出時にメモリアクセスによる時間コストを考慮していなかったことが昔の敗因 http://mevius.5ch.net/test/read.cgi/tech/1751545806/572
573: デフォルトの名無しさん [sage] 2025/07/29(火) 23:17:45.02 ID:VkX72Ez2 「計算量」を理解してないだけだな http://mevius.5ch.net/test/read.cgi/tech/1751545806/573
574: デフォルトの名無しさん [sage] 2025/07/29(火) 23:23:46.49 ID:A5j4bQYz 多少遅くてもいいからCPUと関係ない言語で書きたい mallocが使えない状況でその言語を使えるならそのほうがCPUと無関係でいられる http://mevius.5ch.net/test/read.cgi/tech/1751545806/574
575: デフォルトの名無しさん [sage] 2025/07/29(火) 23:25:20.99 ID:gZolU48c 計算量は係数を考慮せず次数だけだからね キャッシュヒットとミスのような係数が桁違いに変わってくる現実だと逆転が起きるのは当たり前 http://mevius.5ch.net/test/read.cgi/tech/1751545806/575
576: デフォルトの名無しさん [sage] 2025/07/29(火) 23:29:05.70 ID:gZolU48c 机上の計算量だけ見ていてもダメで必要な箇所は比較計測になる そこでのRustは選択肢を広げてくれた存在 http://mevius.5ch.net/test/read.cgi/tech/1751545806/576
577: デフォルトの名無しさん [sage] 2025/07/29(火) 23:41:21.56 ID:4+dSqHol 大きな2次元配列で2次元のどちらを基準に全走査するかで桁違いに速度が変わるのもCPUメモリキャッシュのせいだよな そのへん考慮できない人はプログラマに向いていない http://mevius.5ch.net/test/read.cgi/tech/1751545806/577
578: デフォルトの名無しさん [sage] 2025/07/30(水) 00:05:02.69 ID:2CCQm4VI マイクロマネジメントをな、マイクロマネジメントをいつでもサボれるくらいになりなよ http://mevius.5ch.net/test/read.cgi/tech/1751545806/578
579: デフォルトの名無しさん [sage] 2025/07/30(水) 00:46:05.33 ID:zYz0+G1r >>575 それは小さいデータのときだけ 計測してみろよ 特殊な前提なのに話を一般化すんなよ http://mevius.5ch.net/test/read.cgi/tech/1751545806/579
580: デフォルトの名無しさん [sage] 2025/07/30(水) 00:51:05.39 ID:6h+f7gEs ほらやっぱり 複オジは「計算量」を理解していないだろ? http://mevius.5ch.net/test/read.cgi/tech/1751545806/580
581: デフォルトの名無しさん [sage] 2025/07/30(水) 01:15:10.54 ID:ZVYNNQCS ベクタは確保メモリサイズを超えると別メモリへの移動ペナルティが発生するにも関わらず、 ベクタへのデータの追加操作はベクタのサイズに関わらずO(1)とされる。 これはデータを2^n個追加した時の累計メモリ移動は最悪時でも、 1+2+4+8+...+2^(n-1)=2^n-1個のメモリ移動しか発生しないためである http://mevius.5ch.net/test/read.cgi/tech/1751545806/581
582: デフォルトの名無しさん [] 2025/07/30(水) 06:58:14.11 ID:dn+Bg3eY ・超指向性スピーカーを使用して統合失調症の周囲で殺人をしたと話していたのですがご存じの方知りませんか? 【兵庫県知事問題】「斎藤知事動画はバズる」と直感、編集して1500万再生 中傷動画も発信した男性(31)の後悔 [ぐれ★] 2025/07/29(火) 21:04:36.36 https://asahi.5ch.net/test/read.cgi/newsplus/1753790676/ こちらの方は後悔しているけれど 統合失調症周囲の人間は逆の精神状態の下記の人物 「仕事はデキるのに…」異常で執拗なパワハラをする“ダーク・トライアド“と呼ばれる、職場のヤバい人たち [パンナ・コッタ★] 2025/07/30(水) 02:17:10.53 https://asahi.5ch.net/test/read.cgi/newsplus/1753809430/ http://mevius.5ch.net/test/read.cgi/tech/1751545806/582
583: デフォルトの名無しさん [] 2025/07/30(水) 10:38:53.50 ID:kDw0lUC7 Rustが糞遅いのはこういうのも関係してるんだろうな http://mevius.5ch.net/test/read.cgi/tech/1751545806/583
584: デフォルトの名無しさん [sage] 2025/07/30(水) 10:55:36.76 ID:HGz1hbaM >>580 complexityを計算量と訳したバカのせいで新しいバカが量産されてる http://mevius.5ch.net/test/read.cgi/tech/1751545806/584
585: デフォルトの名無しさん [sage] 2025/07/30(水) 15:55:46.79 ID:gxsH3v1Z >>579 データが大きくても係数の差が次数の差より影響することは普通にありえる キャッシュミスしまくるがO(n)で済むアルゴリズムと ほぼキャッシュヒットしまくるがO(n·log(n))かかるアルゴリズムがあるとしよう 両者のアルゴリズム自体の係数差は単純にnとn·log2(n)とする 例えばn=2^30≒10億の場合はアルゴリズムの差でlog2(2^30)=30倍の差が生じる ところがキャッシュミスするとメモリアクセスの差で300倍遅いことが現代のCPUでありえる そのためキャッシュミスしまくるO(n)よりもO(n·log(n))が速く実行されることが起きる http://mevius.5ch.net/test/read.cgi/tech/1751545806/585
586: デフォルトの名無しさん [sage] 2025/07/30(水) 16:10:27.29 ID:aMDk5tN6 だからさー計算量ってそういう比較をするためにあるんじゃないんだって CS101の超基礎だからちゃんと勉強しなよ http://mevius.5ch.net/test/read.cgi/tech/1751545806/586
587: デフォルトの名無しさん [sage] 2025/07/30(水) 16:28:45.91 ID:zYz0+G1r >>585 はいはい 計測してからほざけ http://mevius.5ch.net/test/read.cgi/tech/1751545806/587
588: デフォルトの名無しさん [sage] 2025/07/30(水) 17:11:45.14 ID:cfT0F8KB 実効速度の比較の場合 計算量はNが無限近くに大きい時のみ有効なんだよ Nが無限近いと係数がいくら大きくても無視できる ところが現実にはコンピューターで扱えるNは小さな有限値だから係数を考慮しないと実効速度は逆転しちゃう http://mevius.5ch.net/test/read.cgi/tech/1751545806/588
589: デフォルトの名無しさん [sage] 2025/07/30(水) 18:05:23.41 ID:Kp0t8wWh O(1)とO(n)の話だったのにO(n)とO(n log(n))にすり替えて自己正当化しようとするところがいかにも複おじ仕草 http://mevius.5ch.net/test/read.cgi/tech/1751545806/589
590: デフォルトの名無しさん [sage] 2025/07/30(水) 19:07:56.72 ID:hgMZBDIB >>581 そのメモリ移動もまとめてキャッシュに乗るから速いね http://mevius.5ch.net/test/read.cgi/tech/1751545806/590
591: デフォルトの名無しさん [sage] 2025/07/30(水) 19:41:04.04 ID:ZSzdQGzh DDRn-SDRAMからキャッシュへのfetch時間は、12(ns)位だから、メモリコントローラが賢ければ、 3GHzのCPUの場合、36クロック位で済むので、めちゃくちゃ遅いわけではない。 http://mevius.5ch.net/test/read.cgi/tech/1751545806/591
592: デフォルトの名無しさん [sage] 2025/07/30(水) 19:44:24.21 ID:jptgQq59 で、結局Rustでは実際どういうときにリンクトリスト使うの? http://mevius.5ch.net/test/read.cgi/tech/1751545806/592
593: デフォルトの名無しさん [sage] 2025/07/30(水) 20:03:01.97 ID:ZSzdQGzh Grokによれば、以下のように、DDR5 SDRAMからキャッシュに乗せるまでの時間は、8〜20(ns)程度らしい。 これは、3GHz の CPU だと 24〜60 (クロック) 程度に相当する時間。ものすごく遅いわけではない。 「 実測値として、Intelのx86 CPU(例:12th/13th/14th Gen Core)+DDR5構成でのプリフェッチ完了時間は、以下のように報告されています():標準的なDDR5-4800構成:約15〜25 ns(L1/L2へのプリフェッチ)。 高性能DDR5-7200構成:約10〜20 ns。 最適化された環境(低CL、オーバークロック):8〜15 ns。 」 http://mevius.5ch.net/test/read.cgi/tech/1751545806/593
594: デフォルトの名無しさん [sage] 2025/07/30(水) 20:11:57.87 ID:ZSzdQGzh 大体で言えば、32バイト位の領域がキャッシュに乗っていない場合に、24〜75 (クロック) 程度の追加時間が必要になる。 しかし、そこから連続するメモリーにアクセスしている場合には、追加時間は 0 クロック。 通常、1つの構造体やクラスに対してまとまって処理するが、処理に本質的に必要な時間が 100 クロックだとすると、 そこに、24〜70 クロック程度が上乗せされることになる。だから、トータルだと、24%〜75% 程度、処理時間が 長くかかる、ということになる。 もしも、本質的な処理に必要な時間が 10 クロックのように非常に粒度が小さい処理の場合だと、 キャッシュに乗っていれば、10 クロックだけで済むところが、34〜85 クロックかかることになる。 その場合は、3.4倍から8.5倍の時間がかかる、ということになる。 だから、リンクリストの場合、1つのノードのバイト数が少なかったり、ループの中で1ノードあたりに処理 する内容が少ないならば、キャッシュに乗っている事が重要になる事が有る。 しかし、1つのノードのバイト数が大きかったり、ループの中で処理する1ノードあたりの処理が 大きい場合は、キャッシュミスの影響をあまり気にしなくてよい。 http://mevius.5ch.net/test/read.cgi/tech/1751545806/594
595: デフォルトの名無しさん [sage] 2025/07/30(水) 20:19:57.86 ID:ZSzdQGzh 具体例で言うと、大量の3Dの座標データなどに対して、CPUで単純に平行移動を書けるような場合は、SIMD命令を使わない場合、 1点当たりの処理は、ループ自体に必要な時間が5クロック、足し算に必要な時間が3次元の場合、3クロックで、 全体で、1点当たり8クロック、と見積もれる。ループを展開して、例えば、8点ずつ処理したりすれば、一点当たりに 必要なクロック数はもっと下げられる。SIMD命令を使えば、もっと下げられる。 このような場合は、LinkedList(list) よりも、ArrayList(vector)の方が適す。 しかし、1行に80文字くらい入っているようなテキストの1行を処理する場合、1行を処理するには数百クロックが必要になり、 行全体を収める構造としては、LinkedListでも、キャッシュミスによる速度低下の影響は軽微。 http://mevius.5ch.net/test/read.cgi/tech/1751545806/595
596: デフォルトの名無しさん [sage] 2025/07/30(水) 20:27:23.39 ID:zYz0+G1r すげーわw 初手から間違った方向の議論してるのに早く気付け http://mevius.5ch.net/test/read.cgi/tech/1751545806/596
597: デフォルトの名無しさん [sage] 2025/07/30(水) 20:46:03.62 ID:ZSzdQGzh 高速なプログラムを作った人が「キャッシュの事も考慮することで高速化しています」と言っていたとしても、 それは、キャッシュ以外の部分が既に早く作りこまれた後だからの話。大部分の遅さの原因はキャッシュの事を気にする 以前の問題で、大半はLinkedListを使うべき場所でArrayListを使っている事だったりする。 なぜなら、キャッシュミスは、24〜75クロック程度の時間増加にしかならないからだ。 http://mevius.5ch.net/test/read.cgi/tech/1751545806/597
598: デフォルトの名無しさん [sage] 2025/07/30(水) 21:02:52.82 ID:S65PQfLi 机上の空論プログラマ いるよね http://mevius.5ch.net/test/read.cgi/tech/1751545806/598
599: デフォルトの名無しさん [sage] 2025/07/30(水) 21:07:04.54 ID:W/B9cxh8 俺はプログラミングばかりしている人間だし、高速化技術には定評があるから、机上の空論家ではない。 実際に作ったものの速度を見ると、どうやってこんなに高速化したのか分からず目を白黒させた人がいる。 http://mevius.5ch.net/test/read.cgi/tech/1751545806/599
600: デフォルトの名無しさん [sage] 2025/07/30(水) 21:08:49.52 ID:W/B9cxh8 ID:ZSzdQGzh が俺だ。俺は、高速化技術の第一人者であり、先生と呼ばれる人間だ。 http://mevius.5ch.net/test/read.cgi/tech/1751545806/600
601: デフォルトの名無しさん [sage] 2025/07/30(水) 21:12:48.14 ID:9ZmySMAs 草 リンクリストは要素毎にポインタを持つ必要があるから、仮にstrのリストとすると要素あたりのサイズはダブルリンクリストの場合は倍となり、 キャッシュミスを考慮しないとしても単純にスキャン量が倍になる http://mevius.5ch.net/test/read.cgi/tech/1751545806/601
602: デフォルトの名無しさん [sage] 2025/07/30(水) 21:14:52.61 ID:W/B9cxh8 はっきり言って、高速化に関しては、教科書を書いている人は間違っている事が多い。 こんなところに買いても嘘だと思われて終わりだろうが、1つの証拠は、俺の作ったアプリは異常に速度が速い。 これは嘘ではない。速度を得たければ、ArrayList(std::vector)だけでは駄目で、LinkedList(std::list)を効果的に使う必要がある。 http://mevius.5ch.net/test/read.cgi/tech/1751545806/602
603: デフォルトの名無しさん [sage] 2025/07/30(水) 21:15:44.64 ID:W/B9cxh8 >>601 それでも速い。 http://mevius.5ch.net/test/read.cgi/tech/1751545806/603
604: デフォルトの名無しさん [sage] 2025/07/30(水) 21:17:52.50 ID:R2zwxvxE >>602 では試しにサンプルコードを提示してくれないか? それを動かしてみて実際に速いと体験してみたい http://mevius.5ch.net/test/read.cgi/tech/1751545806/604
605: デフォルトの名無しさん [sage] 2025/07/30(水) 21:22:58.73 ID:S65PQfLi GrokにDDRのレイテンシ聞いてる時点でど素人じゃん 値おかしいし http://mevius.5ch.net/test/read.cgi/tech/1751545806/605
606: デフォルトの名無しさん [sage] 2025/07/30(水) 21:36:07.17 ID:W/B9cxh8 >>605 俺はプログラミングばかりやっていたので、メモリーのクロック数の実際の値には詳しくない。 ハードに詳しいようなタイプのパソコン博士ではない。 http://mevius.5ch.net/test/read.cgi/tech/1751545806/606
607: デフォルトの名無しさん [sage] 2025/07/30(水) 21:36:37.58 ID:W/B9cxh8 >>604 嫌だ。 http://mevius.5ch.net/test/read.cgi/tech/1751545806/607
608: デフォルトの名無しさん [sage] 2025/07/30(水) 21:37:49.82 ID:W/B9cxh8 なぜいやかと言うと、俺の知見や技術を、 当たり前であったかのように論文や本などに記載 する人がいるからだ。 http://mevius.5ch.net/test/read.cgi/tech/1751545806/608
609: デフォルトの名無しさん [sage] 2025/07/30(水) 22:01:32.02 ID:IkZxqK3l >>600 数学100点先生は高速化技術の第一人者でもいらっしゃられたのですね >>597 >大部分の遅さの原因はキャッシュの事を気にする以前の問題で、大半はLinkedListを使うべき場所でArrayListを使っている事だったりする。 本当にそんな事例があるのならば ぜひ具体的なコードを挙げていただけませんか http://mevius.5ch.net/test/read.cgi/tech/1751545806/609
610: デフォルトの名無しさん [sage] 2025/07/30(水) 22:01:33.80 ID:GCxxEIm4 「いる」ではなく「いた」なら使ってもいい http://mevius.5ch.net/test/read.cgi/tech/1751545806/610
611: デフォルトの名無しさん [sage] 2025/07/30(水) 22:20:47.28 ID:zYz0+G1r >>606 それでよく高速化の専門家自称できんのな お前メモリーアクセスオーダーとかも理解できてないだろ 中の下を自覚したほうがいいぞ http://mevius.5ch.net/test/read.cgi/tech/1751545806/611
612: デフォルトの名無しさん [sage] 2025/07/30(水) 22:28:25.25 ID:bASHA+tv 100点先生は複雑な並列は専門外だったはず メモリ同期の抽象化やそれを用いたロックフリーアルゴリズムなど知らないと思う http://mevius.5ch.net/test/read.cgi/tech/1751545806/612
613: デフォルトの名無しさん [sage] 2025/07/30(水) 22:52:44.16 ID:+nnd8qy9 >>612 > メモリ同期の抽象化 横だけど、抽象化だけじゃなくてテストは必須な ユーザー環境でメモリオーバークロックやタイミングチューンでTSOが保たれてない場合をいくつも見たから http://mevius.5ch.net/test/read.cgi/tech/1751545806/613
614: デフォルトの名無しさん [sage] 2025/07/30(水) 23:25:58.88 ID:g7G1hz5M プログラミングではTotal Store Orderが保たれないハードを相手にする必要はないけど そのような破綻したハードが存在することを知っておかないと 正しく動かない環境があった時に原因が分からず悩みそうだ http://mevius.5ch.net/test/read.cgi/tech/1751545806/614
615: デフォルトの名無しさん [sage] 2025/07/31(木) 00:30:01.24 ID:QRajgvO2 知りたいと欲する者が実在すればいいけど 登場人物全員無欲だったりしたら欲しくもない物を押し売りするのは偽善だよ http://mevius.5ch.net/test/read.cgi/tech/1751545806/615
616: デフォルトの名無しさん [sage] 2025/07/31(木) 17:04:11.04 ID:HwmVfmnZ おすすめのLinuxネイティブGUIライブラリ http://mevius.5ch.net/test/read.cgi/tech/1751545806/616
617: デフォルトの名無しさん [sage] 2025/08/01(金) 06:41:29.25 ID:GwIUJJIi ネイティブとそれ以外は地球と宇宙のように分断されている 地球に隕石を落とせば解決するという風潮がある http://mevius.5ch.net/test/read.cgi/tech/1751545806/617
618: デフォルトの名無しさん [sage] 2025/08/01(金) 07:22:58.63 ID:k4bix39w >>616 RustならTUIで作れ http://mevius.5ch.net/test/read.cgi/tech/1751545806/618
619: デフォルトの名無しさん [sage] 2025/08/01(金) 07:28:36.21 ID:MHdoviLB いやGUIでいいやん、楽だぞ http://mevius.5ch.net/test/read.cgi/tech/1751545806/619
620: デフォルトの名無しさん [sage] 2025/08/01(金) 11:46:13.99 ID:cEhKZFCe TUIってGUIじゃなかったのか http://mevius.5ch.net/test/read.cgi/tech/1751545806/620
621: デフォルトの名無しさん [sage] 2025/08/01(金) 16:11:21.56 ID:8q5e+r5H 最近のTUIブーム笑うわ 画期的とかいってるやついるし 昔からあるから http://mevius.5ch.net/test/read.cgi/tech/1751545806/621
622: デフォルトの名無しさん [sage] 2025/08/01(金) 16:18:35.82 ID:D5M25Ws+ TUI が画期的なのではなくて React 風の考え方を導入したフレームワークの存在など、 モダンな UI 記述を TUI の世界に持ち込んできたことが流行の中心にある。 つまり文字中心のターミナルで充分な表現力だったのではないか、 今まで不必要にグラフィカルな表現をしていたのではないかという見直しだ。 http://mevius.5ch.net/test/read.cgi/tech/1751545806/622
623: デフォルトの名無しさん [sage] 2025/08/01(金) 16:20:56.12 ID:8q5e+r5H はいはい リアクティブの考え方自体昔からある Webあがりは歴史を知らない http://mevius.5ch.net/test/read.cgi/tech/1751545806/623
624: デフォルトの名無しさん [sage] 2025/08/01(金) 16:42:15.75 ID:JTQ+rqjD RUST自体は何言語で作られてるの http://mevius.5ch.net/test/read.cgi/tech/1751545806/624
625: デフォルトの名無しさん [] 2025/08/01(金) 16:46:03.35 ID:8ljNi7o8 ほんとTUIはいまさら ncursesで充分 http://mevius.5ch.net/test/read.cgi/tech/1751545806/625
626: デフォルトの名無しさん [] 2025/08/01(金) 16:56:22.01 ID:8ljNi7o8 nvimブーム ↓ ターミナル回帰 ↓ TUIブーム←イマココ ↓ あれ?nvimよりemacsの方が便利じゃね? ↓ emacsブーム ↓ RMSマンセー ↓ 世界中が共産主義化 http://mevius.5ch.net/test/read.cgi/tech/1751545806/626
627: デフォルトの名無しさん [sage] 2025/08/01(金) 16:57:24.56 ID:GFjMvt/F 近年はPCのネイティブアプリの衰退が著しいからね アプリといえば一般的には①Webアプリか②Webアプリをネイティブアプリのガワで包んだものだけになりつつあり、 それに加えて開発者に限っては③ターミナル上のCUIアプリ(TUIまたはCLI)のオプションがある で開発者自身が使うためのちょっとしたツールを作るときにはサーバーが必要だし制約の多い①とクソ重い②は除外され、③が選ばれる状況 一昔前はネイティブも有力な選択肢だったけど、もはやコミュニティが衰退しすぎて一部の物好きだけが弄る特殊なオモチャになってる http://mevius.5ch.net/test/read.cgi/tech/1751545806/627
628: デフォルトの名無しさん [sage] 2025/08/01(金) 17:04:22.69 ID:9evqpY+Q >>624 Rustコンパイラも当然Rustで記述されているよ http://mevius.5ch.net/test/read.cgi/tech/1751545806/628
629: デフォルトの名無しさん [] 2025/08/01(金) 17:25:44.86 ID:M2Mi5H7J guiは各osごとに調整が必要じゃけどtuiだったらターミナルあれば動くしな🐼 http://mevius.5ch.net/test/read.cgi/tech/1751545806/629
630: デフォルトの名無しさん [sage] 2025/08/01(金) 18:16:23.15 ID:YggNYFjx プログラマ(html javascript含む)の9割はemacsを知らない http://mevius.5ch.net/test/read.cgi/tech/1751545806/630
631: デフォルトの名無しさん [sage] 2025/08/01(金) 19:31:47.77 ID:D5M25Ws+ >>539 Rust コンパイラのフロントエンドは Rust で書かれているが、 LLVM に乗っかっているのでそこまで含めた処理系全体としてなら C++ の割合がかなり多いと言えるかもしれない。 http://mevius.5ch.net/test/read.cgi/tech/1751545806/631
632: デフォルトの名無しさん [sage] 2025/08/02(土) 15:43:06.99 ID:w1KV54wn >>549 一般的に抽象化レイヤーはその機能を抽象的なインターフェイスつまりRustではトレイトで表現する 上位レイヤーではそのトレイトのメソッドを利用してコードを書く 下位レイヤーではそのトレイトのメソッドを実装するコードを書く トレイト以外に接点を持たせないことでコードが分離でき単体テストも可能になる http://mevius.5ch.net/test/read.cgi/tech/1751545806/632
633: デフォルトの名無しさん [sage] 2025/08/02(土) 15:43:51.43 ID:R3jtdO6Z >>611 おまえ、プログラミングでは結果出せてないだろ。 この分野は、偉い人に見てめてもらった、とかじゃダメな分野なんだ。 偉い人が間違えているから。 http://mevius.5ch.net/test/read.cgi/tech/1751545806/633
634: デフォルトの名無しさん [sage] 2025/08/02(土) 16:51:47.55 ID:5fd/P2wb >>632 抽象化レイヤーという言葉を勘違いしてると思われる 何らかの実装を隠蔽したレイヤーくらいの意味しかなくて構造体だけでも抽象化レイヤーになりうる むしろそっちのほうが多いくらい トレイトを活用したものでなくても接点が明確ならコードも分離できるし単体テストも可能 依存性反転が必要ならトレイトが必須 >>549は文脈からするとC++のライブラリ実装を隠蔽して抽象度を上げたレイヤーをRustで書く方法という意味で書いてると思われる http://mevius.5ch.net/test/read.cgi/tech/1751545806/634
635: デフォルトの名無しさん [sage] 2025/08/02(土) 17:12:01.61 ID:w1KV54wn >>634 構造体は単なる型に過ぎないため抽象レイヤーにならないよ 簡易実装でなければ依存制逆転は必須なのでトレイトも必須 上位層も下位層もトレイトのみに依存して互いは無関係にできることが抽象レイヤー 例えば上位または下位を別のものやモックに置き換えてもコードが動く必要がありそこをトレイトが実現するよ http://mevius.5ch.net/test/read.cgi/tech/1751545806/635
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.035s