/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
hvad fylder et element i et boolean array
Fra : Kim Schulz


Dato : 20-06-02 14:34

hejsa
jeg sidder og bruger nogle ret store arrays og ville derfor lige høre
hvad et element i et boolean array fylder (altså selve indholdet).
Hvis det representeres på bitniveau kan det jo nøjes med en bit pr
element, men jeg frygter lidt at java bruger op mod 32bit til
repræsentationen - har desværre ikke lige kunne finde noget om det.

Nogen der ved noget om dette?

--
Kim Schulz - Freelance Development | In Blythe, California, a city
www.schulz.dk - En nørds bekendelser | ordinance declares that a
www.linuxia.dk - hverdagens små hacks | person must own at least two

 
 
Mikkel Bundgaard (20-06-2002)
Kommentar
Fra : Mikkel Bundgaard


Dato : 20-06-02 14:57

Kim Schulz <kim@schulz.dk> wrote:
> hejsa
> jeg sidder og bruger nogle ret store arrays og ville derfor lige
> høre hvad et element i et boolean array fylder (altså selve
> indholdet). Hvis det representeres på bitniveau kan det jo nøjes
> med en bit pr element, men jeg frygter lidt at java bruger op mod
> 32bit til repræsentationen - har desværre ikke lige kunne finde
> noget om det.
>
> Nogen der ved noget om dette?
Hej Kim

Se denne artikel "Determining Memory Usage in Java". Den kan du
måske bruge
http://www.smotricz.com/kabutz/Issue029.html
--
Mikkel Bundgaard
Student at IT University of Copenhagen
http://officehelp.gone.dk
Codito, Ergo Sum



Filip Larsen (20-06-2002)
Kommentar
Fra : Filip Larsen


Dato : 20-06-02 15:46

Kim Schulz skrev

> jeg sidder og bruger nogle ret store arrays og ville derfor lige høre
> hvad et element i et boolean array fylder (altså selve indholdet).

Java sproget foreskriver ikke en bestemt størrelse, men lader det være op
til de enkelte kompilere at vælge hvordan de vil gemme booleans og boolean
arrays. Når det er sagt, så tror jeg langt det mest udbredte er, at boolean
arrays bliver gemt som byte arrays da dette stort set direkte er
understøttet af JVM kommandoer. Jeg er i hvert fald ikke bekendt med en
kompiler der gemmer boolean arrays som andet end byte arrays.


Mvh,
--
Filip Larsen <filip.larsen@mail.dk>



Flemming Mertz (20-06-2002)
Kommentar
Fra : Flemming Mertz


Dato : 20-06-02 16:08

> Nogen der ved noget om dette?

Der er også :

http://java.sun.com/docs/books/performance/1st_edition/html/JPRAMFootprint.f
m.html#11396

Hvor der står en del om at estimere memory forbrug..

Med venlig hilsen,
Flemming Mertz



Ulrik Magnusson (20-06-2002)
Kommentar
Fra : Ulrik Magnusson


Dato : 20-06-02 17:13



Kim Schulz wrote:

> hejsa
> jeg sidder og bruger nogle ret store arrays og ville derfor lige høre
> hvad et element i et boolean array fylder (altså selve indholdet).
> Hvis det representeres på bitniveau kan det jo nøjes med en bit pr
> element, men jeg frygter lidt at java bruger op mod 32bit til
> repræsentationen - har desværre ikke lige kunne finde noget om det.
>
> Nogen der ved noget om dette?

byte code instruktionerne bastore/baload bruges til at gemme og hente
boolean værdier i et boolean array. Det er op til den virtuelle maskine
om der bruges bits eller bytes (Suns jvm bruger en byte pr. boolean).
Hvis det er kritisk kunne du evt lave din egen implementation med
fx int array:

static int[] bits = new int[(size/32)+1];

static void set( int index, boolean value )
{
if( value )
{
bits[index/32] |= (1 << index % 32);
}
else
{
bits[index/32] = ~((~bits[index/32]) | (1 << index % 32));
}
}

- eller noget i den retning

Ulrik Magnusson


Ulrik Magnusson (20-06-2002)
Kommentar
Fra : Ulrik Magnusson


Dato : 20-06-02 17:21

Ulrik Magnusson wrote:

> Kim Schulz wrote:
>
> > hejsa
> > jeg sidder og bruger nogle ret store arrays og ville derfor lige høre
> > hvad et element i et boolean array fylder (altså selve indholdet).
> > Hvis det representeres på bitniveau kan det jo nøjes med en bit pr
> > element, men jeg frygter lidt at java bruger op mod 32bit til
> > repræsentationen - har desværre ikke lige kunne finde noget om det.
> >
> > Nogen der ved noget om dette?
>
> byte code instruktionerne bastore/baload bruges til at gemme og hente
> boolean værdier i et boolean array. Det er op til den virtuelle maskine
> om der bruges bits eller bytes (Suns jvm bruger en byte pr. boolean).

se også baload og bastore her (specielt "Notes"):

<http://java.sun.com/docs/books/vmspec/2nd-edition/html/Instructions2.doc1.html>

Ulrik Magnusson


Niels Ull Harremoës (21-06-2002)
Kommentar
Fra : Niels Ull Harremoës


Dato : 21-06-02 07:48

Du kan evt bruge BigInteger? Der fylder hver bit/boolean i hvertfald kun en
bit - men adgang til enkeltbits er selvfølgelig en del langsommere end i et
array.

Til visse operatinoer vil det dog være meget hurtigere end et array - fx
binær logik mv.

Niels Harremoës



Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste