【ハルシオンブログ】Listの全件検索をする場合、FindAllとforeachどっちが早いの!?
こんにちは。
涼しい日が続いてますね。
夏終わりましたかね?
さて、UnityでListとかを使ってる時に、FindAllを使うことが多々あります。
「FindAllってはやいの?」
と疑問がでたので、foreachと比較してみました。
コードはこちら
[Blog20210906.cs]
こんなことをした結果はこちら。
Calc1 : 81ms
Calc2 : 227ms
foreachよりFindAllのほうが断然早いですね!
あんまりforeach使ってた方少ないと思いますが、FindAllが早いのが分かりましたね。
というメモでした。
あでゅ~ノシ
涼しい日が続いてますね。
夏終わりましたかね?
さて、UnityでListとかを使ってる時に、FindAllを使うことが多々あります。
「FindAllってはやいの?」
と疑問がでたので、foreachと比較してみました。
コードはこちら
[Blog20210906.cs]
using System.Collections.Generic;
using UnityEngine;
public class Blog20210906 : MonoBehaviour
{
List<int> aryInt = new List<int>();
void Start()
{
for (int i = 0; i < 10000000; i++) {
aryInt.Add(i);
}
Calc1();
Calc2();
}
void Calc1() {
System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch();
sw.Start();
List<int> calc = aryInt.FindAll(x => x % 5 == 0);
sw.Stop();
Debug.Log("Calc1 : " + sw.ElapsedMilliseconds);
}
void Calc2() {
System.Diagnostics.Stopwatch sw2 = new System.Diagnostics.Stopwatch();
sw2.Start();
List<int> calc2 = new List<int>();
foreach (int i in aryInt) {
if (i % 5 == 0) {
calc2.Add(i);
}
}
sw2.Stop();
Debug.Log("Calc2 : " + sw2.ElapsedMilliseconds);
}
}
こんなことをした結果はこちら。
Calc1 : 81ms
Calc2 : 227ms
foreachよりFindAllのほうが断然早いですね!
あんまりforeach使ってた方少ないと思いますが、FindAllが早いのが分かりましたね。
というメモでした。
あでゅ~ノシ
Category: 開発日記(Unity)
« 【ハルシオンブログ】Visual Studioでメソッド間に区切り線を表示する方法 | 【ハルシオンブログ】Visual Studioのコードスニペットのお話 »
コメント
| h o m e |