2013-09-29 2 views
0

Я работаю на приложение для проверки скорости интернета. Сайт вычисляет скорость интернета с использованием JavaScript. При загрузке больших файлов 250Mb + Браузер падает. (Chrome, Opera, Firefox). Он сохраняет все тестовые файлы в DOM. Я видел, что использование памяти браузером идет вверх, как сумасшедший, при тестировании скоростей 100 Мбит/с.Используя JavaScript «Undefined» (Variable), мы можем освободить системную память?

Мой вопрос: есть ли способ ограничить использование памяти браузерами? Или существует ли ограничение на использование браузера DOM? После использования файла, сделав его «Неопределенным», фактически удалите элемент из системной памяти?

Я видел эту браузер проблему аварии после загрузки 250Mb + данные (следующего файл 250 Мб, так 512mb сохранен в DOM)

+1

Почему вы сохраняете его в памяти? – SLaks

+0

Сохранение его в браузере dom, потому что мы должны проверить скорость загрузки. Последние загруженные данные будут загружены обратно. – Vishnu

+0

Не могли бы вы просто отправить 250 мб случайных данных? Как я вижу, содержимое файла не имеет большого значения, как его размер; и вам ничего не нужно ничего спасать. –

ответ

0

Вам не нужны конкретные данные для тестирования скорости сети. Важным является размер данных (здесь, 250 мб). Кроме того, чтобы быть уверенным, что вы проверяете реальную скорость, существует дополнительное требование не использовать тривиальные данные (то есть не использовать все ноль или быстро повторяющийся шаблон).

Вы можете создать 1 мб случайных данных (или любой другой суммы, которая не разбивает приложение) и отправить ее 250 раз: сервер по-прежнему видит 250 МБ данных, и вам не нужно ничего хранить (за исключением того, что 1 мб).

Это работает, потому что вы тестирования скорости: вам не нужно, чтобы проверить, что данные, передаваемый такое же, как полученные данные, поскольку целостности ваших данных уже застрахована по основному TCP/IP протокол.

Относительно Высвобождение Javascript памяти: то, что вы можете сделать, это присвоив переменной другое значение (var = null;) и убедитесь, что вы не занимать какую-либо другую ссылку на эту переменную. Затем он может быть собран в мусор: переводчик может или не может его освободить, в зависимости от его реализации - у вас нет контроля над этим, кроме этого,.

Смежные вопросы