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