Techster Skrevet 30. september 2009 Del Skrevet 30. september 2009 Fins det noen pålitelig måte jeg kan bruke for å finne ut hvor mye plass et objekt fra en gitt klasse tar i minne? Objektet inneholder b.la et Socket objekt og det er jo ikke greit å vite hvor stor plass en Socket tar. Fins det kanskje en sizeof() for objekter? Lenke til kommentar
HDSoftware Skrevet 30. september 2009 Del Skrevet 30. september 2009 Tror ikke du kan bruke SizeOf fordi den vil ikke gi deg størrelsen til referanser du måtte ha i klassen, men det er et par gode tips på MSDN, som denne: http://social.msdn.microsoft.com/forums/en...9-b9589a79f5e9/ Siste eksempelet viser hvordan du kan bruke Serialize for å fortelle størrelsen på objektets minneforbruk. Lenke til kommentar
Techster Skrevet 30. september 2009 Forfatter Del Skrevet 30. september 2009 sizeof fungerer ikke. Den kan ikke brukes på objekter av egne klasser. Takk for tipset på msdn, men har allerede testet det med binaryformatter, men får exception fordi "Typen System.Net.Sockets.Socket ikke er merket som serialiserbar", og det får jeg vel ikke gjort noe med? Tror jeg må ty til en profiler for å se hvordan programmet oppfører seg med 100+ objekter. Lenke til kommentar
WhiteFire Skrevet 30. september 2009 Del Skrevet 30. september 2009 En b-løsning kan være å extende klassen og merke den som serialiserbar. Det blir nok ikke riktig så rett frem, men jeg tror det vil la seg gjøre. Lenke til kommentar
Techster Skrevet 30. september 2009 Forfatter Del Skrevet 30. september 2009 Forsåvidt smart tenkt, men det hjelper dessverre ikke fordi base klassen er fortsatt System.Net.Socket og den er fortsatt ikke serialiserbar. Lenke til kommentar
GeirGrusom Skrevet 30. september 2009 Del Skrevet 30. september 2009 Jeg tror det finnes funksjoner i Marhsal klassen for dette. Men hvorfor er det viktig egentlig? Et Socket objekt tar uforskammet lite RAM allikevel. Lenke til kommentar
WhiteFire Skrevet 30. september 2009 Del Skrevet 30. september 2009 Trodde socket-klassen køddet det til fordi den var en del av et større objekt. Ser for meg at den tar uforskammet lite minne ja! Lenke til kommentar
GeirGrusom Skrevet 30. september 2009 Del Skrevet 30. september 2009 Ellers har du jo GC.GetTotalMemory som forteller hvor mye minne som GC har allokert. Lenke til kommentar
Techster Skrevet 1. oktober 2009 Forfatter Del Skrevet 1. oktober 2009 Jeg tror det finnes funksjoner i Marhsal klassen for dette. Men hvorfor er det viktig egentlig? Et Socket objekt tar uforskammet lite RAM allikevel. Ja, jeg har skjønt det nå. Grunnen i utgangspunktet var at det virket kjekt å kunne regne ut hvor mye minne som brukes ved x antall objekter. Takk for hjelpen! Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå