1.1, фывфыв (?), 19:24, 21/01/2018 [ответить] [﹢﹢﹢] [ · · · ]
| +8 +/– |
> Порт библиотеки сжатия Zstd на JavaScript
> пи помощи компилятора Emscripten
Может уже хватит это портом называть? Тогда любую сборку программы можно назвать портом для arm, amd64, GNU/Linux и т.д. -_-
| |
|
2.2, Оболтус (?), 19:28, 21/01/2018 [^] [^^] [^^^] [ответить]
| +6 +/– |
> Может уже хватит это портом называть?
Ну если код потом обработали и привели в читаемый вид, то почему бы и нет?
| |
|
3.12, Xasd (ok), 21:22, 21/01/2018 [^] [^^] [^^^] [ответить]
| –2 +/– |
> Ну если код потом обработали и привели в читаемый вид, то почему бы и нет?
кого привели в читаьельвый вид? бинарник?
| |
|
|
|
6.24, pavlinux (ok), 05:14, 22/01/2018 [^] [^^] [^^^] [ответить]
| –1 +/– |
> https://github.com/yoshihitoh/zstd-codec/blob/develop/js/lib/zstd-codec-bindin
Ещё раз: где бинарник?
...
var Module = function(Module) {
Module = Module || {};
var Module;if(!Module)Module=typeof Module !== 'undefined' ? Module : {};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;if(Module["ENVIRONMENT"]){if(Module["ENVIRONMENT"]==="WEB"){ENVIRONMENT_IS_WEB=true}else if(Module["ENVIRONMENT"]==="WORKER"){ENVIRONMENT_IS_WORKER=true}else if(Module["ENVIRONMENT"]==="NODE"){ENVIRONMENT_IS_NODE=true}else if(Module["ENVIRONMENT"]==="SHELL"){ENVIRONMENT_IS_SHELL=true}else{throw new Error("The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.")}}else{ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof
require==="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;ENVIRONMENT_IS_
....
| |
|
7.26, Аноним (-), 09:01, 22/01/2018 [^] [^^] [^^^] [ответить]
| +/– |
> Ещё раз: где бинарник?
У вебмакак и бинарники под стать:
var ASM_CONSTS=[];STATIC_BASE=GLOBAL_BASE;STATICTOP=STATIC_BASE+20192;__ATINIT__.push({func:(function(){__GLOBAL__sub_I_zstd_binding_cc()})},{func:(function(){__GLOBAL__sub_I_bind_cpp()})});memoryInitializer="data:application/octet-stream;base64,lB8AAIokAACUHwAAKyUAALwfAACdJAAAEAAAAAAAAACUHwAAbSUAALwfAACwJQAAEAAAAAAAAACUHwAANyYAALwfAABzJgAAEAAAAAAAAACUHwAA+CYAALwfAAAyJwAAEAAAAAAAAACUHwAAwicAALwfAAAHKAAAEAAAAAAAAACUHwAAkCgAALwfAADOKAAAEAAAAAAAAACUHwAAVSkAAJQfAAD7KQAAOCAAAM8pAAAAAAAAAQAAAKgAAAAAAAAAOCAAAKspAAAAAAAAAQAAALAAAAAAAAAAACAAACAqAAAAAAAAyAAAAAAgAABFKgAAAQAAAMgAAACUHwAAoyoAALwfAACNKgAAAAEAAAAAAAC8HwAAvSoAAGgDAAAAAAAAACAAANkqAAAAAAAACAEAAAAgAADwKgAAAQAAAAgBAACUHwAAICsAALwfAAAIKwAASAEAAAAAAAAAIAAAOisAAAAAAABQAQAAACAAAFMrAAABAAAAUAEAAJQfAABtKwAAACAAAHgrAAAAAAAAgAEAAAAgAACEKwAAAQAAAIABAACUHwAAoCsAAAAgAAC8KwAAAAAAAKgBAAAAIAAA2SsAAAEAAACoAQAAlB8AAPcrAAAAIAAAFSwAAAAAAADQAQAAACAAADQsAAABAAAA0AEAALwfAAB5LAAAIAIAAAAAAAAAIAAAVCwAAAAAAAAYAgAAHCAAAGcsAACUHwAAvywAALwfAAATLQAAUAIAAAAAAAAAIAAA7iwAAAAAAABIAgAAHCAAAAEtAACUHwAAWS0AALwfAACvLQAAgAIAAAAAAAAAIAAAiC0AAAAAAAB4AgAAHCAAAJwtAACUHwAA9i0AALwfAABNLgAAsAIAAAAAAAAAIAAAJi4AAAAAAACoAgAAHCAAADouAACUHwAAlC4AADggAAA+NAAAAAAAAAEAAABgAwAAAAAAADggAAD/MwAAAAAAAAEAAABgAwAAAAAAADggAACaMwAAAAAAAAEAAABgAwAAAAAAAJQfAAB7MwAAlB8AAFwzAACUHwAAPTMAAJQfAAAeMwAAlB8AAP8yAACUHwAA4DIAAJQfAADBMgAAlB8AAKIyAACUHwAAgzIAAJQfAABkMgAAlB8AAEUyAACUHwAAJjIAAJQfAADZMwAAlB8AAIo+AAC8HwAA6j4AAIADAAAAAAAAvB8AAJc+AACQAwAAAAAAAJQfAAC4PgAAvB8AAMU+AABwAwAAAAAAALwfAAD
Все понятно, да? Не говоря о том что этот код весит 1.35 мегабайта, йо :)
| |
|
8.28, X4asd (ok), 13:18, 22/01/2018 [^] [^^] [^^^] [ответить] | +5 +/– | самый прикол ещё и в том что это лежит в РЕПОЗИТОРИИ ИСХОДНОГО КОДА ЛОЛ js-м... текст свёрнут, показать | |
|
7.29, irinat (ok), 14:36, 22/01/2018 [^] [^^] [^^^] [ответить] | +5 +/– | Ну вот тут, например code aA g,h,10 k qy 17994 124 0 n a g 11 0 124 0 i... большой текст свёрнут, показать | |
|
8.35, Stax (ok), 00:26, 23/01/2018 [^] [^^] [^^^] [ответить] | +/– | Я вот могу сказать, что вы никогда не открывали исходный код - заботливно написа... текст свёрнут, показать | |
|
9.36, irinat (ok), 00:36, 23/01/2018 [^] [^^] [^^^] [ответить] | +1 +/– | Некоторые открывал Но ещё я заглядывал в файлы, которые Emscripten генерирует ... текст свёрнут, показать | |
|
10.37, Stax (ok), 20:54, 23/01/2018 [^] [^^] [^^^] [ответить] | –1 +/– | Да, я ошибся - сорри Массив MemoryInitialization чисто emscripten овская штука ... текст свёрнут, показать | |
|
|
|
|
|
|
|
3.25, Аноним (-), 08:58, 22/01/2018 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Ну если код потом обработали и привели в читаемый вид, то почему бы и нет?
После emscripten и минификации код не сильно отличается от hexspeak'а.
| |
|
2.3, Crazy Alex (ok), 20:01, 21/01/2018 [^] [^^] [^^^] [ответить]
| +3 +/– |
Там таки не просто сборка. Там обычно некоторые правки, написание обвязки и т.п. В общем, именно портирование. Другое дело, что писали бы не "на javascript", а "на asm.js" - было бы понятнее
| |
|
1.5, Аноним (-), 20:04, 21/01/2018 [ответить] [﹢﹢﹢] [ · · · ]
| –26 +/– |
Отлично, JavaScript развивается. А хейтеры до сих пор "вспаменают" npm leftpad.
| |
1.6, Аноним (-), 20:07, 21/01/2018 [ответить] [﹢﹢﹢] [ · · · ]
| –3 +/– |
давно ждал, пока использовал lz4, но в нём нет словарей, сейчас буду переходить на zstd :)
| |
1.7, Аноним84701 (ok), 20:16, 21/01/2018 [ответить] [﹢﹢﹢] [ · · · ]
| +2 +/– |
> JavaScript-порт библиотек ... обеспечивающего одно из лучших соотношений уровня сжатия к производительности
> JavaScript-порт
> производительности
> JavaScript
https://github.com/yoshihitoh/zstd-codec
> TODO
> performance test
И как, соотношение просело всего в 2 раза? Или до 5-8 вообще "не считается!™" ?
| |
|
2.8, Аноним (-), 20:32, 21/01/2018 [^] [^^] [^^^] [ответить]
| –5 +/– |
производительности тебе хватит чтобы сжимать данные на браузере и отправлять их по вебсокету на сервер, экономя тем самым трафик клиентов, а там уже как угодно, можешь на ноде обрабатывать, можешь на С сервер написать.
| |
|
|
2.14, Аноним (-), 21:37, 21/01/2018 [^] [^^] [^^^] [ответить]
| –2 +/– |
Если на стороне клиента, то полезно для соединения через EDGE. А так все форматы медиа и документов уже ужатые.
| |
|
3.32, Аноним (-), 19:09, 22/01/2018 [^] [^^] [^^^] [ответить]
| +/– |
А браузер не пожмёт? (если только это не использовать для тех, которые не поддерживают).
А вообще имхо, что этим можно жать/расжать какие-нибудь ресурсы, хранящиеся на стороне, игры например, или ещё чего. Можно в Electron засунуть, гагага.
| |
|
|
1.38, Аноним (38), 15:07, 02/07/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Кто пробовал?
У обычного Zstandart много "Режимов". Часто много данных нужно передать с только от сервера к клиенту. Вот здесь есть [плохое] сравнение zstd и gzip: https://jothiprasath.com/blog/gzip-vs-zstd/
Из сравнения видно, что zstd:3 всем лучше gzip, а zstd:19 сжимает ОЧЕНЬ медленно, но время распаковки не сильно отличается от gzip.
Поэтому если передавать МНОГО данных (большое количество статики) Будет выгоднее. Меньше трафика (заметно) (+\- та же скорость распаковки (здесь я не верю в 7% (zstd) и 10% (gzip) нагрузки на цп)).
| |
|