баг 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, время: 12:28. |