对于某些操作,Parallel可以很好地随 CPU 数量进行扩展,但对于其他操作则不然。
考虑下面的代码,function1获得 10 倍的改进,同时function2获得 3 倍的改进。这是由于内存分配,还是GC?
void function1(int v) {
for (int i = 0; i < 100000000; i++) {
var q = Math.Sqrt(v);
}
}
void function2(int v) {
Dictionary<int, int> dict = new Dictionary<int, int>();
for (int i = 0; i < 10000000; i++) {
dict.Add(i, v);
}
}
var sw = new System.Diagnostics.Stopwatch();
var iterations = 100;
sw.Restart();
for (int v = 0; v < iterations; v++) function1(v);
sw.Stop(); …Run Code Online (Sandbox Code Playgroud)