баг localStorage
этот код забивает пишет в storage пока браузер не упедает, все что он успевает записать остаеться в storage, это что то новенькое или я слоупок?
var data = "";
for(var i = 0; i < 500000; i++)
localStorage.setItem("data", data+=i)
убивает 4 гига оперативы как нефиг делать (дальше просто убил процесс). |
Ты асинхронным вычислением строки убиваешь браузер. Что очередь не детская. Что ресурсы при вычислении жрет
|
Цитата:
|
Это вопрос к разработчикам браузеров. А факты то. Что очередь дикая. То что вычисление строки жрет немало - получить - вычислить-сохранить. Что сборщик мусора инертен.
Насчет асинхрона и очереди погорячился-синхрон без очереди |
Цитата:
|
Во-первых,
Цитата:
data=''
file=/tmp/$RANDOM
for line in {0..500000}
do
data+=$line
done
echo $data > $file | ls -lah $file | awk '{print $5}' # 2,8M
Во-вторых, у меня bash тоже подвис на этой операции на несколько минут. А если при этом еще на каждой итерации дергать файл, то:
➜ time `str=''; tmp=/tmp/$RANDOM; for i in {0..10000}; do str+=$i; echo $str >> $tmp; done`;
real 0m31.761s
user 0m30.484s
sys 0m1.181s
При том что количество итераций в 50 раз меньше! |
cyber,
Не наю, если чисто копировать из аякса текстовый файл мега в три - у меня секунд 30 грузит на storage с учетом аякса Соль походу в том, что оно у тьву каждую цифру перезаписывает в файл на жесткий по обращению localStorage.setItem() А каждое обращение на запись файла порядка 1мs, в зависимости от винта Очевидно пишет не по каждому обращению, а буферизирует, иначе часы были бы Просто походу перезаписать файл 5 миллионов раз |
| Часовой пояс GMT +3, время: 08:03. |