Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Ottenere ammontare di RAM installata

    'sera a tutti
    Avrei bisogno di sapere la quantità di RAM installata sulla macchina su cui la mia applicazione gira, è possibile fare una cosa simile con Java?

    Ho provato con questo codice ma sembra sia limitato alla jvm e non a tutto il sistema:

    codice:
    import java.util.*;
     
    public class Memory {
        public static void main(String[] args) {
            Runtime runtime = Runtime.getRuntime();  
            long maxMemory = runtime.maxMemory();  
            long allocatedMemory = runtime.totalMemory();  
            long freeMemory = runtime.freeMemory();  
      
            System.out.println("free memory: " + freeMemory / 1024);  
            System.out.println("allocated memory: " + allocatedMemory / 1024);  
            System.out.println("max memory: " + maxMemory /1024);  
            System.out.println("total free memory: " + (freeMemory + (maxMemory - allocatedMemory)) / 1024);   
        }
    }
    Questo è quello che ottengo:

    free memory: 7129
    allocated memory: 7616
    max memory: 82432
    total free memory: 81945

    Qualche idea? Grazie
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  2. #2
    Tempo fa trovai questa libreria: http://www.hyperic.com/products/sigar.html
    Ovviamente fa uso di librerie native, ma sembra molto ben fatta, ed ha wrappers per ogni linguaggio.
    max

    Silence is better than bullshit.
    @mmarcon
    jHERE, Maps made easy

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    157
    Non mi pare che Java abbia accesso diretto alle risorse di sistema..

  4. #4
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da mxa
    Tempo fa trovai questa libreria: http://www.hyperic.com/products/sigar.html
    Ovviamente fa uso di librerie native, ma sembra molto ben fatta, ed ha wrappers per ogni linguaggio.
    Darò un'occhiata, grazie

    Originariamente inviato da alde90
    Non mi pare che Java abbia accesso diretto alle risorse di sistema..
    È quello che sospettavo :-(
    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
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da alde90
    Non mi pare che Java abbia accesso diretto alle risorse di sistema..
    Invece si, ho risolto!

    codice:
    import java.lang.management.ManagementFactory;
    
    ...
    ...
    
    System.out.println("RAM = " + (((UnixOperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean()).getTotalPhysicalMemorySize()) / (1024 * 1024) + " MB");



    Grazie lo stesso
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    813
    ma quel codice funziona anche per windows? non so, ma quella classe Unix.....
    Nell'anno 1968 è bastata la potenza di due Commodore 64 per lanciare con successo una navicella sulla Luna; nell'anno 2007 ci vogliono la potenza di un processore quad core 3.30 GHz e 3 Gb di RAM (requisiti minimi ufficiali) per utilizzare Windows Vista. Qualcosa deve essere andato storto!

  7. #7
    Utente di HTML.it L'avatar di morphy79
    Registrato dal
    Jun 2004
    Messaggi
    1,568
    bisogna sempre ricordarsi che java è multipiattaforma e per certe cose è limitato.. specie se si tratta di cose legate al sistema operativo e alla macchina...
    per fare una cosa del genere credo ci voglia qualche dll che interagisca con java.. e ovviamente specifica a seconda del sistema operativo..
    probabilmente la classe che hai trovato fai tutto questo in trasparenza.. ma java puro non credo possa farlo...
    andibin sicuramente saprebbe meglio però.. attendo sue conferme..
    odio chi parla di politica..
    anzi vorrei fondare un partito contro tutto ciò

  8. #8
    A partire da Java 1.5 è possibile ottenere informazioni di questo tipo.
    Ecco il codice completo:

    Codice PHP:
    import sun.management.*;
    import com.sun.management.*;

    public class 
    InfoRam {
        public static 
    void main(String[] args) {
            
    OperatingSystemMXBean mxbean 
                (
    OperatingSystemMXBeanManagementFactory.getOperatingSystemMXBean();
            
    System.out.println(mxbean.getTotalPhysicalMemorySize() + " Bytes ");
        }

    Su Linux funziona (uso Ubuntu), se ti funziona anche su Windows sei a cavallo

    Facci sapere
    Gutta cavat lapidem
    [La goccia scava la pietra]
    ***
    (Ovidio)

  9. #9
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da matthew80
    Su Linux funziona (uso Ubuntu), se ti funziona anche su Windows sei a cavallo

    Facci sapere
    A me basta che funzioni su mac, quindi la soluzione con UnixOperatingSystemMXBean mi va bene :P
    Comunque grazie
    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
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da Hysoka
    ma quel codice funziona anche per windows? non so, ma quella classe Unix.....
    No, su Windows da errore a Runtime.
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

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.