Har ett litet problem. Har gjort ett litet käckt program som kollar om en process är igång, annars så ska processen startas. Det kanske bara är så att du inte kört det tillräckligt länge för att Garbage Collection skall ha kickat igång. Mitt programm jag hålle rpå med startar typ på 12mb och går sedan upp till ca 18, sen verkar det sjunka till 11-12mb, sen verkar det sakta gå upp igen. Har haft programmet stått och "pollat" på processen som den ska kolla i ca 16timmar. Det verkar vara helt korrekt - Minnet går upp, sedan får du tillbaks lite när Garbage Collectiorn går igång. Windows 2003 Server är det första MS-OS som kommer förinstallerat med .NET Det jobbas med all säkerhet på att integrera .NET i följande Windowsversioner lika mycket som API/MFC är en integrerad del av Windows nu.Minnesläcka med timer-kontroll??
Använder en timer-kontroll som kollar med jämna mellanrum, kan ställas in via en annan kontroll (men vanligtvis 20sekunder). Varje gång timern kör så verkar programmet ta ett par kb mer minne. Någon som vet varför?? Har testat att göra ett dummy programm med en timmer som kör varje ½sekund och som sedan räknar till 100. Varje gång timern då kör så ökas minnesanvändningen i detta fall oxå. Varför??
Och varför verkar vb.NET program jämt ta minst 12mb ram när man kör dem? Även om jag typ bara har gjort ett formulär med en knapp på som skapar en MsgBox så startar programmet med ca12mb RAM-användning.. knasigt.. Har jag gjort något fel?? ..uppenbarligen måste jag ha gjort det..
Ett litet exempel:
Har ett naligt VB projekt med Form1 och Timer1.
Timer1.Enable = True
Timer1.Interval = 1000
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
MsgBox("Hej")
End Sub
När jag kör programmet så börjar den mewd ca 12-minnesanvädning och sedan stiger det sakta men säkert. Stiger med ca 4k åt gången.
Visserligen är inte minnesökning så stor per enstaka gång, men när jag ska använda detta i mitt ProcessKontroll-programm så ska stå och ticka i månad efter månad så kommer det till slut att sluka allt minne..
Någon som kan säga vad jag gör för fel??Sv: Minnesläcka med timer-kontroll??
Vad händer om du kör 10 gr/sek eller nåt sånt, och låter den gå i 5 minuter? Då går den väl upp ett tag för att sedan stanna vid en konstant minnesmängd?
Minne från början är med all säkerhet komponenterna i Frameworket du använder dig av...
/mickeSv:Minnesläcka med timer-kontroll??
Det där du menar med komponenterna i Frameworket jag använder, hur menar du? Om jag fattar rätt så använder jag mig av .NET Framework, för det var jag tvungen att installera på en 2000maskin om jag ville köra det där.. Men använder den sig av hela Framworket och itne bara dem delar jag använder mig av??
Ber om ursäkt för mina knäppa frågor, men är inte särskilt hemma med VB.NET, sist jag höll på med VB var typ i VB4 och en del i VB5, och som sagt det har hänt en hel del sen dess..
Jag tycker det är sjukt att ett litet simpelt programm ska typ ta 12mb. ... men det lär väl vara jag som gjort något fel..Sv: Minnesläcka med timer-kontroll??
12 MB minne... Allt laddas ju som behövs... IO, säkerhet, trådhantering...
Orsaken att den rapporterar mycket minne är väl att den inte är "integrerad" i OS:et än...
C-program använder ju minst lika mycket (skit), men det de använder registreras inte för de komponenterna är inbyggda i Windows.
/mickeSv: Minnesläcka med timer-kontroll??
/micke