Каков размер, который потребляет ссылка в Android Java VM?
Больше информации:
Под этим я подразумеваю, если у нас есть
String str = "Watever";
Мне нужно то, что берет str, а не "Watever". -- "Watever" - это то, что сохраняется в месте, на которое указывает указатель (или ссылка), удерживаемый str.
Также, если у нас есть
String str = null;
сколько памяти потребляет? Это то же самое, что и другие str?
Теперь, если у нас есть:
Object obj[] = new object[2];
сколько потребляет obj и сколько потребляют obj[1] и obj[2]?
Причина вопроса следующая: (на случай, если кто-то может что-то порекомендовать).
Я работаю над приложением, которое управляет множеством изображений, загруженных из Интернета. Я начал хранить эти картинки в банке (который состоит из списка картинок).
При отображении этих изображений в галерее я использовал поиск изображения в списке (МЕДЛЕННО), а затем, если изображения не было, я показывал временную загрузку изображения, пока изображение не было загружено.
Поскольку это произошло в потоке пользовательского интерфейса, приложение стало очень медленным, поэтому я подумал о реализации хеш-таблицы в банке вместо списка, который у меня был.
Как я объяснял ранее, этот поиск происходит в потоке пользовательского интерфейса (и я не могу это изменить). Из-за этого коллизии могут стать проблемой, если они начнут замедлять поток.
Я читал, что для баланса эффективности времени и пространства хэш-таблица должна быть заполнена примерно наполовину, но это приводит к коллизиям в половине случаев (непрактично для потока пользовательского интерфейса). Это заставляет меня задуматься об очень длинной хеш-таблице (по сравнению с количеством сохраненных изображений) и использовать больше оперативной памяти (имея меньше свободного VMHeap).
Прежде чем определить размер хеш-таблицы, я хотел узнать, сколько памяти она будет потреблять, чтобы не преувеличивать.
Я знаю, что размер хеш-таблицы может быть очень мал по сравнению с памятью, которую могут занимать изображения, но я хотел убедиться, что не потребляю больше памяти, чем необходимо.
Прежде чем задать этот вопрос, я искал среди других мест в
Насколько велик является ссылкой на объект в Java и какую именно информацию она содержит?
(Да, я знаю, что два места противоречат друг другу, это одна из причин вопроса).