Я строил небольшой проект, который использовал HTML localStorage.Хотя я не был близко к пределу в 5 МБ для localStorage, я все равно решил провести стресс-тест.
По сути, я загружал объекты данных в один объект localStorage до тех пор, пока он немного не превысил этот предел, и должен запросить, чтобы установить и получить различные элементы.
Затем я неофициально рассчитал время выполнения setItem и getItem , используя объект Date javascript и обработчики событий (привязали get и set к кнопкам в HTML и просто нажали = P)
Производительность была ужасающей: запросы занимали от 600 до 5000 мс, а использование памяти приближалось к 200 Мб в худшем случае.Это было в Google Chrome с одним расширением (Google Speed Tracer), в MacOSX.
В Safari это в основном> 4000 мс.
Firefox был неожиданностью, имея довольно многоне более 150 мс.
Все это было сделано в основном в состоянии бездействия - не мешал YouTube (Flash), не было много вкладок (ничего, кроме Gmail), и не было открыто ни одного приложения, кроме фонового процесса + браузера.Когда всплыла задача, интенсивно использующая память, localStorage также замедлился пропорционально.FWIW, я использую Mac в конце 2008 года -> 2.0 ГГц Duo Core с 2 ГБ оперативной памяти DDR3.
===
Итак, вопросы:
- ИмеетКто-нибудь делал какие-то сравнительные тесты с localStorage get и set для разных ключей и значений разного размера и в разных браузерах?
- Я предполагаю, что большая разница в задержке и использовании памяти между Firefox и остальными - Geckovs проблема Webkit.Я знаю, что ответ можно найти, углубившись в эти основы кода, но я определенно хотел бы знать, может ли кто-нибудь еще объяснить соответствующие подробности о реализации localStorage на этих двух движках, чтобы объяснить огромную разницу в эффективности и задержке между браузерами?
К сожалению, я сомневаюсь, что мы сможем решить ее, но чем ближе, тем лучше понимаешь ограничения браузера в его текущем состоянии.
Спасибо!