Разница в восьмеричном / шестнадцатеричном пространстве и ascii занимает в файле JavaScript - PullRequest
0 голосов
/ 24 августа 2018

Итак, буква a в десятичном виде - 97, в шестнадцатеричном - 61, а в восьмеричном - 141. Вы можете написать это в JavaScript:

var octal = [ '\141', '\141', '\141' ]
var hex   = [ '\x61', '\x61', '\x61' ]
var ascii = [ 'a', 'a', 'a' ]

Все они приводят к одному и тому же:

console.log(octal) //=> ["a", "a", "a"]
console.log(hex)   //=> ["a", "a", "a"]
console.log(ascii) //=> ["a", "a", "a"]

Тем не менее, первая часть, которая меня интересует, заключается в том, что это фактически различное количество символов ASCII для определения :

'\141' (4)
'\x61' (4)
'a'    (1)

Мне интересно, если вы определите большой блок текста в восьмеричном или шестнадцатеричном формате, он на самом деле займет в 4 раза больше места в файле. Поэтому, если вы вернете ответ JSON от /api/resources.json как восьмеричное, ответ будет в 4 раза больше, чем если бы вы вернули ASCII. То есть ответ на это:

'\141\141\141\141\141\141\141\141\141\141\141\141....'

По сравнению с ответом на это:

'aaaaaaaaaaa....'

Так что я не уверен, действительно ли он увеличивает размер файла / размер ответа (возможно, глупый вопрос, но это кодирование сложно). Просто хочу убедиться, что да, это займет больше места, потому что это так. Таким образом, написание «сырого шестнадцатеричного / восьмеричного» в файле JavaScript приводит к тому, что оно становится больше, чем ASCII.

1 Ответ

0 голосов
/ 24 августа 2018

js файлы хранят текст, чем больше вы пишете, тем больше размер файла.

Это не проблема для скомпилированных языков, поскольку цель исходного кода - создать какой-то другой язык (промежуточный язык, байт-код и т. Д.), В котором семантика синтаксиса рационализирована.

javascript файлы, написанные для браузеров, перед их распространением не компилируются, поэтому размер файла может быть одним из факторов, влияющих на производительность.

Так что это действительно зависит от того, что вы пишете javascript для ...

Если вы пишете это для своей среды выполнения NodeJs, разница в производительности будет незначительной.

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

...