[VB]garbagecollector in VB

Pagina: 1
Acties:

  • pkouwer
  • Registratie: November 2001
  • Laatst online: 07-10-2025
Hi,
ik kom uit de VB hoek en wil C++ leren, wat wel aardig lukt. Nu kom ik bij de garbage-collector en vroeg me af of zoiets ook in VB bestaat/bestond ?

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 29-08 04:15

Gerco

Professional Newbie

Ja, de VB VM heeft een garbage collector. Als jij je object references vrijgeeft gaat 'ie je objecten opruimen. Daarom heb je oa ook geen GPF/Memory Leak als je (zoals 90% van de VB proggers) je references niet op Nothing zet als je een Sub/Function eindigt. Het is trouwens in VB best lastig een memory leak te maken als je geen gebruik maakt van Win32 API of iets wat daarop lijkt.

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


  • johnwoo
  • Registratie: Oktober 1999
  • Laatst online: 08:40

johnwoo

3S-GTE

Het grote verschil tussen de VB gc en die van bijvoorbeeld Java, is dat de VB gc niet om een bepaald (of willekeurig) interval een rondje komt opschonen, maar direct zodra de laatste reference naar een object verdwijnt (bij het uit scope gaan, of als je em expliciet op Nothing zet dus).
Het is trouwens in VB best lastig een memory leak te maken als je geen gebruik maakt van Win32 API of iets wat daarop lijkt.
Maar als je eenmaal gewend met om VB icm met Win32 API te proggen, dan is het ook moeilijk om weer zonder API's te proggen :P Je VB proggel kan ineens veel meer met gebruik van de Win32 API :)
(Ik kan me m'n laatste proggel dat geen Win32 API gebruikte niet eens meer herinneren :P )

4200Wp ZO + 840Wp ZW + 1680Wp NW | 14xIQ7+ + 1xDS3-L | MTVenusE | HWP1


  • whoami
  • Registratie: December 2000
  • Laatst online: 29-08 15:58
Ik vermoed dat jij het hebt over VC++.NET? C++ kent namelijk geen garbage collector. Het .NET framework wel. Alle managed code in .NET (code die niet 'unsafe' is :D), maakt gebruik van die garbage collector.
VB.NET, C#, .... maken dus allemaal gebruik van die garbage collector.

https://fgheysels.github.io/


  • pkouwer
  • Registratie: November 2001
  • Laatst online: 07-10-2025
whoami schreef op 06 november 2002 @ 11:09:
Ik vermoed dat jij het hebt over VC++.NET? C++ kent namelijk geen garbage collector. Het .NET framework wel. Alle managed code in .NET (code die niet 'unsafe' is :D), maakt gebruik van die garbage collector.
VB.NET, C#, .... maken dus allemaal gebruik van die garbage collector.
wie bedoel je ?

  • whoami
  • Registratie: December 2000
  • Laatst online: 29-08 15:58
Jou.

https://fgheysels.github.io/


  • pkouwer
  • Registratie: November 2001
  • Laatst online: 07-10-2025
waarom kom ik dan in de boeken tegen C++ en gc ?

  • whoami
  • Registratie: December 2000
  • Laatst online: 29-08 15:58
pkouwer schreef op 06 november 2002 @ 13:06:
waarom kom ik dan in de boeken tegen C++ en gc ?


IMHO kan je enkel een garbage collector hebben als je binnen een of andere vorm van VM werkt. (Java, VB, .NET platforms dus.)
In C++ (niet VC++.NET) heb je dat niet, en bestaat er dan ook geen Garbage collector. Je moet in C++ nl. zelf altijd het geheugen dat je met new geallocceerd hebt, vrijgeven (dmv delete).

(In welke boeken vind je dat trouwens?)

https://fgheysels.github.io/


  • Dash2in1
  • Registratie: November 2001
  • Laatst online: 19-08 23:13
pkouwer schreef op 06 november 2002 @ 13:06:
waarom kom ik dan in de boeken tegen C++ en gc ?
Je bedoelt misschien gcc?

  • pkouwer
  • Registratie: November 2001
  • Laatst online: 07-10-2025
zal vanavond thuis effe kijken. Waar staat trouwens IMHO voor (nooB)

  • bazzs2001
  • Registratie: April 2002
  • Laatst online: 13-06 11:18

bazzs2001

je moet knagen wat lekker is

pkouwer schreef op 06 november 2002 @ 13:19:
zal vanavond thuis effe kijken. Waar staat trouwens IMHO voor (nooB)
volgens mij:
In My Honest Opinion

edit: Humble ook goed

groeten


  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

In My Humble Opinion zelfs

We adore chaos because we like to restore order - M.C. Escher


  • whoami
  • Registratie: December 2000
  • Laatst online: 29-08 15:58
In My Humble Opinion
klik

en nu terug on topic. :Y)

https://fgheysels.github.io/


Verwijderd

Gerco schreef op 05 november 2002 @ 22:22:
Het is trouwens in VB best lastig een memory leak te maken als je geen gebruik maakt van Win32 API of iets wat daarop lijkt.
Tamelijk eazy hoor, gewoon 2 objecten naar elkaar laten refereren en naar die objecten je referentie kwijt raken.. instant memory leak ;)

  • pkouwer
  • Registratie: November 2001
  • Laatst online: 07-10-2025
Dash2in1 schreef op 06 november 2002 @ 13:19:
[...]


Je bedoelt misschien gcc?
gc = garbage collector.
boek = thinking ini C++, part 1

  • whoami
  • Registratie: December 2000
  • Laatst online: 29-08 15:58
En in welke context wordt dat gebruikt? C++ heeft gewoon geen garbage collector.

https://fgheysels.github.io/


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 29-08 03:21

.oisyn

Moderator Devschuur®

Demotivational Speaker

Verwijderd schreef op 06 november 2002 @ 13:46:
[...]

Tamelijk eazy hoor, gewoon 2 objecten naar elkaar laten refereren en naar die objecten je referentie kwijt raken.. instant memory leak ;)


serieus? Pffff, dus het is gewoon een basic reference count mechanisme

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Verwijderd

euhh 't is gewoon com, addref & release dus.. nu is vb inteligent genoeg om basic refcounting netjes voor de vb coder te doen maar circular references weet ie echt geen raad mee..

  • pkouwer
  • Registratie: November 2001
  • Laatst online: 07-10-2025
whoami schreef op 06 november 2002 @ 21:20:
En in welke context wordt dat gebruikt? C++ heeft gewoon geen garbage collector.
Excuus, ik moet je gelijk geven. Heb het verkeerd gelezen (was gisteren al laat ) :)

Dit staat er:

In C++, the programmer must determine
programmatically when to destroy the object, and then perform the
destruction using the delete keyword. As an alternative, the
environment can provide a feature called a garbage collector that
automatically discovers when an object is no longer in use and
destroys it. Of course, writing programs using a garbage collector is
much more convenient, but it requires that all applications must be
able to tolerate the existence of the garbage collector and the
overhead for garbage collection. This does not meet the design
requirements of the C++ language and so it was not included,
although third-party garbage collectors exist for C++.
Pagina: 1