- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
function main()
{
print("before");
try
{
throw 1;
}
catch (x: any)
{
print("catch");
}
print("end");
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
function main()
{
print("before");
try
{
throw 1;
}
catch (x: any)
{
print("catch");
}
print("end");
}
Самый большей говнокод за всю историю человечества сделан.
А что там с пкрфомансом в «JS++»?
Ну может быть в триста
Но не больше
Если писать только на сишном подмножестве JS, то можно добиться сишного пирфоманса?
Не думаю. Придётся заодно насрать на спеку JS чтобы разрешить UB'ы и аггрессивные оптимизации.
В JS этих понятий нет в принципе.
Даже если писать на подмножестве и срать в байт-буфера у оптимизатора будут связаны руки.
Ну как... Он всё ещё может забить хуй на спеку и считать, что обращения к Uint32Array никогда не алиасятся с Float32Array.
По спеке он таких ужасных предположений, конечно, делать не должен.
Ты, наверное, забил на эту гарантию хуй и дал LLVM'у поиграться с аргументами по-сишному?
Ну и как же? Сишка в случайном порядке аргументы обсчитывает?
Более того, она их перемешивает между собой...
Единственная гарантия: тело функции всё-таки будет вычисляться позже, чем её аргументы сайд-эффекты от тела функции всё-таки произойдут позже, чем сайд-эффекты от вычисления её аргументов.
А если во время вычисления аргументов ставится таймер, который сработает через ЧАСОК, но тело функции завершается гораздо быстрее?
Мне почему-то кажется, что си отработает примерно так же.
угадай, что нужно сделать
Но вообще в самом LLVM есть специально сделанные костыли именно для исключений
https://llvm.org/docs/ExceptionHandling.html#exception-handling-intrinsics
Кстати, если поставить себе задачу сделать try/finally (с единственной целью, чтобы перед return изнутри try обязательно выполнялся finally) - там будут те же проблемы?
> Как мы видим большой разницы между кодом нет
Какой багор ))))))
Есть же слово «auto».
Тем не менее я не спорю, что вывод типов в TS сделан намного лучше.
Но сранивать С++ и TS глупо: это языки для разных задач.
А вот если сравнивать TS с JS, Ruby, PHP и Python, то я пожалуй соглашусь, что TS выглядит очень хорошо
такая себе мантра. и на js, и на крестах можно написать веб-сервер. и на js, и на крестах можно написать гуйню. да в общем куски фронтенда можно написать на том и на том. в чём разные задачи?
Перепиши на JS
ты ведь именно так и делаешь? ;-)
Сколько ядер ни возьми, JAWA встанет раком на сборке мусора, т.к. памяти может не хватить, Jawa же говнище)
Боюсь, чем больше ядер, тем больше придётся докупать памяти, ведь JAWA настолько анскильная, что на каждый тред копирует стек!
Вообще открою страшную тайну: нет смысла иметь тредов больше, чем у тебя ядер
mootools
> Вообще открою страшную тайну: нет смысла иметь тредов больше, чем у тебя ядер
А если у меня четыре ядра, но они двойные? Можно иметь 8 тредов?
>двойные
гипертрейдинг?
Сильно зависит от задачи, но в общем случае можно считать их отдельными ядрами
mootools
Или более простой пример: 32 треда обрабатывают запросы пользователя, а 1 тред выполняет в фоне таски, в то время как ядер всего 32.
Это для софтварных тредов. На инициализацию хардварных тредов ты потратил слишком много времени.
> 32 треда обрабатывают запросы пользователя, а 1 тред выполняет в фоне таски, в то время как ядер всего 32.
Переключение контекста нынче недёшево...
В большинстве сред есть для этого таймер, который будет их выполнять, а в современном мире есть и корутины.
Правда если задачи блокирующие и без блокировки их не переписать, то ты в жопе.
в теории смысла нет, на практике бывает удобнее сделать поток, и не писать МНОГО КОДА для корутин или пула или асинхронщины
Инструменты пока что слабоваты
Для CPU-bound задач — да. Для IO (когда тебе надо серануть в сеть/прочитать диск и ждать ответа) — вполне себе имеет.
Но если ты можешь переписать код на select/poll/CompletionPorts то нет смысла держать треды в спящем состоянии.
В котлине есть корутинная либа ktor например, это обертка вокруг тех самых полов.
Если тебе нужно обработать 44 запроса,ты просто создаешь 44 корутины.
Все они работают на тредпуле размером с кол-во ядер.
Если какая-то корутина "блочится", то на самом деле она не блчится, а передает управление другой корутине
Всё, что прикасается к Jawa и JWM – превращается в ложь, обман, предательство и растрату ресурсов компьютерна.
не нравится котлин, возьмите asyncio из питона
Азаза. Jawa-отгрызок пытается хоть как-то повысить перформанс )))))))))
Я до 2019 для написания и проверки скриптушни обходился ноутбучным i5 третьего поколения. Обходился бы и сейчас, но хромолисовинды оборзели и стали вытекать из 8ГБ, а это уже был максимум, который туда можно было вставить.
Если б можно было туда впердолить ещё памяти, хватило бы до 2025 года.
Да нифига... у меня довольно долго был i5 3570k, купленный ещё до падения рубля. Не ноутбучный правда, так что он и сейчас вполне юзабелен.
i7 8700k буквально пару-тройку лет юзаю.
жаль, в 2000 символов не помещается. плохо Плэнер* Скрепер html-формы разработал
* https://ru.wikipedia.org/wiki/Плэнер
В 8 раз точно сольёт, avx то нету. Но может хоть до уровня опенссл дотянет...
Там можно не срать в кучу, например? А инты нормальные там есть?
Там есть инты, флоаты, линейный кусок памяти и отдельный массив для указателей на функции. В общем-то больше там нихуя нет, даже неструктурных jmp'ов.
Дейкстре бы понравилось.
я почему-то думал это JVM, а это весьма годно
Ассемблер со вкусом джавы.
И кто бы ни пробовал его переписать -- получалось нечитаемое говно ))
Ну это как с тредом, где сишную обработку ошибок через goto пытались переписать без него. Получалось только хуже и нечитаемее.
???????
хотя это же не вывод типов, это система типизации другая
Хотя конктерно это пример спорен. Я не уверен, что хочу широёбиться по функции ища что она возвращает
Да он школьник, делает домашку, ололо школоло на говнокоде!
раз считаешь что кто-то твой тупсрипт будет реально юзать заместо крестов и сишки, при наличии того же Rust, Nim, D
http://web.archive.org/web/20120124144026/habrahabr.ru/users/andoriyu/
Он на всех сайтах умудряется наживать врагов.
А кто -1-й?
> Откуда: США, California, Santa Barbara
Ого
К сожалению, вебархив не сохранил 7157-ю страницу рейтинга. Хотя можешь посмотреть, кого утопили в 2007-м:
http://web.archive.org/web/20071013092534/http://habrahabr.ru/people/unhabred/page1/