По какой причине компрессор YUI заменяет одинарные кавычки на двойные? - PullRequest
4 голосов
/ 14 февраля 2012

Как следует из названия: По какой причине YUI-компрессор заменяет одинарные кавычки на двойные?Двойные кавычки занимают меньше места (я так не думаю)?Или это что-то еще?

1 Ответ

10 голосов
/ 15 февраля 2012

Нормализация этих символов в один тип лучше включает сжатие GZIP, поэтому совпадение с двойными кавычками является случайным.

GZip работает стандартным способом сжатия, например, если у вас есть строка, такая как:

"Foo", 'bar', "baz"

Вы можете сжимать ", как один символ (давайте используем знак # для представления этого), сокращая строку до чего-то вроде:

"Foo#'bar', "baz"

С другой стороны, если у вас было:

"Foo", "bar", "baz"

Вы можете сжать ", "b это, например:

"Foo#ar#az"

Таким образом, мы получаем более короткую строку, исключая общее количество доступных символов.

Опять же, сделать это любой кавычкой не имеет значения, лишь бы она была последовательной.

Вот вырезка + вставка из моей командной строки linux, которая демонстрирует это:

briang@ubuntu:~$ cat 1.txt
"Foo", 'bar', "baz"

briang@ubuntu:~$ cat 2.txt
"Foo", "bar", "baz"

briang@ubuntu:~$ cat 1.txt.gz
&▒:O1.txtSr▒▒W▒QPOJ,R▒QPJJ▒R▒(▒P▒

briang@ubuntu:~$ cat 2.txt.gz
<▒:O2.txtSr▒▒W▒QPJJ,▒PUJ\tE▒

briang@ubuntu:~$ ls -la *txt*
-rw-rw-r-- 1 briang briang 20 2012-02-14 16:39 1.txt
-rw-rw-r-- 1 briang briang 46 2012-02-14 16:37 1.txt.gz
-rw-rw-r-- 1 briang briang 20 2012-02-14 16:39 2.txt
-rw-rw-r-- 1 briang briang 41 2012-02-14 16:38 2.txt.gz

Вы можете увидеть, как gziping такие маленькие файлы увеличивают размер, а не уменьшают их, но, глядя на различия gzip между двумя необработанными входными данными, вы получаете представление.Нормализованный файл gzip меньше на 5 байт.

...