Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Vad är en minneslucka?

Postades av 2003-05-27 10:02:06 - Tyronne Engström, i forum visual basic - allmänt, Tråden har 9 Kommentarer och lästs av 496 personer

Hej!

Jag önskar få en förklaring på hur en minneslucka kan uppstå i ett program och hur man kan hitta dem?

mvh

Phinala


Svara

Sv: Vad är en minneslucka?

Postades av 2003-05-27 11:19:35 - Andreas Hillqvist

Tänker du inte på minnesläcka? En vanlig orsak till minnesläcka är att objekt inte frigörs. Vanligare i C++ språk och liknande när man skötter referenser manuellt. Detta kan oxå orsakas av cirkulärreferenser. Om man använder två klasser som refererar till varandra kommer dessa att existera i programmet även om man inte har någon variabel någon annanstans i koden som pekar mot dem.

I Vb är det vanligaste minnesläckorna orsakade av andra komponenter och7eller att man inte frigör dem som man ska.


Svara

Sv: Vad är en minneslucka?

Postades av 2003-05-27 11:32:27 - Tyronne Engström

Hej!


Jo jag menar minnesläcka...

OK! som typ
dim New Obj as Object

set obj =xxx

och sedan så avslutar jag inte object med
set object=nothing

Så då kommer denna att finnas kvar...OCh när jag startar upp programmet, då utamn omstart av datorn, så skapas det en ett tytt obj osv...osv

och metoden blir då att gå igenom alla sina object och se till att de avslutas..

tänker jag rätt

/Phinala


Svara

Sv: Vad är en minneslucka?

Postades av 2003-05-27 11:53:11 - Johan Idstam

Nej i VB görs en Set obj = Nothing automatiskt när objektet går 'out of scope'. Alltså när det inte finns några öppna referenser till det längre.

I VB måste du anstränga dig för att generera (egna) minnesläckor.

/johan/


Svara

Sv: Vad är en minneslucka?

Postades av 2003-05-27 11:56:48 - Tyronne Engström

Ok!

skulle du kunna ge mig ett exempel.. så att pusselbiten hamnar på plats..


/Tyronne


Svara

Sv: Vad är en minneslucka?

Postades av 2003-05-27 12:02:52 - Andreas Hillqvist

Cirkulärreferens:
<code>
'Class: Item

Public Parent As Items
Public Name as String
Public Value as String


'Class: Items

Private mCollection as Collection

Public Function Add(Name as String, Optional Value as string) As Item
Dim NewItem as Item
Set NewItem = Item
Set NewItem.Parent = Me
NewItem.Name = Name
NewItem.Value = Value
mCollection.Add NewItem, Name
Set Add = Name
End Function

Private Sub Class_Initialize()
Set mCollection = New Collection
End Sub

Private Sub Class_Terminate()
Set mCollection = Nothing
End Sub
</code>

Om du lgger till en ITem till Items kommer Items hålla en Referens till Collectionen, Collectionen håller en referens till ditt Item och ditt item håller en referns till Items.

Cirkeln är sluten.

Så om du använder den:
<code>
Dim MyItems as Items
Set MyItems = New Items
MyItems.Add "Nisse", 1
MyItems.Add "Bengt", 2
Set MyItems = Nothing
</code>
Kommer inte Items förstöras även om du sätter den till nothing. Detta eftersom dess Items pekar mot instansen av Items.


Svara

Sv: Vad är en minneslucka?

Postades av 2003-05-27 12:15:37 - Niklas Jansson

Det kan ju även vara bra att säga att med de flesta moderna operativsystem så är minnesläckor ganska oväsentliga, eftersom program får virtuellt minne tilldelat, och när programmet avslutas så tas allt virtuellt minne tillbaks av OS-et.

Det är alltså under programkörning det kan bli problem., och eventuellt när program inte avslutas ordentligt och det ligger en process kvar, som fortfarande håller minne.

>Vanligare i C++ språk och liknande när man skötter referenser manuellt.
Hmm... i C++ är det inte så vanligt som folk tror. Där lägger man i regel över ansvaret på klasser och kompilatorer. Minneshantering utförd av en klass är normalt sätt så enkel att den inte skapar någon minneläcka. Det är när man behöver minnespooler och de ska utökas chunk-vis som det i några fall blir svårt att hålla reda på minnet.
Det är värre med C och komponenter skrivna i C...


Svara

Sv: Vad är en minneslucka?

Postades av 2003-05-27 12:27:42 - Tyronne Engström

Summan är att man igentligen inte behöver fundera på det i VB, om håller på med en mer avancerad programmering.. och är involverad i referenser mellan klasser mm..

Jag tror jag hajjar detta...


Tack skall ni ha för hjälpen

/Phinala




Svara

Sv: Vad är en minneslucka?

Postades av 2003-05-27 12:33:49 - Niklas Jansson

Förresten:
>Vad är en minneslucka?
Det är det man får när man har druckit en halva vodka för snabbt... =)


Svara

Sv: Vad är en minneslucka?

Postades av 2003-05-27 12:40:53 - Fredrik Molnar

menar du inte en hela vodka??

/F


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 166
27 952
271 704
1 259
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies