webForumDet fria alternativet

Ett objekts byte storlek?

Java

6 svar · 267 visningar · startad av N-Foe

Medlem sedan juni 200384 inlägg
Frågan#1

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)

Medlem sedan sep. 2001961 inlägg
#2

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.

Medlem sedan juni 200384 inlägg
#3

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

Medlem sedan mars 20034 471 inlägg
#4

Eftersom Java sköter all minneshantering åt dig, varför vill du veta det? :q

Medlem sedan juni 200384 inlägg
#5

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.

Medlem sedan mars 20034 471 inlägg
#6

I C++ sköts ju också minneshanteringen automatiskt, med new.

Medlem sedan juni 200010 432 inlägg
#7

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).

259 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)