Производительность HTML localStorage setItem и getItem около 5 МБ?

Я создавал небольшой проект, в котором использовался 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.0Ghz Duo Core с 2GB DDR3 RAM.

===

Итак, вопросы:

  1. Проводил ли кто-нибудь своего рода сравнительный анализ для localStorage get and set for различные размеры ключей и значений и в разных браузерах?
  2. Я предполагаю, что большая разница в задержке и использовании памяти между Firefox и остальными - это проблема Gecko и Webkit. Я знаю, что ответ можно найти, погрузившись в эти кодовые базы, но я определенно хотел бы знать, может ли кто-нибудь еще объяснить важные детали реализации localStorage на этих двух движках, чтобы объяснить огромную разницу в эффективности и задержке между браузерами. ?

К сожалению, я сомневаюсь, что мы сможем решить эту проблему, но чем ближе можно приблизиться, тем лучше понять ограничения браузера в его текущем состоянии.

Спасибо!

12
задан Tan Yew Wei 13 April 2011 в 04:38
поделиться