Размер информационной кучи

Какую информацию я могу получить от performance.memory объект в Chrome?
Что означают эти цифры? (они в кб или символах)
Что я могу узнать из этих чисел?

Пример значения performance.memory

MemoryInfo {
  jsHeapSizeLimit: 793000000,
  usedJSHeapSize: 10000000,
  totalJSHeapSize: 31200000
}

2 ответа

Решение

Какую информацию я могу получить из объекта performance.memory в Chrome?

Имена свойств должны быть довольно наглядными.

Что означают эти цифры? (они в кб или символах)

Документы утверждают:

Значения квантуются так, чтобы не раскрывать личную информацию злоумышленникам.

Посмотрите Патч WebKit для того, как выставлены квантованные значения. Тесты, в частности, помогают объяснить, как это работает.

Что я могу узнать из этих чисел?

Вы можете определить проблемы с управлением памятью. См. http://www.html5rocks.com/en/tutorials/memory/effectivemanagement/ чтобы узнать, как performance.memory API был использован в Gmail.

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

Краткий обзор кода, с которым связывался Берги - относительно квантованных значений - кажется, подтверждает это - например, float sizeOfNextBucket = 10000000.0; // First bucket size is roughly 10M.,

Квантованный MemoryInfo свойства в основном полезны для мониторинга, а не для точного определения влияния операций на память. Я думаю, что комментарий в вышеупомянутом связанном коде хорошо объясняет это:

86 // We quantize the sizes to make it more difficult for an attacker to see precise
87 // impact of operations on memory. The values are used for performance tuning,
88 // and hence don't need to be as refined when the value is large, so we threshold
89 // at a list of exponentially separated buckets.

В основном значения становятся менее точными по мере увеличения, но все еще достаточно точными для мониторинга использования памяти.

Другие вопросы по тегам