スレタイ(順番はRedMonk準拠)以外の言語もok
※ Rustは現世代最強言語なので除外します
前スレ
次世代言語25 TypeScript Swift Go Kotlin Rust Nim
https://mevius.5ch.net/test/read.cgi/tech/1650185555/
次世代言語26 TypeScript Swift Go Kotlin Nim
■ このスレッドは過去ログ倉庫に格納されています
2022/06/21(火) 09:27:46.30ID:5vOFCGpG
504デフォルトの名無しさん
2022/07/26(火) 00:30:04.25ID:6K/UlhEh505デフォルトの名無しさん
2022/07/26(火) 00:33:32.10ID:7eeTS5R1 Rustがこんなに遅いとは知らんかった。
506デフォルトの名無しさん
2022/07/26(火) 01:36:48.26ID:gGUkeHRo いつものやつ貼っておくか
https://benchmarksgame-team.pages.debian.net/benchmarksgame/box-plot-summary-charts.html
ChapelとJuliaすごいじゃん
https://benchmarksgame-team.pages.debian.net/benchmarksgame/box-plot-summary-charts.html
ChapelとJuliaすごいじゃん
507デフォルトの名無しさん
2022/07/26(火) 05:00:13.51ID:O8zJADrT ワードカウントの結果だけで性能評価してしまうプログラマがいるんですか!?
508デフォルトの名無しさん
2022/07/26(火) 08:14:27.14ID:sEULh4Zl509デフォルトの名無しさん
2022/07/26(火) 08:27:06.16ID:B/e7/0Va Rustのコードがおかしいと言うなら、改善したコード出せばいいんじゃない?
ワードカウントじゃ言語の性能はわからないとか言うんだったら、Rust有利なベンチマーク作ればいいんじゃない?
Rust簡単とか言っているやつなら余裕だろ。
ワードカウントじゃ言語の性能はわからないとか言うんだったら、Rust有利なベンチマーク作ればいいんじゃない?
Rust簡単とか言っているやつなら余裕だろ。
510デフォルトの名無しさん
2022/07/26(火) 08:44:40.79ID:/siOCA+g 批判されていることは「性能が悪い」というより「コストの割には性能が微妙」というニュアンスなので
コードを一行も書かないことがコスト最小なんだよ
コストの話をするとコードを書く奴がいなくなる
コードを一行も書かないことがコスト最小なんだよ
コストの話をするとコードを書く奴がいなくなる
511デフォルトの名無しさん
2022/07/26(火) 10:02:50.90ID:dWbaeKdQ 高級機能があってランタイム最強!っていう厨二病的なモチベーションだからほっとけばいいんだよ。
そのうち気づくし、気づかなくても知ったこっちゃない。
そのうち気づくし、気づかなくても知ったこっちゃない。
512デフォルトの名無しさん
2022/07/26(火) 10:11:09.19ID:cX/Q+77r513デフォルトの名無しさん
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
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
514デフォルトの名無しさん
2022/07/26(火) 10:43:17.89ID:/siOCA+g RAIIだけの問題ならGoは使わない方がよさそう
C++だけで書いてexitとabortを比較とかすればいいのでは
C++だけで書いてexitとabortを比較とかすればいいのでは
515デフォルトの名無しさん
2022/07/26(火) 11:52:47.41ID:gfJAfx82 RAIIはメモリ解放タイミングが決定的なのがスッとするんよ
ガベコレの場合に開放を保留しておいて
プログラムの終了がすぐだから個別の開放はしないってときは
そりゃかえってガベコレ方式のほうがメモリ関係の全体コスト少なくてもおかしくない
ガベコレの場合に開放を保留しておいて
プログラムの終了がすぐだから個別の開放はしないってときは
そりゃかえってガベコレ方式のほうがメモリ関係の全体コスト少なくてもおかしくない
516デフォルトの名無しさん
2022/07/26(火) 12:04:42.36ID:04PZVssu CPUバウンドでも対してGoと変わらないことがあるんだから
IOバウンドの用途でRustを使うメリットなんて皆無
メモリ効率ガーGCガーとかクソどうでもいい
OS開発とか組み込みとかなら重要なんだろうけど
IOバウンドの用途でRustを使うメリットなんて皆無
メモリ効率ガーGCガーとかクソどうでもいい
OS開発とか組み込みとかなら重要なんだろうけど
517デフォルトの名無しさん
2022/07/26(火) 12:08:48.07ID:DIb0h0GI >>516
組み込みはC/C++の独壇場なのだから、ここにRustが入ればより良い製品が増えるだろ
組み込みはC/C++の独壇場なのだから、ここにRustが入ればより良い製品が増えるだろ
518デフォルトの名無しさん
2022/07/26(火) 12:14:19.45ID:m36KkBXx CPUバウンドだったとしても実装に使ったアルゴリズムで劣ってればそりゃRustやCでも余裕で負けるだろう
519デフォルトの名無しさん
2022/07/26(火) 12:18:31.42ID:MxJrqhMY そもそも非最適化版でベンチマーク比較する意味ねーだろ、デバッグ中や開発中でもねーのに。
520デフォルトの名無しさん
2022/07/26(火) 12:21:17.66ID:kU0OGDST >>519
そういう意味の非最適化じゃねーから
そういう意味の非最適化じゃねーから
521デフォルトの名無しさん
2022/07/26(火) 12:56:48.38ID:cX/Q+77r >>519
Rustの "Zero Overhead Abstruction" を活用した結果遅くなったということだ
Rustの "Zero Overhead Abstruction" を活用した結果遅くなったということだ
522デフォルトの名無しさん
2022/07/26(火) 16:33:28.70ID:gGUkeHRo プロファイルとって分析した上で遅い原因について語ってるの?ただの憶測?
523デフォルトの名無しさん
2022/07/26(火) 16:41:00.17ID:lSrKh9WN 昔あったc++よりc#の方が速いケースがあるみたいなどうでもいい内容に思えるけど
524デフォルトの名無しさん
2022/07/26(火) 16:51:02.98ID:g3j+kypL >>523
dotnetの方がCPUに対して最適化された命令セットにできるってのはまああり得るっちゃあり得るよね
dotnetの方がCPUに対して最適化された命令セットにできるってのはまああり得るっちゃあり得るよね
525デフォルトの名無しさん
2022/07/26(火) 16:57:23.19ID:m36KkBXx 命令セット?
C++のコンパイラがクソい命令セットを使うことがあり得る、って話?
そりゃ処理系によってはそうだろうけど
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時間程度」という制限があったが、国内のどこにでも
居住して勤務できるようになる。出社が必要な場合は、出張扱いとして航空機を
利用した出社も認める。日付をまたぐ場合は、宿泊費も会社が負担する。
NTTグループは、従業員の勤務形態を原則としてテレワークとする新制度を
2022年7月1日から導入する。まず持ち株会社のNTTやNTT東日本、NTT西日本、
NTTドコモ、NTTデータなどの主要会社から導入する。当初は約3万人を対象とする。
テレワークを原則とする部署は各社で決める。
まずは人事や総務といった間接部門や企画、システム開発などテレワークに
向く部署が対象となる見込みだ。新制度では、従業員の居住地の制限もなくす。
従来は「通勤時間が2時間程度」という制限があったが、国内のどこにでも
居住して勤務できるようになる。出社が必要な場合は、出張扱いとして航空機を
利用した出社も認める。日付をまたぐ場合は、宿泊費も会社が負担する。
527デフォルトの名無しさん
2022/07/26(火) 18:18:56.01ID:sEULh4Zl >>525
AMDとIntelの違いや世代でも違うし、同じ命令でも特性が違ったりするんじゃね?
AMDとIntelの違いや世代でも違うし、同じ命令でも特性が違ったりするんじゃね?
528デフォルトの名無しさん
2022/07/26(火) 18:26:22.14ID:/siOCA+g 仮にそれが原因だったとして
その実験データって再現性とかあるんですか
その実験データって再現性とかあるんですか
529デフォルトの名無しさん
2022/07/26(火) 18:54:20.86ID:lSrKh9WN twiterでMSX3と言うのが流れてきた
このハードで勝負だ!とはならんなあw
このハードで勝負だ!とはならんなあw
530デフォルトの名無しさん
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++はコンパイルエラーになったから除いた
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++はコンパイルエラーになったから除いた
531デフォルトの名無しさん
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++にダブルスコアで負けてるじゃん。
534デフォルトの名無しさん
2022/07/26(火) 20:45:27.29ID:m36KkBXx イジメはイジメられるほうに原因がある
いじめられる側が悪い
いじめられる側が悪い
535デフォルトの名無しさん
2022/07/26(火) 21:21:03.08ID:ceC8PDvA cは単語ごとに細切れで確保
item.key = strdup(word); // simple.c
char* word_copy = malloc(word_len); // optimized.c
するんじゃなくてこっちもwordコピー用の領域をおっきく取っておいて
そっちをちまちま端から使っていってみたいけど
item.key = strdup(word); // simple.c
char* word_copy = malloc(word_len); // optimized.c
するんじゃなくてこっちもwordコピー用の領域をおっきく取っておいて
そっちをちまちま端から使っていってみたいけど
536デフォルトの名無しさん
2022/07/26(火) 21:48:16.70ID:/siOCA+g プログラミングでは原因と結果というより命令と実行という方がわかりやすい
命令する側が生殺与奪の権を握っている事実が
命令する側が生殺与奪の権を握っている事実が
537デフォルトの名無しさん
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は標準ライブラリが生っぽかったりセキュリティのために性能を犠牲にしたりとちぐはぐな感じがあるな。
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は標準ライブラリが生っぽかったりセキュリティのために性能を犠牲にしたりとちぐはぐな感じがあるな。
538デフォルトの名無しさん
2022/07/26(火) 23:12:57.71ID:gsmRiHCH >>531
Nim言語はマルウェアを作る人達に使われているらしい。
アンチウィルスソフトは単純なパターンマッチングで動いているから、
悪いことしないNimのコードでもマルウェアだと誤検出されてしまうらしい。
Nim言語はマルウェアを作る人達に使われているらしい。
アンチウィルスソフトは単純なパターンマッチングで動いているから、
悪いことしないNimのコードでもマルウェアだと誤検出されてしまうらしい。
539デフォルトの名無しさん
2022/07/27(水) 00:56:57.97ID:DVht3D3b >>537
これgrepが一番速いけどagとかripgrepだとどうなるの?
これgrepが一番速いけどagとかripgrepだとどうなるの?
540デフォルトの名無しさん
2022/07/27(水) 01:28:29.17ID:9E9DYfCO Cで書かれたgrepより、Goで書かれたptのほうが早いし高機能だよ
541デフォルトの名無しさん
2022/07/27(水) 01:34:47.64ID:mzblDH8U まあぶっちゃけ他の言語でもgrepと同じように
trieみたいな文字列処理用のアルゴリズム使えば速度はだいぶ変わると思うけどね
なんで泥臭い処理を書いてるのか
そりゃgrepが1番早いだろと
trieみたいな文字列処理用のアルゴリズム使えば速度はだいぶ変わると思うけどね
なんで泥臭い処理を書いてるのか
そりゃgrepが1番早いだろと
542デフォルトの名無しさん
2022/07/27(水) 02:00:24.66ID:mzblDH8U 言語の速度を比較するというのならアルゴリズムは揃えるべき
でないと何が何やらわからない
でないと何が何やらわからない
543デフォルトの名無しさん
2022/07/27(水) 02:42:12.43ID:RFLOe/ZA grepは`grep foobar`を実行してファイルをなめてるだけだぞ
544デフォルトの名無しさん
2022/07/27(水) 04:04:05.75ID:ogiMaWw7 RustコンパイラはC++で書かれている。
545デフォルトの名無しさん
2022/07/27(水) 04:20:50.92ID:0dTQJF2a NimコンパイラはNimで書かれている。
けどgccだけからNimコンパイラをビルドできるようにするためにNimのコンパイラのソースコードをC言語に変換したもの(csources_v1)がある。
けどgccだけからNimコンパイラをビルドできるようにするためにNimのコンパイラのソースコードをC言語に変換したもの(csources_v1)がある。
546デフォルトの名無しさん
2022/07/27(水) 06:50:28.42ID:mzblDH8U >>543
だからgrepのアルゴリズムのことだよ
だからgrepのアルゴリズムのことだよ
547デフォルトの名無しさん
2022/07/27(水) 06:50:42.76ID:mzblDH8U >>544
あの、rustで書かれてます
あの、rustで書かれてます
548デフォルトの名無しさん
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解放後の使用による問題
Chrome version 103 脆弱性
[重要]CVE-2022-2477 : Guest View解放後の使用による問題
[重要]CVE-2022-2478 : PDF解放後の使用による問題
[重要]CVE-2022-2480 : Service Worker API解放後の使用による問題
[重要]CVE-2022-2481: Views解放後の使用による問題
549デフォルトの名無しさん
2022/07/27(水) 09:03:50.25ID:xJ8anoa4 >>546
アルゴリズム以前にやってる事が違うだろ...
アルゴリズム以前にやってる事が違うだろ...
550デフォルトの名無しさん
2022/07/27(水) 10:01:21.94ID:+1BW8lNB >>548
解放のミスというより参照のミス(エスケープ)だね
解放のミスというより参照のミス(エスケープ)だね
551デフォルトの名無しさん
2022/07/27(水) 10:53:41.19ID:eJc+JUck >>548
Rustへ移行すればそういうバグはコンパイル時にエラーとなるため確実に防げる
Rustへ移行すればそういうバグはコンパイル時にエラーとなるため確実に防げる
552デフォルトの名無しさん
2022/07/27(水) 10:56:48.68ID:BnCx/rjI >>541
grepはBoyer-Mooreでトライ木は使わない
Rustでハッシュベースの辞書の代わりにトライ木使ってるバージョンがあってそっちの方が多少速かったけどアルゴリズム的に優れてるというよりは対象データ依存
grepはBoyer-Mooreでトライ木は使わない
Rustでハッシュベースの辞書の代わりにトライ木使ってるバージョンがあってそっちの方が多少速かったけどアルゴリズム的に優れてるというよりは対象データ依存
553デフォルトの名無しさん
2022/07/27(水) 11:24:12.26ID:u+Gi34S+ 複数単語マッチングとかでもないのにトライ使う必要性がそもそもない。
めちゃくちゃな理解してる奴が多すぎだな。
めちゃくちゃな理解してる奴が多すぎだな。
554デフォルトの名無しさん
2022/07/27(水) 14:15:44.70ID:KqwEERri >そりゃgrepが1番早いだろと
>そりゃgrepが1番早いだろと
>そりゃgrepが1番早いだろと
>そりゃgrepが1番早いだろと
>そりゃgrepが1番早いだろと
555デフォルトの名無しさん
2022/07/27(水) 16:20:29.48ID:U29fl458 >>549
だから>>541は全言語で同じアルゴリズムでgrepを実装してと比較せよと言ってるんでしょ
トライだろうかボイヤームーアだろうがなんでも良いが漸近的な計算量が確定してるようなデータ構造に揃える
データ構造依存するなら尚更
全ての文字列のprefixが同じだとしたらどうなるか?
めちゃくちゃ長い文字列だとしたら?
例えばGCが発動しない状態のGoは流石に速いでしょう
全部同じアルゴリズムかつ同じような状態を実現するコードでないと言語の速度比較など意味がないというのはわかる
今回のように実装者によってゴミコード書いて遅い!とか騒いでるバカには辟易する
自分がバカなのに他人をバカ呼ばわりしてるんだからな
だから>>541は全言語で同じアルゴリズムでgrepを実装してと比較せよと言ってるんでしょ
トライだろうかボイヤームーアだろうがなんでも良いが漸近的な計算量が確定してるようなデータ構造に揃える
データ構造依存するなら尚更
全ての文字列のprefixが同じだとしたらどうなるか?
めちゃくちゃ長い文字列だとしたら?
例えばGCが発動しない状態のGoは流石に速いでしょう
全部同じアルゴリズムかつ同じような状態を実現するコードでないと言語の速度比較など意味がないというのはわかる
今回のように実装者によってゴミコード書いて遅い!とか騒いでるバカには辟易する
自分がバカなのに他人をバカ呼ばわりしてるんだからな
556デフォルトの名無しさん
2022/07/27(水) 16:48:07.16ID:9E9DYfCO 全く同じアルゴリズムで比較するべきとか言い出すならそもそもこんな複雑なタスクでベンチマークするのがおかしい
もっと簡単なタスクをいろいろ用意してそれぞれでベンチマーク比較したほうがいい
もっと簡単なタスクをいろいろ用意してそれぞれでベンチマーク比較したほうがいい
557デフォルトの名無しさん
2022/07/27(水) 17:31:41.43ID:ABAu9/vb 言語の生産性が低いからクソ遅いゴミコードがベンチマークにかけられてる説
生産性が高かったら、速いコードをシュッと書けるよね?
生産性が高かったら、速いコードをシュッと書けるよね?
558デフォルトの名無しさん
2022/07/27(水) 17:32:27.80ID:DVht3D3b559デフォルトの名無しさん
2022/07/27(水) 18:10:30.67ID:sVsDKGUs >だから>>541は全言語で同じアルゴリズムでgrepを実装してと比較せよと言ってるんでしょ
全言語同じアルゴリズムでgrep実装したら
「そりゃgrepが1番早いだろと」という結論になるんだww
嘘つき加減がアベノシグサだね
全言語同じアルゴリズムでgrep実装したら
「そりゃgrepが1番早いだろと」という結論になるんだww
嘘つき加減がアベノシグサだね
560デフォルトの名無しさん
2022/07/27(水) 18:18:20.30ID:H9RPm4O1 そうかな
一般的で複雑な機能を持った汎用性の高い標準ライブラリを使うと遅くなり
手書きでベタのアルゴリズムを書いたら早くなるとする
それは意味のある比較なんだろうか?
一般的で複雑な機能を持った汎用性の高い標準ライブラリを使うと遅くなり
手書きでベタのアルゴリズムを書いたら早くなるとする
それは意味のある比較なんだろうか?
561デフォルトの名無しさん
2022/07/27(水) 19:00:59.22ID:xJ8anoa4562デフォルトの名無しさん
2022/07/27(水) 19:12:28.53ID:H9RPm4O1 wcが乗ってる理由がわからないなら病気だと思うわ
563デフォルトの名無しさん
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
これがすべてじゃね?
deno=Rust
これがすべてじゃね?
564デフォルトの名無しさん
2022/07/27(水) 20:07:25.39ID:xJ8anoa4565デフォルトの名無しさん
2022/07/27(水) 20:29:09.02ID:mzblDH8U >>555
そうそう
全く違うものを比較しても無意味ってことを言いたかった
俺がバカすぎてみんなに伝わらなかったようだw
まあこの比較自体にそこまで本気になるのは俺らぐらいだと思うw
しかしあなたの計算量やアルゴリズムを考慮した考え方のセンスは素晴らしい
言語間のベンチマークなんて余程のことでない限り成立しないのにやたらやりたがるよな
Rust使い以外はこんな人ばっかなのか?
そうそう
全く違うものを比較しても無意味ってことを言いたかった
俺がバカすぎてみんなに伝わらなかったようだw
まあこの比較自体にそこまで本気になるのは俺らぐらいだと思うw
しかしあなたの計算量やアルゴリズムを考慮した考え方のセンスは素晴らしい
言語間のベンチマークなんて余程のことでない限り成立しないのにやたらやりたがるよな
Rust使い以外はこんな人ばっかなのか?
566デフォルトの名無しさん
2022/07/27(水) 21:01:28.44ID:FD7fUZPx 散々書かれてるけどもgrepは存在しないfoobarを探したときの速度だしwcは単語数を数えてるだけでベンチに使われてるプログラムのように出てきた単語の数を数えたりはしてないぞ。
マシンパワーの指標と考えるべきだろうな
マシンパワーの指標と考えるべきだろうな
567デフォルトの名無しさん
2022/07/27(水) 21:14:23.71ID:Bpp5zdZY そんなこと言ったら嬉々としてこのベンチマーク探してきたドヤってた >430 か顔真っ赤にしてしまうだろ。
568デフォルトの名無しさん
2022/07/27(水) 21:20:19.70ID:U29fl458 >>565
少なくともC/C++/Rustの比較は無意味
メモリ使用量などを除けばマシンコードとして同一のものを吐き出すことは理論的には可能だから
突き詰めればそれが最速ということになる
つまり無意味
そういうことがわかってない人が言語間のベンチをやってるんだと思うよ
少なくともC/C++/Rustの比較は無意味
メモリ使用量などを除けばマシンコードとして同一のものを吐き出すことは理論的には可能だから
突き詰めればそれが最速ということになる
つまり無意味
そういうことがわかってない人が言語間のベンチをやってるんだと思うよ
569デフォルトの名無しさん
2022/07/27(水) 21:32:29.18ID:H9RPm4O1570デフォルトの名無しさん
2022/07/27(水) 21:38:26.34ID:H9RPm4O1 声のデカい馬鹿がイキってるのがこのスレとRustスレ
571デフォルトの名無しさん
2022/07/27(水) 21:40:35.04ID:mzblDH8U >>568
Optimizeを出した時点でそうなるよね
一般的な書き方で速い言語はどれか?って切り口にしとけば面白かったのに
Optimizeとかしちゃったら余計なランタイムがついてくるGoや他の言語が速いわけがない
めちゃくちゃ勉強になる
Optimizeを出した時点でそうなるよね
一般的な書き方で速い言語はどれか?って切り口にしとけば面白かったのに
Optimizeとかしちゃったら余計なランタイムがついてくるGoや他の言語が速いわけがない
めちゃくちゃ勉強になる
572デフォルトの名無しさん
2022/07/27(水) 21:44:09.15ID:H9RPm4O1 普通に意味あるだろ
普通にカスタマイズせずにその言語で普通に書くとどうなるかとある程度意識して書いたらどうか
それの比較に意味がないと思うならその程度なんだろうけど
普通にカスタマイズせずにその言語で普通に書くとどうなるかとある程度意識して書いたらどうか
それの比較に意味がないと思うならその程度なんだろうけど
573デフォルトの名無しさん
2022/07/27(水) 21:46:34.35ID:H9RPm4O1 意味がないと思うなら書き込みするな
わざわざでてくんな
わざわざでてくんな
574デフォルトの名無しさん
2022/07/27(水) 21:55:07.13ID:U29fl458 俺にとっては無意味と言ってるだけで別に意見は好きに言っていいよ
それが掲示板だ
それこそ*意味*があるなら好きにすればよろしい
俺は言語間のベンチマークは少なくとも平均計算量が理論的に導出されていて
そのアルゴリズムとデータを使い
外部ライブラリも使わずに極力プリミティブに書いて初めて意味があるものと思っている
それが掲示板だ
それこそ*意味*があるなら好きにすればよろしい
俺は言語間のベンチマークは少なくとも平均計算量が理論的に導出されていて
そのアルゴリズムとデータを使い
外部ライブラリも使わずに極力プリミティブに書いて初めて意味があるものと思っている
575デフォルトの名無しさん
2022/07/27(水) 21:58:12.88ID:U29fl458 ちなみに文字列処理のアルゴリズムは理論的に研究され尽くしてて
ほとんどのアルゴリズムの論文にきちんと計算量を求める式がある
まあそれがない論文は相手にされないわけだが
話が逸れたが以上となる
これ以上言いたいこともないのでしばらくROMることにする
また面白い話題があれば口を挟むかもしれない
ほとんどのアルゴリズムの論文にきちんと計算量を求める式がある
まあそれがない論文は相手にされないわけだが
話が逸れたが以上となる
これ以上言いたいこともないのでしばらくROMることにする
また面白い話題があれば口を挟むかもしれない
576デフォルトの名無しさん
2022/07/27(水) 22:01:49.88ID:xJ8anoa4 >>567
いや、grepとwcは別だって明記してあるんだからそれ以外の比較は意味あるだろ
いや、grepとwcは別だって明記してあるんだからそれ以外の比較は意味あるだろ
577デフォルトの名無しさん
2022/07/27(水) 23:31:40.93ID:ogiMaWw7 RustはPHPやPythonより遅かった。
PHPはなぜか速かった。
これが全て。
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 どゆこと?
581デフォルトの名無しさん
2022/07/27(水) 23:58:36.18ID:yuH/4Ewb582デフォルトの名無しさん
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のほうが速かったと言い張ってる人がいるだけでしょ。
うちではRustのほうが速かったと言い張ってる人がいるだけでしょ。
584デフォルトの名無しさん
2022/07/28(木) 00:00:06.26ID:GCXKHsjZ むしろなんでRustはそんなに遅いの??
585デフォルトの名無しさん
2022/07/28(木) 00:01:18.06ID:GCXKHsjZ Rustの遅さにお前が泣いた。
586デフォルトの名無しさん
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が遅いという結果は出ていないな
とりあえずこちらでも>>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が遅いという結果は出ていないな
587デフォルトの名無しさん
2022/07/28(木) 01:19:15.66ID:pLtk3OpM588デフォルトの名無しさん
2022/07/28(木) 06:37:56.55ID:GCXKHsjZ だが、PHPより遅い。
589デフォルトの名無しさん
2022/07/28(木) 07:12:43.60ID:ENEX/nTq PHPが早い時点でベンチの方法に疑問を持つべき
590デフォルトの名無しさん
2022/07/28(木) 10:51:31.30ID:GHBXY1WS 一般的な書き方で速いべき、という結論に誘導する手法に疑問を感じる
自分で断言すればすぐ終わることを他人の口から言わせることにエネルギーを使い過ぎ
自分で断言すればすぐ終わることを他人の口から言わせることにエネルギーを使い過ぎ
591デフォルトの名無しさん
2022/07/28(木) 11:44:26.44ID:Ohcf/kqZ >>577
JITで実質コンパイルされた形になるのは分かるけどそれに最適化でも掛かってる?
JITで実質コンパイルされた形になるのは分かるけどそれに最適化でも掛かってる?
592デフォルトの名無しさん
2022/07/28(木) 13:06:21.33ID:rMVZEJvU つまりはここまで全部PHPおじさんの自作自演てこと?
593デフォルトの名無しさん
2022/07/28(木) 13:08:59.76ID:4pySRXlJ PHPはインタプリタの割にはかなり速いのは事実だけど
流石にコンパイル言語より速いは普通は無いだろうなぁ
ただキャッシュされたら大きな差は出ない可能性はあるかもね
流石にコンパイル言語より速いは普通は無いだろうなぁ
ただキャッシュされたら大きな差は出ない可能性はあるかもね
594デフォルトの名無しさん
2022/07/28(木) 14:01:07.64ID:1GWFUzAq JITをがんばればJavaやC#のような速度は出るだろう
595デフォルトの名無しさん
2022/07/28(木) 14:05:09.32ID:XX9iY77s だが、PHPより遅い。
596デフォルトの名無しさん
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ごときに負けて恥ずかしくないの?
599デフォルトの名無しさん
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ワードで良いわもう
602デフォルトの名無しさん
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版が速くなった
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版が速くなった
603デフォルトの名無しさん
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は「分かりやすく」「安全で」「高速な」コードを書けることが実証された
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は「分かりやすく」「安全で」「高速な」コードを書けることが実証された
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国国連大使「日本が中国に武力行使すると脅しをかけたのは初めて」 国連事務総長に書簡★4 [♪♪♪★]
- 中国国連大使「日本が中国に武力行使すると脅しをかけたのは初めて」 国連事務総長に書簡★5 [♪♪♪★]
- 【芸能】44歳・池脇千鶴、激変ぶりにネット衝撃 「まるで別人…」「変化が凄い!!」の声 [冬月記者★]
- 高市首相告白「『なめられない服』を選ぶことに数時間を費やしました」「外交交渉でマウント取れる服、買わなくてはいかんかもなぁ」★4 [ぐれ★]
- なぜ立花孝志氏の言葉は信じられたのか…"異例の逮捕"が浮き彫りにした「SNSの危険な病理」 [ぐれ★]
- 【🐼】パンダ、日本で会えなくなる? 中国との関係悪化で不安の声 ★2 [ぐれ★]
- ハム専ファンフェス
- こいせん 全レス転載禁止
- 【DAZN】フォーミュラGP【F1 2 3 SF P】Lap1807
- 巨専】
- 【DAZN/ABEMA】リーグ・アン総合 ★4
- 【DAZN/U-NEXT】ラ・リーガ ★30
- 「高橋留美子」作品で好きなヒロイン、「久遠寺右京」「管理人さん」「九能小太刀」「シャンプー」👈あと1人は? [519998392]
- 愛国者「日本に手を出したらアメリカが黙ってないぞ?」 [834922174]
- ニートになったんやけどタイミーデビューしようと思う
- ドングリとか木の実が主食とかクマってもうイベリコ豚じゃん
- ふんふんふふんふん(´・ω・`)
- 「玉名市」とかいうタマヒュン地名…
