Archief - Tetris in C#.Net gemaakt :)

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

SideShow

Legacy Member
ja ik heb het over c#.net in vs.net 2003

als ik het build als release, ik en draai mn progske (exe van 44KB), echt niks speciaal, paar claskes en een form, paar Arrays enzo, beetje spele met file streamkes (xml fileke inlezen, .. blababla => 20MB

:wtf:

ik heb bvb ook een listitem waar ik de objectjes inzet van uit een array. Onder die listitem zet ik een button om die list te herladen:
eerst clearen van items, en dan met simpele for de array items er weer insteken; wel, als ik 10 keer op dien knop duw, dan groeit mn ram verbruik ook ... :wtf:

enz ..

Asshen

Legacy Member
SideShow zei:
ja ik heb het over c#.net in vs.net 2003

als ik het build als release, ik en draai mn progske (exe van 44KB), echt niks speciaal, paar claskes en een form, paar Arrays enzo, beetje spele met file streamkes (xml fileke inlezen, .. blababla => 20MB

:wtf:

ik heb bvb ook een listitem waar ik de objectjes inzet van uit een array. Onder die listitem zet ik een button om die list te herladen:
eerst clearen van items, en dan met simpele for de array items er weer insteken; wel, als ik 10 keer op dien knop duw, dan groeit mn ram verbruik ook ... :wtf:

enz ..

Je geheugenverbruik tijdens het toevoegen van weetikveelwat bij runtime, daar kan ik je niks over zeggen, ik weet niet wat jij allemaal doet in je code :)
Misschien verwijdert je collectie (een ListItem is normaal een object uit een collectie, ik begrijp niet goed wat je in je vraag bedoelt met listitem) enkel de references naar je objecten bij het clearen ervan, en worden die pas verwijdert wanneer .Net beslist dat het tijd is voor garbage collection. Als je dat dan nog eens meerdere keren na elkaar doet, kan dat natuurlijk leiden tot een serieuze geheugen-buildup.
Als je dan toch een applicatie nodig hebt die zoveel geheugengebruik nodig heeft, dan onderzoek je misschien best eens de mogelijkheden van manueel verwijderen van objecten uit het geheugen (zie MSDN).

Maar dat je programma zo groot is, daar begrijp ik niks van, waarschijnlijk heb je je Visual Studio anders ingesteld of zo, zodat hij bepaalde dingen meecompileert die gebruikt worden door je programma.

K

Cakeman

Legacy Member
Ik heb net gewoon even een nieuwe Windows applicatie gemaakt met één form.
Dit form bevat geen controls of code.

Wanneer ik dit build en vervolgens de exe start, gebruikt dat simpele formpje maar liefst 7,5 Mb.

Tyfius

Legacy Member
Mmz, ik dacht dat het over het gebruik on disk ging, en niet het geheugengebruik... :x

Krueger

Legacy Member
Heeft dat niets te maken met het .NET framework dat moet worden ingeladen ofzo?

Cakeman

Legacy Member
Krueger zei:
Heeft dat niets te maken met het .NET framework dat moet worden ingeladen ofzo?
Ik dacht het ook ja.
Dan is mijn 7,5 voor leeg form nog redelijk normaal.
SideShow zijn leeg form heeft echter 13Mb nodig. Dat terwijl Asshen zijn Tetris App amper 11 meg gebruikt.

Asshen

Legacy Member
Ahaaa, LOL.
Jullie gaan echt duidelijker moeten zijn hoor, ik dacht idd dat jullie bezig waren over het diskverbruik van jullie .exe bestand.

Dat je 7,5 meg van het geheugen verbruikt is vrij normaal hoor.
.Net werkt met een resem dll's, die niet meegecompileerd worden in je exe.
Als je de applicatie runt moeten die dll's ook geladen worden eh, anders kan de applicatie niet correct uitgevoerd worden.

Afhankelijk van welke includes (using in C#) jullie allemaal gebruiken, zal dat meer of minder geheugen verbruiken.

Een applicatie die gestart wordt, zal door het besturingssysteem een proces toegewezen krijgen. Zo'n proces is een zekere hoeveelheid geheugen, waarop een thread werkt voor dat proces (de main thread van je applicatie).
Waarschijnlijk kan de hoeveelheid geheugen die toegewezen wordt verschillen van OS tot OS, afhankelijk van je hoeveelheid RAM, en zelfs verschillen van PC tot PC.

Waarom maken jullie je daar trouwens zorgen over ???
Dat wordt allemaal geregeld door Windows en .Net, pas als jullie zelf heel zware applicaties gaan maken hoef je je daar zorgen over te maken, niet voor een lege form.

K.

Krueger

Legacy Member
Asshen zei:
Waarom maken jullie je daar trouwens zorgen over ???
Dat wordt allemaal geregeld door Windows en .Net, pas als jullie zelf heel zware applicaties gaan maken hoef je je daar zorgen over te maken, niet voor een lege form.

K.
Ge kunt u natuurlijk de vraag stellen, als een lege form al 7 MB inneemt, hoeveel zal een serieuze aplicatie dan wel niet innemen...

Asshen

Legacy Member
En als antwoord: waarschijnlijk niet veel meer.
(Afhankelijk van wat de applicatie doet, hoeveel data ze in het geheugen houdt, etc)

Het zou al een gigantisch zware applicatie moeten zijn vooraleer je in de problemen komt.

De meeste applicaties houden niet zoveel gegevens in het computergeheugen.
Veelal wordt gebruik gemaakt van een database of een bestand om de gegevens op te slaan, die gegevens worden dan enkel opgehaald wanneer ze nodig zijn, maar worden niet constant in het geheugen gehouden.

Bepaalde applicaties, zoals fotobewerkingssoftware of 3D modeling software, gaan natuurlijk wel heel wat meer geheugen verbruiken, omdat ze hun data heel vlug beschikbaar moeten hebben.

Asshen

Legacy Member
De tutorial omtrent Streams, Formatters en Serialization staat nu ook online.

Persoonlijk vind ik dit nu mijn minst geslaagde tutor (misschien omdat ik hem maakte met 39° koorts :p), maar eventueel pas ik hem later dan wel wat aan.

De nu eerstvolgende tutorial wordt een multiplayer (LAN) pong spelletje :)

K.

Moto

Legacy Member
Ge kunt u natuurlijk de vraag stellen, als een lege form al 7 MB inneemt, hoeveel zal een serieuze aplicatie dan wel niet innemen...

C#-programmas pakken gewoon een hele hoop geheugen in als er op dat moment veel geheugen vrij is, waarom ook niet trouwens :p

Als ge serieuze applicaties maakt zijn er wel bepaalde dingen waar ge op moet letten ivm geheugen, maarja dat is in elke taal zo

Sirius

Legacy Member
dit is normaal, .net apps reserveren meer geheugen dan effectief nodig is.
de .net runtime kan op die manier veel effectiever omspringen met zen heap(plaats waar objecten staan).
zodra .net merkt dat het systeem dat geheugen nodig heeft zal hij het vrijgeven.

Me Boss You Not

Legacy Member
Maak daar eens .exe file van astublieft! :wtf:
Kwestie van dat iedereen dat gemakkelijk zou kunnen spelen! Waarom moeilijk doen!?? :ironic:
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan