Размер информационной кучи
Какую информацию я могу получить от 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.
В основном значения становятся менее точными по мере увеличения, но все еще достаточно точными для мониторинга использования памяти.