Recentemente, eu estava trabalhando em um projeto para obter informações sobre o sistema, como compartilhar da CPU. Muitas novas tecnologias.
No Java, você pode obter informações como a memória física total, a memória física restante, a memória física usada etc. Os exemplos a seguir podem obter essas informações e obter a taxa de uso da memória no Windows.
Primeiro, escreva uma classe Monitorinfobean para carregar algumas informações de monitoramento, incluindo memória física, memória física restante, memória física usada, uso de memória e outros campos.
pacote com.amgkaka.performance; Monitorinfobean { /*** /** Memória é utilizada. / private maxMemory; Memória. / ** CPU Uso setfreephysicalMorySize (Long FreephysicalMemorySize) {this .freephysicalMemorySize = FreephysicalMemorySize; } público Void setsname (string osname) {this .osname = osname; public void SettotalMorySize (TotalMemorySize longo) {this .TotalMemorySize = TotalMemorySize; } public void SetUsedMemory (Long USTMemory) {this .UsedMemory = UsadoMemory;
Em seguida, escreva uma interface para obter as informações de monitoramento atuais.
pacote com.amgkaka.performance; interface pública imonitorService { /** * / /** * Obtenha o objeto de monitoramento atual. : 08 */ Public Monitorinfobean getMonitorInfobean () lança exceção;
A classe de implementação MonitorServiceImpl desta classe é a seguinte:
pacote com.amgkaka.Permance; Classe de implementação da lógica de negócios. A taxa de ocupação da CPU durante a verificação não é precisa. * @return retorna o objeto de monitoramento construído * @throws Exceção * @Author AMG * Data de criação: 2008-4-25-10:45:08 AM */ Public Monitorinfobean getMoRInFobean () lança EPPERIO DE EXC {int KB = 1024; A memória pode ser usada Long TotalMemory = Runtime.GetRuntime (). TotalMemory () / Kb; getRuntime () .MaxMemory () / KB; .getTotalphysicalMemorySize () / kb; Obtenha o número total de Threads ThreadGroup Parterthread; cpuratio duplo = 0; Freemory); ; ); : ::::::::::::::::::::::Here :::::::::::::::::::hee :::::::::::::::::heo the :::::::::::::::::::::::::::::here *// ** * Obtenha uso da CPU. .getEnv ("windir") + "//system32//wbem//wmic.exe Process Get Legend, Commandlin E," + "KernelmodeTime, ReadOperationCount, ThreadCount, UsermodeTime, WriteOperationCount"; = Readcpu (Runtime.getRuntime (). Exec (proccmd)); ! = null) {long IdleTime = c1 [0] - c0 [0]; (); @Author AMG * Data de criação: 2008-4-25-06:10:14 PM */ Private Long [] Readcpu (Processo Final Proc) {Long [] Retn = novo Long [2]; .close (); <FaultLength) {Retorno NULL; ("UsermodeTime"); input.readline ())! = null) {if (line.length () <wocidx) {continua; Bytes.substring (linha, capidx, cmdidx - 1) .Trim (); > = 0) {Continue; .Valueof (bytes.substring (linha, kmtidx, rocidx - 1) .trim ()) .longValue (); longValue (); , wocidx - 1) .TRIM () .longValue (); {tente {proc.getInputStream (). Close (); Exceção de arremesso * @Author AMG * Data de criação: 2008-4-30-04:47:29 PM */ public static void main (string [] args) lança exceção {iM ONITORSERVICE SERVIÇO = NOVO MONITORSERVICEIMPL (); .getMonitorInfobean (); ("Memory restante =" + monitorinfo.getfreememory ()); )); ); ;
Esta classe de implementação requer uma classe de ferramentas que grava byte por si mesmo.
pacote com.amgkaka.performance; /** * / /** * Como String.substring tem problemas com o processamento de caracteres chineses (considerando um caractere chinês como um byte), existem perigos ocultos quando * contém caracteres chineses. String * @param start_idx start coordenadas (incluindo esta coordenada) * @param end_idx CutOff Coordenine (incluindo esta coordenada) * @return */ public static string substring (string src, int start_idx, int en d_idx) {byte [] b = src .getbytes ();
Execute a classe MonitorBeanImpl e os leitores verão a memória atual, a utilização da CPU e outras informações.
PS: Método para obter todos os nomes de hosts na LAN
Importar java.net.inetaddress; importar java.net.unknownhostException; public class A {estático public void main (string [] args) {try {// obtenha o endereço IP I através do nome do host NetAddress Endereço = inetaddress.getbyName ("192.168 .9.148 "); System.out.println (" 192.168.9.148 "+": "+endereço.gethostaddress ()); // Obtenha o nome do host através do IP String IPS =" 192.168.9. ", IP; INETAddress Addip ; CATC H (UNKNOWNHOTHEXCECTION UHE) {System.err.println ("Não é possível encontrar:"+"192.168.9.148");