Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    JAVA - Bean con tanti Dati membro

    Buon giorno a tutti, la domanda che ho oggi è semplice .

    Ho un bean "book" con i vari metodi set e get di tutti i dati membro che sono 14 (tutti string tranne 1 int) .

    Ho un bean "libreria" che contiene un semplice dato membro books:Book[] e il relativo setter e getter.

    Immaginate questa situazione dove ho bisogno solamente dell'ID del libro (int) contenuto nei vari oggetti book dell'array books e tutti gli altri dati inizializzati a NULL quindi avrei array di libri con dati membro inutili.

    Per questioni d' ottimizzazione della memoria (e magari performance) sarebbe meglio ricreare un bean book con solamente 1 dato membro ( l'ID del libro) oppure la differenza in termini d'utulizzo della memoria è quasi indifferente in quanto tutti i dati punterebbero all'informazione statica NULL?

    Spero non siano troppo niubbe le mie domande ma sto cercando d' approfondire le mie conoscenze

    Grazie mille a tutti !!!!

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da cataDesign Visualizza il messaggio
    Per questioni d' ottimizzazione della memoria (e magari performance) sarebbe meglio ricreare un bean book con solamente 1 dato membro ( l'ID del libro) oppure la differenza in termini d'utulizzo della memoria è quasi indifferente in quanto tutti i dati punterebbero all'informazione statica NULL?
    Non credo abbia molto senso fare un bean apposito solo per contenere il ID. Se tieni la classe come ce l'hai adesso (14 campi), anche se avessi 10000 oggetti Book, lo "spreco" di memoria sarebbe minimo e abbastanza indifferente (calcolato a spanne, circa 500 kbyte e rotti).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Come fai a calcolare la quantità di memoria necessaria?
    E le variabili null puntano tutti allo stesso valore statico (se non sbaglio in c++ è cosi)?

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da cataDesign Visualizza il messaggio
    Come fai a calcolare la quantità di memoria necessaria?
    Perlomeno su una architettura a 32 bit, dove i puntatori sono appunto a ... 32 bit, 13 campi reference in più in 10000 oggetti occupano "grossolanamente" 13*4*10000 = 520000 byte.

    Quote Originariamente inviata da cataDesign Visualizza il messaggio
    E le variabili null puntano tutti allo stesso valore statico (se non sbaglio in c++ è cosi)?
    null = puntatore nullo, ovvero a livello "nativo" valore 0.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    praticamente una macchina a 64bit occuperà il doppio della memoria cioe 1Mbyte.
    Ipoteticamente se avessimo una macchina a 64bit con 2gb di RAM e questo script in esecuzione contemporaneamente su 3000 thread (cioe il sistema ha bisogno di 3gb) avremmo un memory leak o il java riesce a gestire tutto visto che sono dei thread?

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da cataDesign Visualizza il messaggio
    praticamente una macchina a 64bit occuperà il doppio della memoria cioe 1Mbyte.
    A meno che una JVM a 64 bit utilizzi la tecnica dei "compressed pointers", nel qual caso i reference occuperebbero lo stesso 32 bit.

    Quote Originariamente inviata da cataDesign Visualizza il messaggio
    in esecuzione contemporaneamente su 3000 thread
    3000 thread .. sì .... molto teorici.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Quote Originariamente inviata da andbin Visualizza il messaggio
    A meno che una JVM a 64 bit utilizzi la tecnica dei "compressed pointers", nel qual caso i reference occuperebbero lo stesso 32 bit.

    3000 thread .. sì .... molto teorici.

    non ho capito andrei in memory leak?

    In php sembra quasi che il problema non esiste (anche se non mi sono mai documentato molto sulla questione).
    La domanda di prima è nata dalla semplice ipotesi: ma se avessi uno script che ha ipoteticamente un array di bean book con il testo del libro che cosa succede?

    In poche parole come devo trattare la memoria del java?

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da cataDesign Visualizza il messaggio
    non ho capito andrei in memory leak?
    Stavo leggendo questa discussione su Stack Overflow e in effetti c'è gente che parla di 6000 .. 10000 .. 25000 thread. Quanti thread si possono creare dipende da un gran bel numero di fattori. E in particolare, sicuramente, da cosa fanno i thread!
    A me già sembrano tanti 3000 thread!

    Quote Originariamente inviata da cataDesign Visualizza il messaggio
    In poche parole come devo trattare la memoria del java?
    Cioè?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  9. #9
    25000 thread che sogno!....

    Comunque quello che non capisco è: se avessi una pagina che usa (ipoteticamente) 1mb di risorse e il mio heap-space è di 64mb la JVM andrebbe in memore leak?

  10. #10
    riformulo la domanda perche hodimenticato un pezzo..

    Se avessi una pagina che utilizzasse (ipoteticamente) 1mb di risorse e il mio heap-space è di 64mb la JVM non potrebbe gestire 1000 thread di quello script contemporanemaente giusto?

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.