setelah bermigrasi dari .NET 3.5 (runtime .NET 2.0) ke NET 4.0 kita dapat melihat penurunan kinerja saat mengalokasikan potongan memori yang lebih besar. Silakan tinjau kode tes berikut. Ini adalah program pengujian minimalis yang mewakili skenario dunia nyata yang kami gunakan. Adakah yang bisa menjelaskan perbedaan dramatis antara waktu proses .NET 2.0 dan 4.0, yang jauh lebih lambat? Langkah-langkah untuk memperbanyak:
- Impor kode ke aplikasi konsol C#.
- Tetapkan target platform ke x64.
- Targetkan .NET 3.5 dan buat versi Rilis.
- Jalankan EXE (JANGAN jalankan dari IDE!) dan ketik "test" di konsol.
- Tunggu hasilnya.
- Ulangi untuk .NET 4.0.
Terima kasih.
Alex
class Program {
static DateTime firstdate, lastdate;
const int CHUNKSIZE = 10 * 1024 * 1024; // 10 MB.
const int TRIALS = 10000;
static void startmeasure() {
firstdate = DateTime.Now;
}
static void stopmeasure() {
lastdate = DateTime.Now;
var duration = lastdate.Subtract(firstdate);
Console.WriteLine("Test duration:" + duration.TotalSeconds.ToString());
}
static void Main(string[] args) {
string input;
do {
input = Console.ReadLine();
switch (input) {
case "test":
handletest();
break;
}
} while (input != "exit");
}
static void handletest() {
startmeasure();
byte[] data;
for (int i = 0; i < TRIALS; i++) {
data = getdata(CHUNKSIZE);
}
stopmeasure();
}
static byte[] getdata(int size) {
return new byte[size];
}
}