|
2.4, воробушек (?), 10:27, 14/01/2025 [^] [^^] [^^^] [ответить]
| –4 +/– |
на базе шланга качественного не бывает. кое-как работает и ладно - офф девиз шланга.
| |
|
|
|
5.59, Аноним (59), 16:41, 14/01/2025 [^] [^^] [^^^] [ответить]
| +1 +/– |
типа статья про std::literals::string_literals::operator""s есть и потому ошибки нет, а про std::literals::string_literals::operator""x нету и потому ошибка есть? Ты это сказать хотел?
И судя по набору имен, на которые не ругается (h/min/s/ms/us/ns), авторы костыля читали доку по хроно, а не про строки
| |
|
|
3.24, Аноним (24), 12:05, 14/01/2025 [^] [^^] [^^^] [ответить]
| +/– |
> на базе шланга качественного не бывает. кое-как работает и ладно - офф девиз шланга.
А как ты вообще представляешь себе качественный релиз либы весом 70 мегабайт бинарного кода? Это LLVM столько весит если что.
| |
|
2.53, Аноним (-), 15:57, 14/01/2025 [^] [^^] [^^^] [ответить]
| +/– |
Да и давно. На нем в игры можно в браузере играть. Например в Quake. Когда-то давно была демка. Зададим вопрос по другому - только сейчас о нем узнали?
| |
2.66, Аноним (66), 18:00, 14/01/2025 [^] [^^] [^^^] [ответить]
| +/– |
ну так себе
https://framagit.org/fperrad/lua.wasm
261kB wasm + 77kB js
А без использования их стандартной библиотеки и всевозможных обёрток для fileIO, просто голым шлангом получилось собрать в два раза меньший объём.
Для какого-нибудь многомегабайтного ffmpeg или quake в браузер притащить лишние 100кБ не заметно, а для совсем мелочи слишком много ненужных обёрток, чтобы стандартная библиотека в браузере прозрачно работала.
| |
|
3.82, Аноним (-), 22:17, 14/01/2025 [^] [^^] [^^^] [ответить]
| +/– |
Для современного веба, с современными скоростями это не проблема
| |
|
|
1.6, Аноним (12), 10:29, 14/01/2025 [ответить] [﹢﹢﹢] [ · · · ]
| –2 +/– |
Почему нельзя было просто сделать джаваскрипт быстрым? Это же так просто.
| |
|
|
3.11, Аноним (12), 10:49, 14/01/2025 [^] [^^] [^^^] [ответить]
| –2 +/– |
А чего тут ждать. Если вебасмембли такой быстрый почему джаваскрипт не может быть точно таким же.
| |
|
4.21, вебмакака (?), 11:58, 14/01/2025 [^] [^^] [^^^] [ответить]
| +4 +/– |
Потому что скриптуха без типизации.
А вообще впечатляют масштабы, в которых расплодились клоуны, требующие чтобы им дали ресурсов нахаляву. Даже если это в принципе невозможно - кого интересуют такие мелочи.
| |
4.25, Аноним (24), 12:07, 14/01/2025 [^] [^^] [^^^] [ответить]
| +2 +/– |
> А чего тут ждать. Если вебасмембли такой быстрый почему джаваскрипт
> не может быть точно таким же.
Динамическая типизация видите ли идет в комплекте с нехилым оверхедом. Надо все время трекать тип и следить что он не изменился. И быть готовым ко всему.
А вон то - простой, низкоуровневый рантайм, не снабженный таким факапом. Намного более простая и потому шустрая абстракция.
| |
|
5.34, Bottle (?), 13:04, 14/01/2025 [^] [^^] [^^^] [ответить]
| +1 +/– |
Причём, что забавно - строгая типизация это такая абстракция, которая позволяет компилятору генерировать быстрый код. Потому что pointer aliasing.
Очень часто находятся "умники", которые заявляют, что всякая абстракция лишь замедляет код. Отнюдь.
| |
|
6.36, вебмакака (?), 13:08, 14/01/2025 [^] [^^] [^^^] [ответить]
| –1 +/– |
Это не абстракция, обезьяныч. И никакой "pointer aliasing" тебе не поможет. Как и никакой "строгой" типизации не существует.
| |
6.51, Аноним (51), 15:25, 14/01/2025 [^] [^^] [^^^] [ответить] | +1 +/– | Это некий набор правил и или гарантий когда компилер при генерации кода явно зна... большой текст свёрнут, показать | |
|
7.70, Bottle (?), 18:45, 14/01/2025 [^] [^^] [^^^] [ответить]
| +1 +/– |
Понимаешь ли, процессор не увидит разниц между указателями на int_32_t и строковым типом такой же длины, а вот компилятор, который в одном методе видит разные типы, как раз воспользуется данным преимуществом.
| |
|
8.73, Аноним (-), 19:51, 14/01/2025 [^] [^^] [^^^] [ответить] | +1 +/– | Как вы поняли - дереференс указателей вообще не самый быстрый способ работы Быс... большой текст свёрнут, показать | |
|
|
|
|
4.28, Аноним324 (ok), 12:28, 14/01/2025 [^] [^^] [^^^] [ответить]
| +2 +/– |
он может быть таким же, но никто не платит чтобы с этим заморачиваться. Будут платить за джаваскрипт 15 тысяч зелени в месяц, будут делать быстрее, а пока платят нищие 4000 пусть в баню идут, за такие копейки, ещё над чем-то думать.
| |
|
|
2.15, myster (ok), 11:41, 14/01/2025 [^] [^^] [^^^] [ответить]
| –3 +/– |
В старом движке Opera Presto (2012 года) он был быстрый, но проект свернули.
Любая математическая операция (синтетический тест) в JavaScript консоли старой Opera обгоняла в сотни раз по производительности тогдашний Chrome, а Firefox и подавно. Я не думаю что и сейчас ситуация изменилась, если протестировать.
| |
|
3.18, вебмакака (?), 11:51, 14/01/2025 [^] [^^] [^^^] [ответить]
| +4 +/– |
> В старом движке Opera Presto (2012 года) он был быстрый, но проект свернули.
В твоих фантазиях.
> обгоняла в сотни раз по производительности
В тысячи раз. Правда в фантазиях.
| |
|
4.29, myster (ok), 12:33, 14/01/2025 [^] [^^] [^^^] [ответить]
| –3 +/– |
проверь умник, она же доступна для загрузки ещё, если нужно подсказать, что вводить в консоли - пиши, помогу, но по сути любая вычислительная операция с циклами, с массивами.
Кстати, в долгих операциях и "в тысячи раз" превышать будет, т.к. там разница в производительности увеличивается по нарастающей.
| |
|
5.79, Аноним (79), 21:13, 14/01/2025 [^] [^^] [^^^] [ответить]
| +1 +/– |
Даже если они могли что-то стоищее создать, но они опустились до вранья своим пользователям, а потом вообще продали браузер.
А адекватные разработчики ушли в Vivaldi
| |
|
|
|
2.20, Аноним (20), 11:57, 14/01/2025 [^] [^^] [^^^] [ответить]
| –1 +/– |
Быстрым, наверное, можно сделать не JS, а TS. И то, если его компилять сразу в машинные коды. Ага, прямо из браузера компилер вызывать, а то как же кроссплатформенность.
| |
|
|
4.38, Аноним (20), 13:34, 14/01/2025 [^] [^^] [^^^] [ответить]
| –1 +/– |
Я сказал в машинные коды - _инструкции_CPU_, а не какой-то там языковой виртуальной машины. Мы же хотим, чтобы быстро. Да и нет необходимости языку со статической типизацией в этих JIT.
| |
|
5.46, Аноним (46), 14:33, 14/01/2025 [^] [^^] [^^^] [ответить]
| +/– |
>> Это называется JIT и давным-давно используется в браузерах
> Я сказал в машинные коды - _инструкции_CPU_
Чел, JIT *буквально* транслирует в машинные коды 🤦
| |
5.47, Анонем (?), 14:39, 14/01/2025 [^] [^^] [^^^] [ответить]
| +/– |
> Я сказал в машинные коды - _инструкции_CPU_, а не какой-то там языковой
> виртуальной машины. Мы же хотим, чтобы быстро. Да и нет необходимости
> языку со статической типизацией в этих JIT.
* Just-In-Time (JIT) компиляция в Java — это механизм, который позволяет ускорить интерпретацию байт-кода виртуальной машиной. 1
Простыми словами, механизм JIT компиляции заключается в следующем: если в программе присутствуют части кода, которые выполняются много раз, то их можно скомпилировать один раз в машинный код, чтобы в будущем ускорить их выполнение.
* Java — это статически типизированный язык.
(с) Яндекс Нейро
| |
|
6.48, отец_нашей_демократии (?), 15:03, 14/01/2025 [^] [^^] [^^^] [ответить]
| –1 +/– |
из того же источника:
>[оверквотинг удален]
> rust не имеет статической типизации
>> Rust имеет статическую типизацию. Когда разработчик создаёт переменную в Rust, он должен сразу указать, какого она типа — что будет в ней храниться.
> в rust нет переменных, это скриптуха с gc и ссылками вместо переменных
>> В Rust есть переменные. Для их объявления используется ключевое слово let. По умолчанию переменные неизменяемы, но их можно сделать изменяемыми, добавив перед именем ключевое слово mut. Ссылки в Rust используются для управления памятью. В языке есть два типа ссылок: ссылки на чтение (shared reference) и изменяемые (мутабельные) ссылки. Ссылки подчиняются двум правилам: не должны жить дольше, чем данные, на которые они ссылаются, и мутабельная ссылка должна быть уникальна. Таким образом, Rust сочетает в себе особенности языка с ручным управлением памятью и сборщиком мусора: код получается чистым, как в языке с GC, но в то же время все ресурсы освобождаются максимально быстро, как в языке с ручным управлением.
> покажи мне sizeof от переменной в rust без испоьзования stdlib
>> Для получения размера переменной в Rust используется функция size_of_val. Пример использования: '''let a = 10i32; println!("{}", size_of_val(&a));'''. Также для получения размера типа в байтах в Rust можно использовать функцию size_of из пакета std::mem.
> без испоьзования stdlib
>> Не удалось найти информацию о том, как получить sizeof от переменной в Rust без использования stdlib.
> правильно, потому что это невозможно. rust не знает ничего о переменных и их свойствах
>> Да, получить sizeof от переменной в Rust без использования stdlib невозможно, так как для этого используется специальная функция — size_of_val.
с жавой будет то же самое. как и с любой другой скриптухой.
| |
|
|
|
|
2.55, Аноним (-), 16:03, 14/01/2025 [^] [^^] [^^^] [ответить]
| –1 +/– |
А ты замерь насколько он быстрый. Не знаю как проверяют бенчмарки, но мои замеры показывали производительность почти такую же как и на С. Конечно ты можешь вспомнить что-то про многопоточность, но я тоже могу вспомнить про воркеры. Конечно всё-равно это не многопоточность и тем не менее.
| |
|
1.16, anonymouse (?), 11:43, 14/01/2025 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Есть тулкит на wasm для экспериментов с фильтрами ffmpeg в браузере. Если не перебарщивать со сложностью, wasm вполне полезная технология.
| |
1.60, htmldevelob (?), 16:42, 14/01/2025 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
Вопрос глупый но всё же, зачем нужен этот ваш wasm? не проще былоб в браузеры встроить qemu\kvm
| |
|
2.67, Аноним (67), 18:08, 14/01/2025 [^] [^^] [^^^] [ответить]
| +1 +/– |
Ну целую операционную систему с сервера грузить это наверное уже слишком. Но создать ABI для запуска блобов с доступом лишь к тому, что разрешили, можно. В хроме оно даже и было, но разрабы лисы надули щеки и сказали, что не будут запускать блобы и предложили asm.js. Но в конечном итоге пришли к wasm, но как бы лишь для реализации быстрых алгоритмов.
| |
|
3.68, Аноним (68), 18:16, 14/01/2025 [^] [^^] [^^^] [ответить]
| +/– |
> Ну целую операционную систему с сервера грузить это наверное уже слишком.
Вообще можете загуглить jslinux. Если дело делает профессионал как Фабрис - то и линух загрузить в браузере - не так уж ужасно как может показаться.
| |
|
2.72, Аноним (72), 18:55, 14/01/2025 [^] [^^] [^^^] [ответить]
| +1 +/– |
чтобы в нём заустить линукс в котором запустить браузер в котором запустить qemu-kvm .....
| |
2.85, Аноним (85), 00:46, 15/01/2025 [^] [^^] [^^^] [ответить]
| –1 +/– |
Чтобы зум и куча других вредоносных сайтов запустились, а не предложили просто проваливать. Компиляция в код, близкий к нативному, сильно осложняет реверс-инжиниринг. Это обфускация с виртуальной машиной: совмещает недостатки и нативного кода, и скриптов. Для кого-то это является достоинством.
| |
|
1.76, maxis11 (ok), 20:15, 14/01/2025 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
А кто-нибудь начал конвертор пилить из Vulkan в Web GPU для EMS (или пока все только мечты)?
| |
1.86, chdlb (?), 02:53, 15/01/2025 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
искал либу для xxhash64 под WASM, нашел, автор перешел с Emscripten на шланг
я не знаю точной причины, может кто и расскажет нам
| |
|