次世代言語26 TypeScript Swift Go Kotlin Nim

■ このスレッドは過去ログ倉庫に格納されています
2022/06/21(火) 09:27:46.30ID:5vOFCGpG
スレタイ(順番はRedMonk準拠)以外の言語もok

※ Rustは現世代最強言語なので除外します

前スレ

次世代言語25 TypeScript Swift Go Kotlin Rust Nim
https://mevius.5ch.net/test/read.cgi/tech/1650185555/
504デフォルトの名無しさん
垢版 |
2022/07/26(火) 00:30:04.25ID:6K/UlhEh
>>476
そうだね何でもgrep使えば一番早いと思うよ(棒
あ、wcの併用も可だと思う
505デフォルトの名無しさん
垢版 |
2022/07/26(火) 00:33:32.10ID:7eeTS5R1
Rustがこんなに遅いとは知らんかった。
2022/07/26(火) 01:36:48.26ID:gGUkeHRo
いつものやつ貼っておくか
https://benchmarksgame-team.pages.debian.net/benchmarksgame/box-plot-summary-charts.html
ChapelとJuliaすごいじゃん
2022/07/26(火) 05:00:13.51ID:O8zJADrT
ワードカウントの結果だけで性能評価してしまうプログラマがいるんですか!?
2022/07/26(火) 08:14:27.14ID:sEULh4Zl
>>503
少し試したことあるけれど、別物だったよ。
イメージとしては、PyPyあたり。
2022/07/26(火) 08:27:06.16ID:B/e7/0Va
Rustのコードがおかしいと言うなら、改善したコード出せばいいんじゃない?
ワードカウントじゃ言語の性能はわからないとか言うんだったら、Rust有利なベンチマーク作ればいいんじゃない?

Rust簡単とか言っているやつなら余裕だろ。
2022/07/26(火) 08:44:40.79ID:/siOCA+g
批判されていることは「性能が悪い」というより「コストの割には性能が微妙」というニュアンスなので
コードを一行も書かないことがコスト最小なんだよ
コストの話をするとコードを書く奴がいなくなる
2022/07/26(火) 10:02:50.90ID:dWbaeKdQ
高級機能があってランタイム最強!っていう厨二病的なモチベーションだからほっとけばいいんだよ。
そのうち気づくし、気づかなくても知ったこっちゃない。
2022/07/26(火) 10:11:09.19ID:cX/Q+77r
>>510
その意味で重要なのはRustの非最適化版がGoより遅く、Java、C#と大差ないという事実の方だな
RAIIは遅い
2022/07/26(火) 10:29:35.69ID:NhFYQzcJ
Rust遅すぎじゃね?

https://res.cloudinary.com/practicaldev/image/fetch/s--n3XlUkmN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cqj6u280qmdwq7fgnw5h.png
2022/07/26(火) 10:43:17.89ID:/siOCA+g
RAIIだけの問題ならGoは使わない方がよさそう
C++だけで書いてexitとabortを比較とかすればいいのでは
2022/07/26(火) 11:52:47.41ID:gfJAfx82
RAIIはメモリ解放タイミングが決定的なのがスッとするんよ
ガベコレの場合に開放を保留しておいて
プログラムの終了がすぐだから個別の開放はしないってときは
そりゃかえってガベコレ方式のほうがメモリ関係の全体コスト少なくてもおかしくない
2022/07/26(火) 12:04:42.36ID:04PZVssu
CPUバウンドでも対してGoと変わらないことがあるんだから
IOバウンドの用途でRustを使うメリットなんて皆無
メモリ効率ガーGCガーとかクソどうでもいい

OS開発とか組み込みとかなら重要なんだろうけど
517デフォルトの名無しさん
垢版 |
2022/07/26(火) 12:08:48.07ID:DIb0h0GI
>>516
組み込みはC/C++の独壇場なのだから、ここにRustが入ればより良い製品が増えるだろ
2022/07/26(火) 12:14:19.45ID:m36KkBXx
CPUバウンドだったとしても実装に使ったアルゴリズムで劣ってればそりゃRustやCでも余裕で負けるだろう
519デフォルトの名無しさん
垢版 |
2022/07/26(火) 12:18:31.42ID:MxJrqhMY
そもそも非最適化版でベンチマーク比較する意味ねーだろ、デバッグ中や開発中でもねーのに。
2022/07/26(火) 12:21:17.66ID:kU0OGDST
>>519
そういう意味の非最適化じゃねーから
2022/07/26(火) 12:56:48.38ID:cX/Q+77r
>>519
Rustの "Zero Overhead Abstruction" を活用した結果遅くなったということだ
2022/07/26(火) 16:33:28.70ID:gGUkeHRo
プロファイルとって分析した上で遅い原因について語ってるの?ただの憶測?
2022/07/26(火) 16:41:00.17ID:lSrKh9WN
昔あったc++よりc#の方が速いケースがあるみたいなどうでもいい内容に思えるけど
2022/07/26(火) 16:51:02.98ID:g3j+kypL
>>523
dotnetの方がCPUに対して最適化された命令セットにできるってのはまああり得るっちゃあり得るよね
2022/07/26(火) 16:57:23.19ID:m36KkBXx
命令セット?
C++のコンパイラがクソい命令セットを使うことがあり得る、って話?
そりゃ処理系によってはそうだろうけど
526デフォルトの名無しさん
垢版 |
2022/07/26(火) 17:06:31.29ID:IrL7txwd
NTTグループで7月から3万人が原則テレワークに、遠方からの飛行機出社もOK

NTTグループは、従業員の勤務形態を原則としてテレワークとする新制度を
2022年7月1日から導入する。まず持ち株会社のNTTやNTT東日本、NTT西日本、
NTTドコモ、NTTデータなどの主要会社から導入する。当初は約3万人を対象とする。
テレワークを原則とする部署は各社で決める。
まずは人事や総務といった間接部門や企画、システム開発などテレワークに
向く部署が対象となる見込みだ。新制度では、従業員の居住地の制限もなくす。
従来は「通勤時間が2時間程度」という制限があったが、国内のどこにでも
居住して勤務できるようになる。出社が必要な場合は、出張扱いとして航空機を
利用した出社も認める。日付をまたぐ場合は、宿泊費も会社が負担する。
2022/07/26(火) 18:18:56.01ID:sEULh4Zl
>>525
AMDとIntelの違いや世代でも違うし、同じ命令でも特性が違ったりするんじゃね?
2022/07/26(火) 18:26:22.14ID:/siOCA+g
仮にそれが原因だったとして
その実験データって再現性とかあるんですか
2022/07/26(火) 18:54:20.86ID:lSrKh9WN
twiterでMSX3と言うのが流れてきた
このハードで勝負だ!とはならんなあw
2022/07/26(火) 19:09:11.50ID:gd/liWqB
countwordsを試してみたけど
optimizedで速い順にC > Rust > Go > Nim
(比率 1 : 1.69 : 2.03 : 3.42)

simpleは Nim > Go > C > Rust
(比率 1 : 1.09 : 1.22 : 1.38)

simpleでRustが遅いのはUTF-8チェックとhash関数の遅さと考えれば納得できる範囲かな
ZigやC++はコンパイルエラーになったから除いた
2022/07/26(火) 19:15:29.79ID:lSrKh9WN
Nimは毎回インストールするけどwindowsが警告が出すんだよな

防疫して一部のファイル消したりしていじわるしてくる
532デフォルトの名無しさん
垢版 |
2022/07/26(火) 20:25:55.51ID:GQvz79KS
意地悪というよりイジメじゃん。
慰謝料、億とれるよ。
533デフォルトの名無しさん
垢版 |
2022/07/26(火) 20:39:29.27ID:GQvz79KS
RustはC/C++にダブルスコアで負けてるじゃん。
2022/07/26(火) 20:45:27.29ID:m36KkBXx
イジメはイジメられるほうに原因がある
いじめられる側が悪い
2022/07/26(火) 21:21:03.08ID:ceC8PDvA
cは単語ごとに細切れで確保
item.key = strdup(word); // simple.c
char* word_copy = malloc(word_len); // optimized.c
するんじゃなくてこっちもwordコピー用の領域をおっきく取っておいて
そっちをちまちま端から使っていってみたいけど
2022/07/26(火) 21:48:16.70ID:/siOCA+g
プログラミングでは原因と結果というより命令と実行という方がわかりやすい
命令する側が生殺与奪の権を握っている事実が
2022/07/26(火) 22:00:26.74ID://WUsWcW
とりあえずこんなもん
Language | Simple | Optimized | Notes
------------- | ------ | --------- | -----
`grep` | 0.15 | 0.15 | `grep` baseline; optimized sets `LC_ALL=C`
`wc -w` | 1.20 | 0.99 | `wc` baseline; optimized sets `LC_ALL=C`
C | 3.34 | 0.93 |
Go | 3.38 | 1.30 |
Rust | 3.69 | 1.40 | by Andrew Gallant
Rust-fixhm | 3.25 | | by Andrew Gallant
Rust-buf | | 1.31 | by Andrew Gallant
Rust-unsafe | | 1.18 | by Andrew Gallant
Rust-customhm | | 0.98 | by Andrew Gallant
Python | 12.15 | 5.27 |

Rustは懸念点が多いのでいくつかやった。
-fixhmがハッシュマップを速いものに切り替えたやつ、-bufが標準出力にバッファが噛んでなかったのを直したやつ、-unsafeと-customhmが同梱されてたより高速なやつ。
こうしてみるとRustは標準ライブラリが生っぽかったりセキュリティのために性能を犠牲にしたりとちぐはぐな感じがあるな。
2022/07/26(火) 23:12:57.71ID:gsmRiHCH
>>531
Nim言語はマルウェアを作る人達に使われているらしい。
アンチウィルスソフトは単純なパターンマッチングで動いているから、
悪いことしないNimのコードでもマルウェアだと誤検出されてしまうらしい。
2022/07/27(水) 00:56:57.97ID:DVht3D3b
>>537
これgrepが一番速いけどagとかripgrepだとどうなるの?
2022/07/27(水) 01:28:29.17ID:9E9DYfCO
Cで書かれたgrepより、Goで書かれたptのほうが早いし高機能だよ
2022/07/27(水) 01:34:47.64ID:mzblDH8U
まあぶっちゃけ他の言語でもgrepと同じように
trieみたいな文字列処理用のアルゴリズム使えば速度はだいぶ変わると思うけどね
なんで泥臭い処理を書いてるのか
そりゃgrepが1番早いだろと
2022/07/27(水) 02:00:24.66ID:mzblDH8U
言語の速度を比較するというのならアルゴリズムは揃えるべき
でないと何が何やらわからない
2022/07/27(水) 02:42:12.43ID:RFLOe/ZA
grepは`grep foobar`を実行してファイルをなめてるだけだぞ
544デフォルトの名無しさん
垢版 |
2022/07/27(水) 04:04:05.75ID:ogiMaWw7
RustコンパイラはC++で書かれている。
2022/07/27(水) 04:20:50.92ID:0dTQJF2a
NimコンパイラはNimで書かれている。
けどgccだけからNimコンパイラをビルドできるようにするためにNimのコンパイラのソースコードをC言語に変換したもの(csources_v1)がある。
2022/07/27(水) 06:50:28.42ID:mzblDH8U
>>543
だからgrepのアルゴリズムのことだよ
2022/07/27(水) 06:50:42.76ID:mzblDH8U
>>544
あの、rustで書かれてます
2022/07/27(水) 08:43:02.13ID:jeHuuvJh
毎月のようにバージョンアップしろと言ってくるこの原因はメモリ解放ミス?

Chrome version 103 脆弱性
[重要]CVE-2022-2477 : Guest View解放後の使用による問題
[重要]CVE-2022-2478 : PDF解放後の使用による問題
[重要]CVE-2022-2480 : Service Worker API解放後の使用による問題
[重要]CVE-2022-2481: Views解放後の使用による問題
2022/07/27(水) 09:03:50.25ID:xJ8anoa4
>>546
アルゴリズム以前にやってる事が違うだろ...
2022/07/27(水) 10:01:21.94ID:+1BW8lNB
>>548
解放のミスというより参照のミス(エスケープ)だね
2022/07/27(水) 10:53:41.19ID:eJc+JUck
>>548
Rustへ移行すればそういうバグはコンパイル時にエラーとなるため確実に防げる
2022/07/27(水) 10:56:48.68ID:BnCx/rjI
>>541
grepはBoyer-Mooreでトライ木は使わない

Rustでハッシュベースの辞書の代わりにトライ木使ってるバージョンがあってそっちの方が多少速かったけどアルゴリズム的に優れてるというよりは対象データ依存
2022/07/27(水) 11:24:12.26ID:u+Gi34S+
複数単語マッチングとかでもないのにトライ使う必要性がそもそもない。
めちゃくちゃな理解してる奴が多すぎだな。
2022/07/27(水) 14:15:44.70ID:KqwEERri
>そりゃgrepが1番早いだろと
>そりゃgrepが1番早いだろと
>そりゃgrepが1番早いだろと
2022/07/27(水) 16:20:29.48ID:U29fl458
>>549
だから>>541は全言語で同じアルゴリズムでgrepを実装してと比較せよと言ってるんでしょ

トライだろうかボイヤームーアだろうがなんでも良いが漸近的な計算量が確定してるようなデータ構造に揃える

データ構造依存するなら尚更
全ての文字列のprefixが同じだとしたらどうなるか?
めちゃくちゃ長い文字列だとしたら?
例えばGCが発動しない状態のGoは流石に速いでしょう

全部同じアルゴリズムかつ同じような状態を実現するコードでないと言語の速度比較など意味がないというのはわかる

今回のように実装者によってゴミコード書いて遅い!とか騒いでるバカには辟易する

自分がバカなのに他人をバカ呼ばわりしてるんだからな
2022/07/27(水) 16:48:07.16ID:9E9DYfCO
全く同じアルゴリズムで比較するべきとか言い出すならそもそもこんな複雑なタスクでベンチマークするのがおかしい
もっと簡単なタスクをいろいろ用意してそれぞれでベンチマーク比較したほうがいい
557デフォルトの名無しさん
垢版 |
2022/07/27(水) 17:31:41.43ID:ABAu9/vb
言語の生産性が低いからクソ遅いゴミコードがベンチマークにかけられてる説
生産性が高かったら、速いコードをシュッと書けるよね?
2022/07/27(水) 17:32:27.80ID:DVht3D3b
>>556
>>506で貼ったサイトがまさにそれをやっている
2022/07/27(水) 18:10:30.67ID:sVsDKGUs
>だから>>541は全言語で同じアルゴリズムでgrepを実装してと比較せよと言ってるんでしょ

全言語同じアルゴリズムでgrep実装したら
「そりゃgrepが1番早いだろと」という結論になるんだww
嘘つき加減がアベノシグサだね
2022/07/27(水) 18:18:20.30ID:H9RPm4O1
そうかな

一般的で複雑な機能を持った汎用性の高い標準ライブラリを使うと遅くなり
手書きでベタのアルゴリズムを書いたら早くなるとする

それは意味のある比較なんだろうか?
2022/07/27(水) 19:00:59.22ID:xJ8anoa4
>>555
だからアルゴリズム以前にやってる事が違うからgrepやwcなんて比較しても意味ないぞ
ワード毎のカウントにBoyer-Mooreなんて使えないし>>430のリンク先にも
Note that grep and wc don’t actually solve the word counting problem, they’re just here for comparison.
って書いてある
まあそもそもなんでgrepやwcを載せてるのかはよくわからんけど
2022/07/27(水) 19:12:28.53ID:H9RPm4O1
wcが乗ってる理由がわからないなら病気だと思うわ
2022/07/27(水) 19:46:09.22ID:4voLS+/5
https://res.cloudinary.com/practicaldev/image/fetch/s--n3XlUkmN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cqj6u280qmdwq7fgnw5h.png

deno=Rust

これがすべてじゃね?
2022/07/27(水) 20:07:25.39ID:xJ8anoa4
>>562
マジで言ってるのか?w
man wc でググった方がいいぞ
2022/07/27(水) 20:29:09.02ID:mzblDH8U
>>555
そうそう
全く違うものを比較しても無意味ってことを言いたかった
俺がバカすぎてみんなに伝わらなかったようだw
まあこの比較自体にそこまで本気になるのは俺らぐらいだと思うw
しかしあなたの計算量やアルゴリズムを考慮した考え方のセンスは素晴らしい
言語間のベンチマークなんて余程のことでない限り成立しないのにやたらやりたがるよな
Rust使い以外はこんな人ばっかなのか?
2022/07/27(水) 21:01:28.44ID:FD7fUZPx
散々書かれてるけどもgrepは存在しないfoobarを探したときの速度だしwcは単語数を数えてるだけでベンチに使われてるプログラムのように出てきた単語の数を数えたりはしてないぞ。
マシンパワーの指標と考えるべきだろうな
567デフォルトの名無しさん
垢版 |
2022/07/27(水) 21:14:23.71ID:Bpp5zdZY
そんなこと言ったら嬉々としてこのベンチマーク探してきたドヤってた >430 か顔真っ赤にしてしまうだろ。
2022/07/27(水) 21:20:19.70ID:U29fl458
>>565
少なくともC/C++/Rustの比較は無意味

メモリ使用量などを除けばマシンコードとして同一のものを吐き出すことは理論的には可能だから

突き詰めればそれが最速ということになる

つまり無意味

そういうことがわかってない人が言語間のベンチをやってるんだと思うよ
2022/07/27(水) 21:32:29.18ID:H9RPm4O1
>>568
理論的に可能?
馬鹿なんじゃない?
2022/07/27(水) 21:38:26.34ID:H9RPm4O1
声のデカい馬鹿がイキってるのがこのスレとRustスレ
2022/07/27(水) 21:40:35.04ID:mzblDH8U
>>568
Optimizeを出した時点でそうなるよね
一般的な書き方で速い言語はどれか?って切り口にしとけば面白かったのに
Optimizeとかしちゃったら余計なランタイムがついてくるGoや他の言語が速いわけがない
めちゃくちゃ勉強になる
2022/07/27(水) 21:44:09.15ID:H9RPm4O1
普通に意味あるだろ

普通にカスタマイズせずにその言語で普通に書くとどうなるかとある程度意識して書いたらどうか
それの比較に意味がないと思うならその程度なんだろうけど
2022/07/27(水) 21:46:34.35ID:H9RPm4O1
意味がないと思うなら書き込みするな
わざわざでてくんな
2022/07/27(水) 21:55:07.13ID:U29fl458
俺にとっては無意味と言ってるだけで別に意見は好きに言っていいよ

それが掲示板だ

それこそ*意味*があるなら好きにすればよろしい

俺は言語間のベンチマークは少なくとも平均計算量が理論的に導出されていて

そのアルゴリズムとデータを使い

外部ライブラリも使わずに極力プリミティブに書いて初めて意味があるものと思っている
2022/07/27(水) 21:58:12.88ID:U29fl458
ちなみに文字列処理のアルゴリズムは理論的に研究され尽くしてて

ほとんどのアルゴリズムの論文にきちんと計算量を求める式がある 

まあそれがない論文は相手にされないわけだが

話が逸れたが以上となる

これ以上言いたいこともないのでしばらくROMることにする

また面白い話題があれば口を挟むかもしれない
2022/07/27(水) 22:01:49.88ID:xJ8anoa4
>>567
いや、grepとwcは別だって明記してあるんだからそれ以外の比較は意味あるだろ
577デフォルトの名無しさん
垢版 |
2022/07/27(水) 23:31:40.93ID:ogiMaWw7
RustはPHPやPythonより遅かった。
PHPはなぜか速かった。
これが全て。
578デフォルトの名無しさん
垢版 |
2022/07/27(水) 23:36:21.59ID:ogiMaWw7
Rustの遅さより、PHPの早さに驚くベンチだろね。
579デフォルトの名無しさん
垢版 |
2022/07/27(水) 23:51:04.75ID:6nSf0k+r
意味の無いものでも普通に意味あると言い続ければ通るのが世の中よ。
580デフォルトの名無しさん
垢版 |
2022/07/27(水) 23:54:42.60ID:ogiMaWw7
どゆこと?
2022/07/27(水) 23:58:36.18ID:yuH/4Ewb
>>577
なぜそんな嘘を付くの?
Rustの方がはるかに速い結果が今回出たのに
582デフォルトの名無しさん
垢版 |
2022/07/27(水) 23:58:39.96ID:ogiMaWw7
https://news.yahoo.co.jp/articles/addb6c479375cce5a76ffeac75ef2d682f5c00aa

アワビには目や鼻、口があって、視力はもちろんあるし、海藻をかじってムシャムシャ食ってるらしいんですね。
カタツムリも巻貝で、虫ではないそうなんですよ。
カタツムリは目がありますよね。
アワビも巻貝なので目があるんだそうです。
583デフォルトの名無しさん
垢版 |
2022/07/27(水) 23:59:40.89ID:ogiMaWw7
>>581
うちではRustのほうが速かったと言い張ってる人がいるだけでしょ。
584デフォルトの名無しさん
垢版 |
2022/07/28(木) 00:00:06.26ID:GCXKHsjZ
むしろなんでRustはそんなに遅いの??
585デフォルトの名無しさん
垢版 |
2022/07/28(木) 00:01:18.06ID:GCXKHsjZ
Rustの遅さにお前が泣いた。
2022/07/28(木) 00:27:11.63ID:Prl5fpBJ
意味のあるベンチとなっていないという批判には同意だが
とりあえずこちらでも>>430の元のコードのまま確認の実行をしてみた

素人でも誰でも確認のための実行できるように実行したコマンドは以下
$ git clone https://github.com/benhoyt/countwords.git
$ cd countwords/
$ ./test.sh
$ ./benchmark.py
Timing `grep` 0.04 0.03
Timing `wc -w` 0.23 0.16
Timing C 0.74 0.19
Timing Go 0.91 0.33
Timing Rust 0.73 0.27
Timing C++ 1.49 0.24
Timing Python 1.70 1.05
Timing Ruby 2.79 2.06
...

このアルゴリズムなど各種バラバラの比較に意味があるとは思えないが
それでもRustが遅いという結果は出ていないな
2022/07/28(木) 01:19:15.66ID:pLtk3OpM
インタプ
>>578
rustは少なくともc++11よりは速い
588デフォルトの名無しさん
垢版 |
2022/07/28(木) 06:37:56.55ID:GCXKHsjZ
だが、PHPより遅い。
589デフォルトの名無しさん
垢版 |
2022/07/28(木) 07:12:43.60ID:ENEX/nTq
PHPが早い時点でベンチの方法に疑問を持つべき
2022/07/28(木) 10:51:31.30ID:GHBXY1WS
一般的な書き方で速いべき、という結論に誘導する手法に疑問を感じる

自分で断言すればすぐ終わることを他人の口から言わせることにエネルギーを使い過ぎ
2022/07/28(木) 11:44:26.44ID:Ohcf/kqZ
>>577
JITで実質コンパイルされた形になるのは分かるけどそれに最適化でも掛かってる?
2022/07/28(木) 13:06:21.33ID:rMVZEJvU
つまりはここまで全部PHPおじさんの自作自演てこと?
2022/07/28(木) 13:08:59.76ID:4pySRXlJ
PHPはインタプリタの割にはかなり速いのは事実だけど
流石にコンパイル言語より速いは普通は無いだろうなぁ
ただキャッシュされたら大きな差は出ない可能性はあるかもね
2022/07/28(木) 14:01:07.64ID:1GWFUzAq
JITをがんばればJavaやC#のような速度は出るだろう
2022/07/28(木) 14:05:09.32ID:XX9iY77s
だが、PHPより遅い。
2022/07/28(木) 18:04:41.85ID:egvelj9j
あーあ
壊れちゃった
597デフォルトの名無しさん
垢版 |
2022/07/28(木) 18:38:51.53ID:KME/vBwm
つまり >572 はPHPレベルということだ。
598デフォルトの名無しさん
垢版 |
2022/07/28(木) 19:00:49.91ID:dt3bZFXM
PHPごときに負けて恥ずかしくないの?
2022/07/28(木) 19:07:09.44ID:Vlf00JfE
でもメモリは安全だから
600デフォルトの名無しさん
垢版 |
2022/07/28(木) 19:08:34.61ID:dt3bZFXM
四季もあるの?
601デフォルトの名無しさん
垢版 |
2022/07/28(木) 19:36:49.43ID:Hv8PyQaz
PHPはNGワードで良いわもう
2022/07/28(木) 20:46:28.42ID:Prl5fpBJ
>>586で元のコード>>430のままでもRustがGoより速いとわかったが
RustがC++に負けている原因を探ると以下と判明
・Rust版の実行時間の6割以上がHashTableに費やされてる
・C版とC++版はカウント用Tableを自作しているため速い

そこで新Rust版ではC/C++版と同じアルゴリズム同じサイズのカウント用Tableを利用
またAndrew Gallant氏のRust optimized版はloop部分のコードがごちゃごちゃしているため
新Rust版ではひと目見ただけで分かる初心者でも書けるコードに改善した

これがその今回のRustコード
https://gist.github.com/rust-play/f03d2e73ee4e76acf69c98b7a8b8d322
これでC++版よりRust版が速くなった
2022/07/28(木) 20:54:03.33ID:Prl5fpBJ
>>602のRustコードを使った>>430の測定方法による結果(抜粋)

Language | Simple | Optimized | Notes
------------- | ------ | --------- | -----
Rust(New) | 0.73 | 0.21 | Optimizedが今回のソース
Rust | 0.73 | 0.27 | by Andrew Gallant
C | 0.74 | 0.19 |
Go | 0.91 | 0.33 |
PHP | 1.08 | | by Max Semenik
C++ | 1.49 | 0.24 | optimized by Jussi P, Adev, Nathan M

これでC言語よりはやや遅いが他の言語よりはRustが速くなった
Rustは「分かりやすく」「安全で」「高速な」コードを書けることが実証された
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況