WebClub - Всероссийский Клуб Веб-разработчиков
WebClub.RU » Архив » Какой существует правильный путь для проверки доступности памяти?

Какой существует правильный путь для проверки доступности памяти?


Дата публикации: 17-03-2013

Предложение от Michael L. Creech)
Некоторую информацию о системной памяти можно заполучить из класса lang.Runtime .
Вот небольшое приложение, которое печатает количесво свободной и доступной памяти . Однако количество свободной памяти - приблизительно. Я верю, что если запустить сборщик мусора (gc()) до вызова 'freeMemory()', то будут более достоверные результаты.

import java.applet.*; // we use Applet
import java.awt.*; // we use Graphics

public class MemoryStats
{
public static void main (String args[])
{

Runtime rt = Runtime.getRuntime ();
rt.gc (); // Необязательный шаг, но будет больше достоверность, может быть
long freeMem = rt.freeMemory (); // Не всегда точно, но приблизительно
long totalMem = rt.totalMemory ();

System.out.println ("Total Memory Available = " + totalMem);
System.out.println ("Free Memory Available = " + freeMem);
}
}
Предложение от Steve Alexander
Проверка доступной памяти на клиентской системе, может быть выполена при использовании классаe Runtime, предоставлябщено основную информацию об окружении VM частного пользователя.
Это простое приложение использует несколько методов класса Runtime (getRuntime(), freeMemory, totalMemory и сборщик мусора (gc()) для вывода до и после работы сборщика.

import java.awt.*;
import java.lang.Thread;
import java.lang.Runtime;
import java.io.IOException;

public class ExecDemo extends Frame
{
public String textString;
Runtime rt;

long freeMem, freeMem2, totalMem, totalMem2;

public static void main(String args[])
{
ExecDemo m = new ExecDemo("Test");
Button clearMem = new Button("Run Garbage Collector");
m.add("South", clearMem);
m.start();
}

public void start()
{
resize(400,125);
rt = Runtime.getRuntime();
show();

freeMem = rt.freeMemory();
totalMem = rt.totalMemory();
}

public ExecDemo(String s)
{
super("VM Memory Example");
}

public void paint(Graphics g)
{
g.drawString("Free memory (pre-GC) = ", 15, 20);
g.drawString(Long.toString(freeMem), 150, 20);

g.drawString("Total memory (pre-GC) =", 15, 35);
g.drawString(Long.toString(totalMem), 150, 35);

g.drawString("Free memory (post-GC) = ", 15, 50);
g.drawString(Long.toString(freeMem2), 150, 50);

g.drawString("Total memory (post-GC) =", 15, 65);
g.drawString(Long.toString(totalMem2), 150, 65);

g.setColor(Color.blue);
g.drawString("All memory in bytes", 15, 80);
}

public boolean handleEvent(Event e)
{
if(e.target instanceof Button)
{
String label = ((Button)e.target).getLabel();
if(label.equals("Run Garbage Collector"))
{
//System.gc();
rt.gc();
freeMem2 = rt.freeMemory();
totalMem2 = rt.totalMemory();
repaint();
return true;
}
}
return false;
}
}
Домен продается

Популярное

Не так давно в сети появился новый сервис, под названием Dead Man Zero. Этот сервис сделал...
Рынок социальных площадок уже давно стал стабильным. Несмотря на то, что время от времени...
Artisteer 4 – единственный в своем роде продукт, позволяющий автоматизировать работу над созданием...
Апрель 2024 (1)
Октябрь 2018 (14)
Февраль 2017 (3)
Январь 2017 (1)
Август 2016 (1)
Май 2016 (2)

Карта сайта: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41

Друзья сайта



Случайная цитата

Неизвестный автор:

"Если ты загнал под бан – сайт и блог в придачу, про тебя на серче скажут – «криворукий мальчик»."

Опрос

Какой текстовый редактор Вы используете?

OpenOffice
AbiWord
Notepad++
UltraEdit
PSPad
Microsoft Office
Microsoft Блокнот
Другой...