Java. Странное поведение методов totalMemory() и freeMemory()

308
25 февраля 2017, 04:35

Здравствуйте. Мне необходимо узнать сколько памяти занимает мой объект, и я делаю это так:

Сам объект:

public class DemoGC {
    private String fieldOne = "abc";
    private String fieldTwo = "cba";
}

Его замер делаю так:

    public static long memoryState() {
        Runtime runtime = Runtime.getRuntime();
        return runtime.totalMemory() - runtime.freeMemory();
    }
    public static void main(String[] args) {
        long before = memoryState();
        DemoGC demoGC = new DemoGC();
        long after = memoryState();
        System.out.println(after - before);
    }

Сам объект явно не большой, всего пара строк... Но, на выходе мне печатает страшное число: 335568. Даже учитывая что это размер в байтах, то откуда так много? Может я что-то не так делаю? Подскажите, в чем ошибка? Что я не так считаю?

READ ALSO
AlertDialog при возникновении ошибки в AsyncTask

AlertDialog при возникновении ошибки в AsyncTask

В моем проекте есть главная форма с AsynkTask, на которой я подтягиваю 1 jsonЗагрузка остальных форм не происходит, пока не придут данные

259
Изменение данных при нажатии кнопки

Изменение данных при нажатии кнопки

Работаю с java swingНа мониторе отображаются данные с переменной newDegree (благодаря Thread конвертируются разные данные каждые 5 секунд)

316
Деплой сайта, написанного на Java

Деплой сайта, написанного на Java

Пытаюсь развернуть сайт, написанный на Java с использованием фреймворка Vaadin на платном хостингеСделал вcё согласно туториала - скопировал

380
Вопрос как запустить java код на сервере?

Вопрос как запустить java код на сервере?

Задача такая, есть текст с кодом, нужно отправить его через POST на сервер, и виртуальная машина java должна его отработать и вернуть результат...

425