- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
// https://github.com/google/brotli/blob/29dc2cce9090d6c92c908116e11373bc7fdc8ad1/c/enc/static_dict.c#L82
/* Transforms "" + BROTLI_TRANSFORM_IDENTITY + <suffix> */
if (s[0] == ' ') {
AddMatch(id + n, l + 1, l, matches);
if (s[1] == 'a') {
if (s[2] == ' ') {
AddMatch(id + 28 * n, l + 3, l, matches);
} else if (s[2] == 's') {
if (s[3] == ' ') AddMatch(id + 46 * n, l + 4, l, matches);
} else if (s[2] == 't') {
if (s[3] == ' ') AddMatch(id + 60 * n, l + 4, l, matches);
} else if (s[2] == 'n') {
if (s[3] == 'd' && s[4] == ' ') {
AddMatch(id + 10 * n, l + 5, l, matches);
}
}
} else if (s[1] == 'b') {
if (s[2] == 'y' && s[3] == ' ') {
AddMatch(id + 38 * n, l + 4, l, matches);
}
} else if (s[1] == 'i') {
if (s[2] == 'n') {
if (s[3] == ' ') AddMatch(id + 16 * n, l + 4, l, matches);
} else if (s[2] == 's') {
if (s[3] == ' ') AddMatch(id + 47 * n, l + 4, l, matches);
}
} else if (s[1] == 'f') {
if (s[2] == 'o') {
if (s[3] == 'r' && s[4] == ' ') {
AddMatch(id + 25 * n, l + 5, l, matches);
}
} else if (s[2] == 'r') {
if (s[3] == 'o' && s[4] == 'm' && s[5] == ' ') {
AddMatch(id + 37 * n, l + 6, l, matches);
}
}
} else if (s[1] == 'o') {
if (s[2] == 'f') {
if (s[3] == ' ') AddMatch(id + 8 * n, l + 4, l, matches);
} else if (s[2] == 'n') {
if (s[3] == ' ') AddMatch(id + 45 * n, l + 4, l, matches);
}
} else if (s[1] == 'n') {
if (s[2] == 'o' && s[3] == 't' && s[4] == ' ') {
AddMatch(id + 80 * n, l + 5, l, matches);
}
} else if (s[1] == 't') {
if (s[2] == 'h') {
if (s[3] == 'e') {
if (s[4] == ' ') AddMatch(id + 5 * n, l + 5, l, matches);
} else if (s[3] == 'a') {
if (s[4] == 't' && s[5] == ' ') {
AddMatch(id + 29 * n, l + 6, l, matches);
}
}
} else if (s[2] == 'o') {
if (s[3] == ' ') AddMatch(id + 17 * n, l + 4, l, matches);
}
} else if (s[1] == 'w') {
if (s[2] == 'i' && s[3] == 't' && s[4] == 'h' && s[5] == ' ') {
AddMatch(id + 35 * n, l + 6, l, matches);
}
}
} else if (s[0] == '"') {
AddMatch(id + 19 * n, l + 1, l, matches);
if (s[1] == '>') {
AddMatch(id + 21 * n, l + 2, l, matches);
}
} else if (s[0] == '.') {
AddMatch(id + 20 * n, l + 1, l, matches);
if (s[1] == ' ') {
AddMatch(id + 31 * n, l + 2, l, matches);
if (s[2] == 'T' && s[3] == 'h') {
if (s[4] == 'e') {
if (s[5] == ' ') AddMatch(id + 43 * n, l + 6, l, matches);
} else if (s[4] == 'i') {
if (s[5] == 's' && s[6] == ' ') {
AddMatch(id + 75 * n, l + 7, l, matches);
}
}
}
}
} else if (s[0] == ',') {
AddMatch(id + 76 * n, l + 1, l, matches);
if (s[1] == ' ') {
AddMatch(id + 14 * n, l + 2, l, matches);
}
} else if (s[0] == '\n') {
AddMatch(id + 22 * n, l + 1, l, matches);
if (s[1] == '\t') {
AddMatch(id + 50 * n, l + 2, l, matches);
}
} else if (s[0] == ']') {
AddMatch(id + 24 * n, l + 1, l, matches);
} else if (s[0] == '\'') {
AddMatch(id + 36 * n, l + 1, l, matches);
} else if (s[0] == ':') {
AddMatch(id + 51 * n, l + 1, l, matches);
Какая-то непонятная херота из архиватора Brotli с кучей магических констант, которые хрен знает что означают. Очевидно, этот код должен находить в текстовых данных какие-то часто встречающиеся куски текста, и таким образом сжимать эту хрень (т.н. словарный метод сжатия) но зачем все так пиздануто рассовывать по буквам в куче if() ?
Не могли для этого каких-нибудь ГОМОИКОН сделать?
ASMOZDOT 04.06.2018 06:18 # −1
gost 04.06.2018 09:25 # −1
Dummy00001 05.06.2018 01:51 # 0
писатели архиваторов часто таким байтоёбством занимаются.
потому что сами компрессоры программы не просто байтоёбством занимаются - хуже - они битоёбством занимаются.
пару бит тут, пару бит там - глядишь 0.1% на каком бенче и выиграл.
Dummy00001 05.06.2018 01:59 # 0
это, как я и догадывался, есть штатная часть кодирования.
3.14159265 13.06.2018 23:54 # 0
Dummy00001 14.06.2018 00:01 # 0
(*) лол, или мухлеж в бенчмарках компрессии.
bormand 05.06.2018 09:04 # 0
ASMOZDOT 05.06.2018 09:37 # 0
guest8 05.06.2018 11:57 # −999
ASMOZDOT 05.06.2018 12:08 # −1
guest8 05.06.2018 12:37 # −999
guest8 05.06.2018 11:58 # −999
j123123 05.06.2018 21:35 # 0
sam 06.06.2018 12:20 # 0
Хотя, конечно, непосредственно с JS он не работает - к WASM, который, по сути, js-байткод, приводится лишь IL-хренотень :(
Такой он, этот мир жабаскрипта..
3.14159265 14.06.2018 15:17 # +1
хлебный_троллейбус.жпег
И так мы в Nый раз изобретаем старую-добрую идею байт-кода.
666_N33D135 14.06.2018 15:23 # 0
3.14159265 14.06.2018 15:26 # 0
По сути какой-никакой байт-код, питумизированный согласно статистическим вореантностям.
> особый алгоритм сжатия, который бы был максимально заточен на сжатие минимизированного JS кода
А вообще не нужно никакого особого алгоритма. Достаточно взять paq8p.
666_N33D135 14.06.2018 15:31 # 0
Ну да, как-то глупо вместо исполнения байткода распоковывать его обратно в жыс.
guest8 14.06.2018 15:49 # −999
Steve_Brown 14.06.2018 16:32 # 0
Исполнять байткод - нормальный_мозг.jpg
Исполнять байткод джаваскриптом - мозг_сверхчеловека.jpg
guest8 14.06.2018 16:58 # −999
666_N33D135 14.06.2018 17:19 # 0
Steve_Brown 06.06.2018 15:32 # 0
Подожгли слону яички...
А что вас смущает? Обычный генерированный код...
guest8 06.06.2018 15:40 # −999
j123123 07.06.2018 01:22 # +1
3.14159265 13.06.2018 23:53 # 0