Какие инструменты и методы Вы используете для фиксации утечек памяти браузера?

Объекты JavaScript1 не упорядочены. Бесполезно пытаться «сортировать» их. Если вы хотите перебрать свойства объекта, вы можете отсортировать ключи, а затем получить связанные значения:

var myObj = {
    'b': 'asdsadfd',
    'c': 'masdasaf',
    'a': 'dsfdsfsdf'
  },
  keys = [],
  k, i, len;

for (k in myObj) {
  if (myObj.hasOwnProperty(k)) {
    keys.push(k);
  }
}

keys.sort();

len = keys.length;

for (i = 0; i < len; i++) {
  k = keys[i];
  alert(k + ':' + myObj[k]);
}

Alternate Object.keys fanciness:

var myObj = {
    'b': 'asdsadfd',
    'c': 'masdasaf',
    'a': 'dsfdsfsdf'
  },
  keys = Object.keys(myObj),
  i, len = keys.length;

keys.sort();

for (i = 0; i < len; i++) {
  k = keys[i];
  alert(k + ':' + myObj[k]);
}

1Не быть педантичным, но нет объекта JSON .

11
задан Jason Bunting 18 September 2008 в 18:30
поделиться

3 ответа

Необходимо попробовать детектор Утечки памяти JavaScript, разработанный внутренне в Microsoft.

6
ответ дан 3 December 2019 в 10:05
поделиться

Ну, Ваш лучший выбор состоит в том, чтобы понять то, что вызывает их, таким образом, можно критически посмотреть код, определить шаблоны, которые могут вызвать утечку, и затем избежать или осуществить рефакторинг вокруг них.

Вот несколько ссылок для запущения Вас, оба очень информативные:

3
ответ дан 3 December 2019 в 10:05
поделиться

Просто помните, что утечки памяти действительно о Вас не моющийся после себя. Все, в чем Вы нуждаетесь, является небольшой организацией.

В прошлом я создал свой собственный объект прокси для присоединения событий к элементам DOM. Это использует мой API библиотеки JavaScript, чтобы на самом деле установить и удалить события. Сам прокси просто отслеживает все ссылки так, чтобы я мог звонить, метод на нем, чтобы иметь его очищают все мои потенциальные утечки памяти.

В моих целях я смог просто назвать единственный deconstructor на странице, которая очистит утечки для всей страницы, когда пользователь оставлял страницу.

Вам, вероятно, придется быть более детализировано, но техника является тем же.

1
ответ дан 3 December 2019 в 10:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: