X



for文よりwhile文の方が速い
■ このスレッドは過去ログ倉庫に格納されています
0001以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/02/11(日) 19:40:15.683ID:Yf7D+B6p0
でもお前らはfor文使うんでしょ?
0002以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/02/11(日) 19:40:50.219ID:sDsZE08j0
while文使ったら上司に怒られるし
0003以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/02/11(日) 19:40:52.117ID:n1YUZjM2d
時と場合によるよね
0004以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/02/11(日) 19:42:21.586ID:Yf7D+B6p0
>>3
同じことやるならwhile文の方が高速だけど
0005以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/02/11(日) 19:43:53.329ID:QNmgj1kX0
理由は?
0006以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/02/11(日) 19:44:51.112ID:HWoD+5IJ0
forとwhileの速さなんて誰も気にせんだろ
そういうのはどうせCPUパワーなんかであっさり解決しちゃう話だしな
分かりやすい方を優先で書けばいいだけ
0007以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/02/11(日) 19:45:40.679ID:sDsZE08j0
>>6
頭悪そう

速さ気にするのなんた機械学習とかに決まってんじゃん
かなり差でるよ
0008以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/02/11(日) 19:46:39.527ID:vXFKcOHH0
なんの言語のどのforだ
foreach系なら処理系によっては型チェック入ったりポインタコピーのコストでwhileの方が早くなることもあるだろうが
古典的なforを低レイヤー言語で使うなら変わらないんじゃないか
0009以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/02/11(日) 19:50:38.837ID:HWoD+5IJ0
>>7
機械学習って時間かかるところはライブラリ使ってやるもんだろ
それ使ってるだけのユーザー側でforだのwhileだのがクリティカルになるとは思えんのだが
まさかライブラリの開発者かなんかやってんの?
0010以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/02/11(日) 19:50:45.180ID:Yf7D+B6p0
言語によってはインクリメントもインクリメント演算子使うより普通に代入した方が速かったりする

インクリメント演算子使うにしても前方に書いた方が速かったりする言語もある

日頃から実測テストする事を習慣づけてどれが速いか分かった上で統一してコーディングすると高速なプログラムが書ける
0011以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/02/11(日) 19:52:02.640ID:HWoD+5IJ0
でforとwhileで何%ぐらい差が出んのよ
0012以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/02/11(日) 19:53:28.842ID:9KCNjs7DM
条件式や変数の初期化が入るのでwhileの方が速いのは当たり前だけど現代のマシンパワーでは本当に誤差レベルでしかないので考えるだけ無駄

llvm噛ませてる言語の場合同じ処理なら最適化されてほとんど同じ処理になる
0013以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/02/11(日) 19:54:40.351ID:Yf7D+B6p0
>>11
言語や環境によるけど25%程度違ってくる
制御のインクリメント等も合わせればさらに違ってくるので事前に実測を経てコーディング規則を決めるか否かでかなりの差が生まれる
0014以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/02/11(日) 19:58:08.323ID:HWoD+5IJ0
>>13
25%も変わるんかいな
でもそれどうせループ処理の中身ではもっと重たい処理してるんでしょ?
その重い処理も含めて考えてループ処理全体ではforとwhileの違いで何%変わるの?
0015以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/02/11(日) 19:59:19.947ID:Yf7D+B6p0
誤差とか言っている人は多分大規模なプログラムやユーザ入力待ちなど他に大きな待ちがあって処理速度がシビアに影響しないプログラムしか書いたことないのだと思う
0016以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/02/11(日) 19:59:45.387ID:cnZV+udyd
C#好きそう
0017以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/02/11(日) 19:59:52.553ID:QNmgj1kX0
試しにどの言語のどんな環境か教えて
0018以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/02/11(日) 20:00:25.192ID:cnZV+udyd
>>17
C#だよ
0019以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/02/11(日) 20:02:01.643ID:R4A5woBNM
GOTO使うけど
0020以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/02/11(日) 20:02:43.650ID:HWoD+5IJ0
>>15
例えばだけどループ処理の中身で10倍重たい処理が走ってれば
forとwhileの違いはたかが2.5%にしかならんってことでしょ
0021以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/02/11(日) 20:05:08.208ID:9KCNjs7DM
最近のコンピュータは強いからなー
プログラミングを学ぶ大多数の人間は意識しなくてもいい

言語機能による誤差よりもIOとかのほうが速度にクリティカルに速度に響く
foreachやmapやfilterを使うと明らかに速度は遅くなるがそれよりも可読性の低下による開発速度の低下のほうが後々響くので構文による速度差とか考えん
0022以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/02/11(日) 20:06:40.630ID:HWoD+5IJ0
>>21
だよね

よっぽど特殊なケースではforとwhileの違いにこだわるような場面もあるのかもしれんけど
一般的に言えばやっぱりforとwhileの速度の違いなんて気にしないで分かりやすい方を使えばいいって結論は変わらんなあ
0023以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/02/11(日) 20:07:33.893ID:Yf7D+B6p0
>>20
その説明がループ処理が遅くていい理由になるってどう言う理屈だ?

あとその重い処理とやらにもループ文は使われる訳ですべてのループに遅い方法を採用するのと速い方法を採用するかでかなり変わってくる話だよ
0024以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/02/11(日) 20:10:51.228ID:HWoD+5IJ0
>>23
可読性を重視するって理屈だよ
>>21 さんが言ってることに俺も賛成
0025以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/02/11(日) 20:14:31.515ID:/uL3wPNrd
for文をwhile文にして失われる可読性is何
0026以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/02/11(日) 20:15:23.449ID:GRuO5OTj0
もうアセンブリ語で書けよ
0027以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/02/11(日) 20:16:48.953ID:Yf7D+B6p0
>>21
フロントエンドの開発はユーザの入力待ち等生じるのと可読性重視で作るが速度が必要となるアルゴリズムやモジュールでは普通に最適化するよ
0028以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/02/11(日) 20:19:06.550ID:Yf7D+B6p0
>>24
フロントエンド寄りのプログラミングしかしたことないのだろうね
0029以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/02/11(日) 20:20:02.815ID:9KCNjs7DM
>>27
JSならジェネレーターを使ったほうがいいんじゃないか?
0030以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/02/11(日) 20:20:07.090ID:Yf7D+B6p0
>>26
実際アセンブリで出力して処理を最適化する部分もあるよ
0031以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/02/11(日) 20:20:42.239ID:JIdx85fL0
whileはブランチ命令で早い
forはcmpしてjmpで遅い
0032以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/02/11(日) 20:21:46.621ID:Yf7D+B6p0
さすがに1からアセンブリで書く事は組み込みとかの時しか最近はしないが
0033以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/02/11(日) 20:22:36.782ID:HWoD+5IJ0
>>28
フロントエンドかバックエンドかはあんまり関係ないと思う
最近はバックエンドでも処理速度が遅い言語が選ばれたりも普通にするしね
速度が必要な処理はサクッとライブラリ使って解決すればいいしね
0035以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/02/11(日) 20:23:57.085ID:1bX9AU5K0
>>30
アセンブリレベルの最適化はゲーム開発やカーネルの中でも限られた人しかやらないね
組み込みOSや機械学習やらのライブラリなんかはアセンブリレベルの最適化はする打ろうけど俺みたいなWeb開発者が知るところではないねー
0036以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/02/11(日) 20:24:43.862ID:1bX9AU5K0
>>34
俺はlambdaで20万溶かしたから誤差
0037以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/02/11(日) 20:26:33.757ID:HWoD+5IJ0
>>35
そうなんだよね
そういう意味では >>1
「でもお前らはfor文使うんでしょ?」
って問いに対しては
「うん。その通りだよ。ま、可読性しだいだけどね」
としか答えられないんだよね
0039以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/02/11(日) 20:29:26.909ID:1bX9AU5K0
俺は専らgotoとfor文しかない言語を触ってるので関係ないんだけど
0040以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/02/11(日) 20:33:00.448ID:Yf7D+B6p0
>>33
標準や他者が作ったライブラリの組み合わせとそれを呼び出す簡単な処理で済むプログラムなら可読性重視で良いと思うよ
0041以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/02/11(日) 20:36:40.081ID:HWoD+5IJ0
>>40
世の中のほとんどのプログラマーはそれに当てはまるんだよね
0042以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/02/11(日) 20:47:56.896ID:Yf7D+B6p0
>>35
まぁそうだけど最近はWebもリッチになり過ぎて安い低スペ端末の奴の表示速度改善でjsも最適化は必要だよ
最適化がし難いスクリプトこそ記述差による速度の違いがとても大きい

グーグルとかのスクリプトもかなり最適化してある
どっちの記述の方が速いかまとめてあるページを確認してからそれを意識してプログラミングするだけでかなり変わるよ

管理しやすさを考えて全体は可読性重視で作って処理が特に重い部分だけでも最適化したものもにすると良いよ
0043以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/02/11(日) 20:58:34.196ID:1bX9AU5K0
>>42
基本的に最低限の速度は必要だがどちらかと言うとどのライブラリでどのコンポーネントをどのように使うかが重要であって記述での最適化はあまり聞かないね

そもそもうちはそんな最適化せずともスピードインサイトで95以上安定して出してる
0044以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/02/11(日) 21:01:15.911ID:1bX9AU5K0
複雑なGUIとレンダリングを必要とする重いアプリケーションならLPやダッシュボードは一般的な構成で作って思い部分はWasmで済ませるね
そういう部分は読み込みが1秒以上かかってもユーザは待ってくれるしね
0045以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/02/11(日) 21:02:16.174ID:RS3D0BC70
for文は回数指定
whileはタスク処理
0046以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/02/11(日) 21:18:21.889ID:CnGzNNU+d
コンパイラがうまくやってくれるから、どっちで書いても変わらないんじゃないの?
(素人の発言で根拠はないけど)
0048以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/02/11(日) 21:26:36.407ID:1bX9AU5K0
GoとJava、JS(TS)を使ってるけどJavaとJSはfor, whileで同じ処理をさせればほぼ同じ時間しかかからないね
0049以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/02/11(日) 21:30:36.951ID:mqRsXKvR0
例えばswitch文ってifで二分探索するコードに書き換えられたりするし、forとwhileも同じように最適化されるだろ
速度が計測できるレベルで変化するゴミ言語なんて使うな
0051以下、5ちゃんねるからVIPがお送りします
垢版 |
2024/02/11(日) 21:37:59.971ID:1bX9AU5K0
JSはそんじょそこらの言語に比べたらずば抜けて速いよ
■ このスレッドは過去ログ倉庫に格納されています

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