Skompiluj coś takiego pod konsolą i podaj wyniki.
using System;
using System.Windows.Forms;
class MyForm : Form
{
static DateTime start;
MyForm()
{
log("ctor");
}
static void log(string msg)
{
Console.WriteLine("{0}\t{1}", msg, DateTime.Now - start);
}
static void Main(string[] args)
{
start = DateTime.Now;
log("evs");
Application.EnableVisualStyles();
log("sctrd");
Application.SetCompatibleTextRenderingDefault(false);
log("new");
var form = new MyForm();
log("run");
Application.Run(form);
}
}
U mnie na netbooku z wirtualką w tle, a na wirtualce jedzie długa kompilacja, na dodatek cały czas mieli swap bo jest tylko 2 GB RAMu:
c:\PP\myprogs\cs>csc from.cs
Microsoft (R) Visual C# Compiler version 1.0.0.50618
Copyright (C) Microsoft Corporation. All rights reserved.
c:\PP\myprogs\cs>from
evs 70,004
sctrd 177,0101
new 195,0111
ctor 654,0374
run 655,0374
c:\PP\myprogs\cs>from
evs 13,0007
sctrd 21,0012
new 24,0014
ctor 86,0049
run 88,005
c:\PP\myprogs\cs>from
evs 16,0009
sctrd 24,0014
new 26,0015
ctor 87,005
run 88,0051
Między new
a konstruktorem jest dłuższa przerwa, ale nawet w pierwszym uruchomieniu trwa ona pół sekundy, a nie kilka sekund.
Chyba że masz baaardzo słaby komputer?