Det enda det gör är att ha en timer som vid en angiven tidpunkt postar data till en webbplats, och det tar 20 mb minne enligt enhetshanteraren - det låter lite mycket tycker jag.
Tja .. 20 MB låter kanske lite mycket för den applikation du beskriver, men allt beror på hur mycket resurser programmet laddar: fönster, kontroller, grafik osv .. (Ett helt tomt fönster drar tex 9 MB hos mig. Drar jag sen igång en MDI-app med ett par-tre barnfönster kommer jag snabbt upp i 25 MB.) Så personligen skulle jag nog inte direkt oroa mig (om det inte är så att minnesanvändningen hela tiden ökar).
Sen är inte heller den information du ser i Task managern helt korrekt. Windows återanvänder (dubbelmappar) system-DLL:er mellan processer. mscoree.dll (.NET-kärnan) laddas tex bara en gång i minnet, men när du tittar i Task Managern så räknas den in i varje process som använder den.
Om du istället tittar på "Available physical memory" under Performance-fliken så ser du antagligen att den inte alls minskar med 20 MB för varje ny instans, utan bara för den första (som drar igång CLR:en).
VB.net är kanske inte det bästa språket om man vill ha slimmade program
Att det är just VB.NET tror jag inte har nån särskild betydelse. Mina exempel var med C#.
Men som sagt: Du har en CLR som tar X MB (första gången den laddas). Du behöver minnesområden både för IL-kod och för den kompilerade (native) koden. Och ovanpå det har du en garbage collector som gärna väntar med att städa så länge som möjligt.