Hur kan man få reda på ett objekts byte storlek? Det borde ju gå på nåt sätt... vet inte hur man gör.
Måste man gå via serialize() eller nåt? (En vild chansning)
6 svar · 265 visningar · startad av N-Foe
Hur kan man få reda på ett objekts byte storlek? Det borde ju gå på nåt sätt... vet inte hur man gör.
Måste man gå via serialize() eller nåt? (En vild chansning)
Njea...Det är inte helt enkelt... Mycket har att göra med hur JVM:en är implementerad, vad man kör på för system med mera. Det går ju att räkna ut om man vet vilka fält ett objekt har.
du menar att man summerar alla int * antal byte per int, etc
men missar man inte en del overhead då? hur mkt ska man räkna att en pekare på ett objekt allokerar?
hur mkt allokerar de vanligaste typerna? int = 4 byte, double = 8 bytes, boolean = 1 byte
Eftersom Java sköter all minneshantering åt dig, varför vill du veta det? :q
För att jag ska skriva programmet ska kunna portas till C++..
Jag ska implementera en cache och begränsa den till en max byte storlek.
I C++ sköts ju också minneshanteringen automatiskt, med new.
hur mkt ska man räkna att en pekare på ett objekt allokerar?
4 bytes då en pekare alltid bara är en adress (32 bitar på en 32bits plattform).
aasah:
En cache brukar implementeras i storlek om ett antal block. Så om man tänker sig att skicka block till en cache bör man veta hur stora objekt man har (huruvida de får plats i ett block, eller om de måste delas upp i flera block).