Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    34

    StringBuffer: Dimensione massima

    Ciao a tutti....sto facendo un piccolo applicativo che deve fare molte scrittutre su un file di log....soltanto che ci mette più tempo a fare queste scritture (molto frequenti) sul file di log che a eseguire tutta l'applicazione che è la cosa più importante....esempio con scrittura del log ci mette 40 secondi, senza passa a 10 secondi....utilizzo già un BufferedOutputStream per il file di log qundi quello dovrebbe già bufferizzare....però ho notato che utilizzando uno StringBuffer si velocizza molto....solo 10 secondi in più (quindi sui 20 secondi per tutta l'esecuzione)...in pratica con lo StringBuffer ogni volta appendo il messaggio da inserire del log e alle fine dell'applicativo faccio un unica write in cui scrivo tutto il contenuto dello StringBuffer(prima facevo tipo 10000 write e questo logicamente rallentava molto)....

    private static StringBuffer logBuffer = new StringBuffer();

    Il mio dubbio è questo: quanto è la dimensione massima che può avere uno StringBuffer??? mi serve saperlo perchè a volte ho dei file di log molto grossi...e non vorrei quando farò dei test più importanti che mi si blocchi tutto solo perchè ho superato la dimensione massima dello StringBuffer....avevo pensato di mettere un controllo sulla dimensione del buffer...tipo che ogni volta che la length del buffer è > 500000 scrive il log e svuoto il buffer....però se sapessi la dimensione massima che può avere lo svuoterei ogni volta poco prima che si riempia (esempio se la dim max è 100 lo svuoto quando length = 99)...

    Grazie mille,ciao

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: StringBuffer: Dimensione massima

    Originariamente inviato da giugy
    utilizzo già un BufferedOutputStream per il file di log qundi quello dovrebbe già bufferizzare....
    Sì ma hai usato la dimensione di default?? Che è 8192, per la cronaca. Se usi l'altro costruttore puoi specificare un buffer più ampio.


    Originariamente inviato da giugy
    Il mio dubbio è questo: quanto è la dimensione massima che può avere uno StringBuffer???
    StringBuffer (e StringBuilder) internamente hanno semplicemente un char[], cioè un normale array di char. Teoricamente un array può avere al massimo 2147483647 (il massimo di un int) elementi. Il limite comunque è la tua memoria e comunque la dimensione massima del "heap" assegnata alla JVM.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.