Какое влияние имеет обфускация JavaScript на скорость в мобильных браузерах? - PullRequest
1 голос
/ 28 мая 2011

Я хочу спросить, измерял ли кто-то влияние некоторых обфускаторов javascript на приведенный код. Я нацеливаюсь на мобильных пользователей, поэтому скорость очень важна. И я особенно стараюсь запускать 2 или 3 разных обфускатора для одного и того же кода подряд, что очень хорошо запутывает код, но я боюсь, что это окажет некоторое влияние на скорость.

Ответы [ 5 ]

3 голосов
/ 28 мая 2011

не должно.Компилятору / интерпретаторам не важно, какие у вас символы , если они верны.

1 голос
/ 28 мая 2011

Только для большинства JavaScript-обфускаторов минимизирует и переименовывает локальные переменные, что очень легко перепроектировать с помощью beautifier.

Лучшая комбинация, которую я нашел, это DojoToolkit и компилятор закрытия в расширенном режиме.

Закрытие в расширенном режиме делает код JavaScript практически невозможным для обратного проектирования даже после прохождения через beautifier.Как только ваш JavaScript-код запутывается до неузнаваемости и возможности реинжиниринга, ваш HTML не раскроет большую часть ваших секретов.

Эта ссылка для использования Dojo Toolkit с компилятором Closure в расширенном режиме для мобильных устройствПриложения:

http://dojo -toolkit.33424.n3.nabble.com / file / n2636749 / Using_the_Dojo_Toolkit_with_the_Closure_Compiler.pdf? by-user = t

Компилятор закрытияв расширенном режиме благодаря мобильным оптимизациям JavaScript работает на быстрее в мобильных средах.Например, встраивание функций, виртуализация методов-прототипов, свертывание пространства имен, удаление мертвого кода и т. Д. Ускоряют выполнение кода, поэтому это не только обфускатор, но и оптимизирующий компилятор.

Мои собственные тесты запускают код на iPad примерно на 10-20% быстрее и на 30% быстрее на Android.Использование памяти также уменьшено.

1 голос
/ 28 мая 2011

Если обфускатор выполняет некоторое кодирование и вызывает eval, как это делают некоторые, тогда во время загрузки скрипта будет снижение производительности.После того, как это выполнено, не должно быть никакой разницы, и, как было сказано ранее, это может ускорить ваш код из-за более медленного размера.

1 голос
/ 28 мая 2011

Ваш вопрос действительно нуждается в анализе вашего собственного javascript, чтобы получить полезный ответ.

Часто, тем не менее, запутывание фактически ускоряет javascript, так как размеры файлов уменьшаются (более быстрая загрузка) и символы становятся маленькимиимена (меньше для сравнения).

0 голосов
/ 28 мая 2011

Это зависит от того, что вы подразумеваете под запутыванием.

Если вы имеете в виду минификацию, используя такой инструмент, как JSMin, то эффект будет нулевым.

Если вы говорите о чем-то вроде Packer, процесс eval действительно влияет на то, сколько времени занимает выполнение кода. На медленном устройстве это влияние может быть значительным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...