Во время выполнения, как программа Java может сказать, сколько памяти это использует?

Это мое личное решение:

<script>

var i, k;
var numbers = new Array();
k = Math.floor((Math.random()*8));
numbers[0]=k;
    for (var j=1;j<8;j++){
        k = Math.floor((Math.random()*8));
i=0;
while (i < numbers.length){
if (numbers[i] == k){
    k = Math.floor((Math.random()*8));
    i=0;
}else {i++;}
}
numbers[j]=k;
    }
    for (var j=0;j<8;j++){
alert (numbers[j]);
    }
</script>

Произвольно генерирует 8 уникальных значений массива (от 0 до 7), а затем отображает их с помощью окна предупреждения.

28
задан Ron Tuffin 10 November 2008 в 08:41
поделиться

4 ответа

Ответ VonC является интерактивным решением - если Вы хотите знать программно, можно использовать Runtime.totalMemory () для обнаружения общей суммы, используемой JVM, и Runtime.freeMemory () для обнаружения, сколько из этого все еще доступно (т.е. это выделило JVM, но не выделило в JVM - новые объекты могут использовать эту память).

Это методы экземпляра - использование Runtime.getRuntime () для первого получения одноэлементного экземпляра.

31
ответ дан Jon Skeet 14 October 2019 в 11:31
поделиться

Если Вы, имеют java1.6 где-нибудь, и Ваша программа работает в Java 1.4.2, 1.5 или 1.6, можно запуститься visualVM сессия , соединиться с приложением и следовать за памятью (и намного больше)

image of monitoring application with Visual VM

(Изображения не отображены в данный момент, поэтому относится к Контроль приложения для иллюстрации.)

4
ответ дан CMS 14 October 2019 в 11:31
поделиться

java.lang. Runtime.totalMemory () даст Вам необходимую информацию - http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Runtime.html

0
ответ дан anjanb 14 October 2019 в 11:31
поделиться

Это не будет точно, но для грубой оценки, просто вычтет Runtime.getRuntime.freeMemory() от Runtime.getRuntime.totalMemory(). Сделайте это в начале программы для понимания JVM's служебное использование памяти и с промежутками последний на в выполнении.

4
ответ дан Community 14 October 2019 в 11:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: