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

    Più il programma è in esecuzione e più le prestazioni calano...

    Salve. Ho creato una versione del tutto personalizzata del gioco Pacman (mancano ancora delle cose), ma ho un problema... all'inizio il gioco è abbastanza fluido, tutto va alla perfezione, ma più tempo passo a giocare e più le prestazioni del programma calano, nel senso che tutte le azioni vengono gradualmente rallentate... da cosa potrebbe derivare questo problema?? Io non so come risolvere... o_O

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Prova ad eseguire il programma con un profiler, così vedi dove il tuo programma "rallenta".

    NetBeans ne ha uno integrato semplicissimo da usare
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Cos'è un profiler? Comunque io uso notepad++ e il prompt dei comandi... il rallentamento si fa sentire sempre di più ad ogni volta che inizio una nuova partita. Ad ogni nuova partita stoppo e riavvio (sempre con start() ) un Timer (javax.swing) e reinstanzio delle classi... ora cercherò di evitare queste azioni e vedere se cambia qualcosa.

  4. #4
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da Dreamer89
    Cos'è un profiler?
    Un aggeggio che misura le prestazioni del tuo programma. In pratica lo agganci al tuo programma e usi quest'ultimo normalmente. Alla fine il profiler ti butta fuori tutta una serie di informazioni come ad esempio la durata di ogni metodo, quante volte è stato chiamato ecc

    Originariamente inviato da Dreamer89
    il rallentamento si fa sentire sempre di più ad ogni volta che inizio una nuova partita. Ad ogni nuova partita stoppo e riavvio (sempre con start() ) un Timer (javax.swing) e reinstanzio delle classi... ora cercherò di evitare queste azioni e vedere se cambia qualcosa.
    Senza conoscere il codice non possiamo aiutarti molto... Prova a forzare il garbage collector tra uno stop ed uno start con System.gc()
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  5. #5
    Originariamente inviato da Alex'87
    Un aggeggio che misura le prestazioni del tuo programma. In pratica lo agganci al tuo programma e usi quest'ultimo normalmente. Alla fine il profiler ti butta fuori tutta una serie di informazioni come ad esempio la durata di ogni metodo, quante volte è stato chiamato ecc



    Senza conoscere il codice non possiamo aiutarti molto... Prova a forzare il garbage collector tra uno stop ed uno start con System.gc()
    Ma cosa fa questo System.gc() ?? E il garbage collector che fa di preciso?

  6. #6
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da Dreamer89
    Ma cosa fa questo System.gc() ?? E il garbage collector che fa di preciso?
    Il garbage collector ("raccoglitore di rifiuti") è un thread a bassa priorità della jvm che ogni tanto da una ripulita alla memoria deallocando gli oggetti inutilizzati. System.gc() permette di chiamare il garbage collector. Occhio però, non è sicuro al 100% che il gc parta, System.gc() lo "sollecita" solamente
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  7. #7
    comunque non credo sia una buona idea la chiamata (che di fatto è un "consiglio") al GC; di solito è meglio lasciar fare alla JVM. Alcuni riferimenti:

    http://www.owasp.org/index.php/Code_...l_to_System.gc()
    http://edocs.bea.com/jrockit/geninfo....html#wp998554

    Piuttosto resta valido l'uso di un profiler per capire se restano allocati degli oggetti e che il GC non può deallocare. Questo accade quando avvengono dei memory leaks.
    Su questo problema puoi vedere un mio articolo qui: http://java.html.it/articoli/leggi/2...i-memory-leak/
    Ivan Venuti
    Vuoi scaricare alcuni articoli sulla programmazione, pubblicati su riviste di informatica? Visita http://ivenuti.altervista.org/articoli.htm. Se vuoi imparare JavaScript leggi il mio libro: http://www.fag.it/scheda.aspx?ID=21754 !

  8. #8
    Originariamente inviato da ivenuti
    comunque non credo sia una buona idea la chiamata (che di fatto è un "consiglio") al GC; di solito è meglio lasciar fare alla JVM. Alcuni riferimenti:

    http://www.owasp.org/index.php/Code_...l_to_System.gc()
    http://edocs.bea.com/jrockit/geninfo....html#wp998554

    Piuttosto resta valido l'uso di un profiler per capire se restano allocati degli oggetti e che il GC non può deallocare. Questo accade quando avvengono dei memory leaks.
    Su questo problema puoi vedere un mio articolo qui: http://java.html.it/articoli/leggi/2...i-memory-leak/
    E' impossibile che sia colpa dei memory leaks dato che ogni oggetto è dichiarato nella classe fuori da qualsiasi metodo... è possibile che i rallentamenti avvengano a causa dell'instanziamento degli stessi oggetti?? Ad esempio quando uso "new"... vorrei prima essere sicuro perchè dovrei modificare un bel pò di cose se davvero fosse così.

  9. #9
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Come ho già detto, senza codice non possiamo sapere cosa c'è che non va... Prova un profiler, non è difficile
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  10. #10
    Ma dove trovo un profiler?? Come si usa? E a cosa serve per la precisione??

    Comunque, per chi volesse provare il giochino, vada qui: http://www.thedoors.altervista.org/PacmanDF.rar

    EDIT: se non vi funziona quello provate qui: http://www.fileshost.com/en/file/501...manDF-rar.html

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.