StringBuilder sb = new StringBuilder();
String line = "a very big String";
String trim = line.trim();
String[] split = trim.split("&");
sb.append(split[0]);
sb.append("\n");
trim = null;
split = null;
У меня три вопроса:
В Java 8 функции Trim() и Split() копируют массив символов. . Таким образом, в памяти должно быть 3 (строка, обрезка и разделение) копии содержимого строки. StringBuilder.append() также скопирует массив символов. Таким образом, строка, обрезка и разделение будут собраны gc. В памяти хранится только копия Split[0]. Верно?
Поможет ли явная установка для поля String значения null (trim = null) ускорить сбор мусора и освободить память?
Есть ли какие-либо другие операции, которые могут уменьшить использование памяти для этого кода?
Я столкнулся с проблемой полного gc и OOM. Я явно установил для поля String значение null и добавил System.gc();, кажется, это работает. Но я хочу знать, почему и есть ли другой лучший способ?
[code]StringBuilder sb = new StringBuilder(); String line = "a very big String"; String trim = line.trim(); String[] split = trim.split("&"); sb.append(split[0]); sb.append("\n"); trim = null; split = null; [/code] У меня три вопроса: [list] [*]В Java 8 функции Trim() и Split() копируют массив символов. . Таким образом, в памяти должно быть 3 (строка, обрезка и разделение) копии содержимого строки. StringBuilder.append() также скопирует массив символов. Таким образом, строка, обрезка и разделение будут собраны gc. В памяти хранится только копия Split[0]. Верно? [*]Поможет ли явная установка для поля String значения null (trim = null) ускорить сбор мусора и освободить память? [*]Есть ли какие-либо другие операции, которые могут уменьшить использование памяти для этого кода? [/list] Я столкнулся с проблемой полного gc и OOM. Я явно установил для поля String значение null и добавил System.gc();, кажется, это работает. Но я хочу знать, почему и есть ли другой лучший способ?
Существует класс, использующий JNI. Некоторый код, как показано ниже
public class JniUser { частное имя строки; частный возраст; общедоступный собственный int getAge(); общедоступная собственная строка getName(); } В собственном коде задайте поля...
У меня есть задание cron с весенней загрузкой, работающее в контейнере. Я обнаружил, что контейнер несколько раз уничтожался кубернетами.
Это профилирование памяти и ЦП приложения во время выполнения задания:
Каждый раз, когда я пытаюсь выполнить Console.ReadLine в VS Code, появляется такая ошибка: «Преобразование нулевого литерала или возможного нулевого значения в тип, не допускающий значения NULL». Для контекста это мой код:
Каждый раз, когда я пытаюсь выполнить Console.ReadLine в VS Code, появляется такая ошибка: «Преобразование нулевого литерала или возможного нулевого значения в тип, не допускающий значения NULL». Для контекста это мой код: