Я разработал автономное приложение в Java, но его использование 70% использования памяти ОЗУ, что заставляет систему зависать. Есть ли решение сократить использование памяти в Java-приложении. Пожалуйста помоги.Чтобы уменьшить использование ЦП Java-приложения
ответ
Убедитесь, что вы очистили свой ресурс, установив variableName = null;
, когда он вам больше не нужен. Это сделает его лучшим кандидатом на сбор мусора.
Вы также можете кал сборщик мусора вручную, используя System.gc();
Но сбор мусора обычно делается автоматически. Вызов его вручную потребляет много ресурсов и должен быть последним вариантом.
Другая возможная проблема с утечкой памяти: если вы объединяете Strings
. Используйте наилучшие StringBuilder
, если вам нужно объединить строки.
Примечание: вы можете отслеживать использование памяти с использованием временных методов.
Tmp tmp=new Tmp();
Runtime runtime = Runtime.getRuntime();
int procs = runtime.availableProcessors();
String max = tmp.adjust(runtime.maxMemory());
String total = tmp.adjust(runtime.totalMemory());
String used = tmp.adjust(runtime.totalMemory() - runtime.freeMemory());
String free = tmp.adjust(runtime.freeMemory());
Ручные вызовы сборщика мусора - очень плохая практика. Изменить: см. Здесь: [Почему явная сборка мусора плохая] (http://stackoverflow.com/questions/2414105/why-is-it-a-bad-practice-to-call-system-gc). – Rogue
Согласен. Вызов сборщика мусора потребляет много ресурсов и не должен быть первым решением. –
Я бы попробовал это и вернусь к вам. Большое спасибо за предложение. –
Есть многочисленные GC флаги, которые можно использовать для определения распределения вокруг виртуальной машины Java, но и во всей честности лучшая оптимизация для Java происходит от оптимизации кода первого.
Что касается, какие флаги смотреть в:
-Xmx1024M:
устанавливает максимальный размер кучи JVM до 1024 мегабайт. Вы можете изменить объем ОЗУ, выделенный для вашего процесса.
-XX: + AgressiveOpts
JVM супер-вариант. Это активирует другие флаги jvm. Объяснить им все это займет много времени, но в основном это позволило оптимизировать и увеличить размер кеша. Я считаю, что это старый пост на нем где-то ... аха: Old Post
Я бы определенно попробовал это и вернусь к вам. –
Вы можете просто ограничить использование виртуальной машины Java настроек памяти JDK, или выполнить рефакторинг кода приложения, пытаясь уменьшить выделение памяти , например повторное использование экземпляров объектов, используя Singleton, между другими методами рефакторинга
Я хотел бы рассмотреть это и проверить его снова –
- 1. Как уменьшить использование ЦП?
- 2. Как уменьшить использование ЦП?
- 3. Как уменьшить использование JAVA-приложений Использование ЦП?
- 4. Как уменьшить использование ЦП в Windows?
- 5. PHP - уменьшить использование ЦП при обработке изображений
- 6. Любой способ уменьшить htmlspecialchars() Использование ЦП?
- 7. Script, чтобы получить использование ЦП
- 8. Уменьшить использование ЦП в текущем процессе: Команда Unix
- 9. Использование ЦП
- 10. Точный способ уменьшить использование ЦП в бесконечном цикле
- 11. Как уменьшить использование ЦП при запуске обработчика события изменения прогресса?
- 12. Напишите код, чтобы использовать использование ЦП синусоиды
- 13. Как уменьшить использование ЦП при использовании нескольких потоков VB.net?
- 14. Как уменьшить общее использование ЦП на веб-хостинге?
- 15. Как уменьшить использование ЦП в приложении linux c (отдельный многопоточный)?
- 16. Высокое использование ЦП SceneKit
- 17. Приостановить скрипт оболочки каждые x (мили) секунд, чтобы уменьшить непосредственное использование ЦП
- 18. Неизменное использование ЦП?
- 19. Использование ЦП до 100%
- 20. Высокое использование ЦП - VB.NET
- 21. Нестабильное использование ЦП
- 22. Использование ЦП в glFinish()
- 23. Java Single Thread Использование ЦП и многопоточное использование ЦП
- 24. Как уменьшить использование процессора textdb?
- 25. Отладка Высокое использование ЦП
- 26. Использование ЦП JavaFX
- 27. Как вычисляется использование ЦП?
- 28. javascript кумулятивное использование ЦП
- 29. Использование ЦП в потоке
- 30. Android - память/использование ЦП
Используйте меньше памяти, не заполняя ненужные структуры данных. –
Процессор или оперативная память? что вы пытаетесь уменьшить? – logoff
Мы могли бы дать вам общие решения, но это может привести к сбою или зависанию программы. Вам нужно показать нам код (однако это может не соответствовать рекомендациям [so], я не уверен). – Dukeling