Vraag : Hoeveel geheugen zal voor een dotnettoepassing worden toegewezen?

Dit is een gespreksvraag die ik op één van mijn recent howmuch geheugen interview.

Generally voor om het even welke punt netto toepassing zal worden toegewezen? en op welke basis?

Can iedereen beantwoordt dit?

Antwoord : Hoeveel geheugen zal voor een dotnettoepassing worden toegewezen?

De hoeveelheid geheugen die aan punt netto toepassing wordt besteed hangt af van of de toepassing als 32 of proces met 64 bits loopt.

Voor een systeem met 32 bits, wordt elk voorwerp toegewezen een geheugen van byte 8. Voor bestaan van voorwerp moet het ergens worden van verwijzingen voorzien van - die uiteindelijk de hoeveelheid geheugen nodig voor een objecten bestaan tot 12 bytes verhoogt.

Voor systemen met 64 bits, is de situatie slechter. De objecten geheugentoewijzing die tot 16 bytes wordt verhoogd, en 8 bytes worden vereist voor een verwijzing, vergt zo elk voorwerp eenvoudig het bestaan van 24 bytestfor.

 Als de series worden gecre�ërd en een vernietigden, is het mogelijk dat het patroon van verwezenlijkingen en huisvuilinzamelingen in .NET het verlaten van grote gaten in geheugen kan resulteren dat de grootte van de grootste serie zal verminderen die het kan toewijzen. Dit probleem kan in een toepassing resulteren die geleidelijk aan uit van geheugen loopt alhoewel het geen geheugenlekken heeft en zijn geheugenvereisten niet anders in tijd stijgen.

Alle voorwerpen die door CLR worden gecre�ërd zijn onderworpen aan deze verborgen geheugenkosten, die in een toepassing kunnen resulteren gebruikend vaak meer geheugen dan verwacht. Het verminderen van het aantal voorwerpen die in geheugen op een gegeven moment, misschien door het aantal gebieden in individuele voorwerpen te verhogen of door bulkgegevens in grote gegevensstructuren op te slaan worden gehouden, is een efficiënte manier om de capaciteit en de efficiency van .NET toepassingen te verbeteren.      

Ontkenning: De hier verstrekte informatie langs is gebaseerd op de lezing die ik op Internet heb gedaan.
Andere oplossingen  
 
programming4us programming4us