powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Как узнать размер обьекта с помощью функции getObjectsize()
13 сообщений из 13, страница 1 из 1
Как узнать размер обьекта с помощью функции getObjectsize()
    #39086294
arrt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
import java.lang.instrument.*;
import java.io.File;
public class MyAgent {
    static long size;    
    public static void main(String[] args) {
    File f = new File("C:\\README.txt");
    Filewalker fn = new Filewalker();
    Filewalker.Item odyn = fn.new Item (f.length(), f.getName(), f.getPath()); //Item – вложженый файл
    Instrumentation inst;
    size = inst.getObjectSize(odyn);
    System.out.println("Bytes used by object: " + size);      
  }
  
}



Вот такая ошибка в этом коде.
MyAgent.java:11: error: variable inst might not have been initialized
size = inst.getObjectSize(odyn);
Есть еще вариант с методом премейн который трудно связать
С мейном именно через эту специфическую переменную.
...
Рейтинг: 0 / 0
Как узнать размер обьекта с помощью функции getObjectsize()
    #39086341
ketaetc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
arrt,

Вы не инициализировали inst, присвойте какое-то значение.
Попробуйте
Код: java
1.
Instrumentation inst = new Instrumentation;
...
Рейтинг: 0 / 0
Как узнать размер обьекта с помощью функции getObjectsize()
    #39086661
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
java.lang.instrument это тема хитрая и с ней надо умеючи. Вобщем автор серъёзно отстаёт
по основам но прыгнул в дебри. Чтож. Удачи ему. Надеюсь те которые ему поручают
столь сложные инструменты осознают риски.
...
Рейтинг: 0 / 0
Как узнать размер обьекта с помощью функции getObjectsize()
    #39086713
arrt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton, какие уж такие основы я не знаю.
переменная Instrumentation не может создать обьект ибо это абстрактный клас (интерфейс).
Instrumentation inst = new Instrumentation; -- надо скобки, но будет ошибка.
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
import java.lang.instrument.*;
import java.io.File;

public class MyAgent1 {

  public static void premain(String args, Instrumentation inst) {
    File f = new File("C:\\README.txt");
    Filewalker fn = new Filewalker();
    Filewalker.Item odyn = fn.new Item (f.length(), f.getName(), f.getPath());
    long size = inst.getObjectSize(odyn);
    System.out.println("Bytes used by object: " + size);
  }
  
  public static void main(String[] args) {
    MyAgent1 mm = new MyAgent1();
    mm.premain();    
  }  
}


Вот так можна вызвать метод премейн в мейне, но что делать с аргументами?
Вообще пример отсюда http://www.javamex.com/tutorials/memory/instrumentation.shtml
...
Рейтинг: 0 / 0
Как узнать размер обьекта с помощью функции getObjectsize()
    #39086726
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
arrt, расскажи в обще-человеческих терминах какую задачу с файлами тебе надо решить?
...
Рейтинг: 0 / 0
Как узнать размер обьекта с помощью функции getObjectsize()
    #39086731
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
arrtmayton, какие уж такие основы я не знаю.
Такие что не позволяют вам освоить работу с Instrumentation по документации
https://docs.oracle.com/javase/8/docs/technotes/guides/instrumentation/index.html

arrtВообще пример отсюда http://www.javamex.com/tutorials/memory/instrumentation.shtml
А зачем вы делаете не так как в примере? Разберитесь сначала что такое Agent.
...
Рейтинг: 0 / 0
Как узнать размер обьекта с помощью функции getObjectsize()
    #39086851
arrt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,
Я собственно здесь и спрашиваю как сделать правильно.
Я не понимаю как вызвать метод premain, какая его роль.
Как инициализировать эту переменную instrumentation/
А пример не такой прост:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
public class MyAgent {
  private static volatile Instrumentation globalInstr;
  public static void premain(String args, Instrumentation inst) {
    globalInstr = inst; // Что сам по себе вызывается -?
  }
  public static long getObjectSize(Object obj) {
    if (globalInstr == null)
      throw new IllegalStateException("Agent not initted");
    return globalInstr.getObjectSize(obj);
  }
}
...
Рейтинг: 0 / 0
Как узнать размер обьекта с помощью функции getObjectsize()
    #39087505
arrt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
arrt, есть на форуме люди знающие джаву?
...
Рейтинг: 0 / 0
Как узнать размер обьекта с помощью функции getObjectsize()
    #39087743
Фотография fixxer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да полно таких. Все кто отписался в этом форуме за последний месяц способны прочитать и повторить то, что написано по твоей ссылке, в отличие от тебя.
...
Рейтинг: 0 / 0
Как узнать размер обьекта с помощью функции getObjectsize()
    #39087884
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пусть скажет что он собирается с файлами делать.
...
Рейтинг: 0 / 0
Как узнать размер обьекта с помощью функции getObjectsize()
    #39087941
arrt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton, смысла вашего вопроса не понимаю,
но я собираюсь проверить размер обьекта класа в вирт. памяти
Моя соседняя тема в этом разделе о джаве, там создан этот клас (там уже это проверено опытным путем).
...
Рейтинг: 0 / 0
Как узнать размер обьекта с помощью функции getObjectsize()
    #39087972
golovonometr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
arrtmayton, смысла вашего вопроса не понимаю,
но я собираюсь проверить размер обьекта класа в вирт. памяти
Моя соседняя тема в этом разделе о джаве, там создан этот клас (там уже это проверено опытным путем).

Почему бы тебе не бросить программировать, если ты даже свой пример сделать и попробовать не хочешь?
Код: plaintext
Premain-Class: mypackage.MyAgent
эта строчка ни о чем не говорит? Зачем она? Куда ее нужно написать?


Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
import java.lang.instrument.*;
import com.somepackage.SomeClass;

public class MyAgent {
  public static void premain(String args, Instrumentation inst) { // что-то мне подсказывает, что название этого метода я где-то слышал
    SomeClass obj = new SomeClass();
    long size = inst.getObjectSize(obj);
    System.out.println("Bytes used by object: " + size);
  }
}



Русский для вас не родной, а этот вы понимаете?
авторNow, before our application is run, our agent's premain method will be run. And in this case, the size of an instance of SomeClass will be created.
...
Рейтинг: 0 / 0
Как узнать размер обьекта с помощью функции getObjectsize()
    #39087991
Partisan M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
arrt какие уж такие основы я не знаю.
переменная Instrumentation не может создать обьект ибо это абстрактный клас (интерфейс).

Это знание меньше, чем ничего, потому что неправильное. В Java интерфейс - не то же самое, что абстрактный класс. Независимо от того, как вы это назвали, переменную нужно (и можно при некоторой ловкости рук) инициализировать перед использованием,
что вы и можете увидеть в примере, на который вы ссылаетесь. Добейтесь, чтобы работал готовый пример, потом делайте в нём желаемые изменения.

arrtесть на форуме люди знающие джаву?

Нет, конечно. Потому что "джавы" не существует. Зато есть Java, ява и жаба. Нельзя же знать несуществующий язык.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Как узнать размер обьекта с помощью функции getObjectsize()
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]