Информация об изменениях

Сообщение Re[45]: Поругайте TypeScript/node.js от 06.07.2022 12:06

Изменено 06.07.2022 12:16 ·

Re[45]: Поругайте TypeScript/node.js
Здравствуйте, Pauel, Вы писали:

P>>>Из нас двоих только я привел все бенчмарки. Так что если тут демагогия, то где то с твоей стороны.

P>·>И ты выбрал только удобные тебе результаты этих бенчмарков.
P>Я ничего не выбирал, а просто показал, что провал в основном только там, где многопоточность и пофиксить это никак нельзя.
Я увидел по-другому. Провала не было только в коде с тривиальным циклом по байт-буферу. В остальном были либо тормоза, либо нативные либы, либо проблемы с многопотоком.

P>Все остальное или работает хорошо искаропки, или фиксится либами, что есть норма — так устроена платформа. И сравнивать нужно именно платформу с платформой, т.к. отделить яп от платформы никак не выйдет. Не бывает абстрактных языков вне платформы.

P>Твои аргументы — "регекспы считать низя, они не на жээсе"
Регекспы это нетривиальный код, который делает какую-то хитрую реальную работу. Поэтому тест с нативной либой замеряет не скорость платформы, а скорость вызова нативных методов. Что, мягко говоря, неинтересно.
А то что java отстаёт от нативной либы лишь немного с учётом того, что там регекспы написаны с использованием managed+gc чистого кода на самом яп — это круто. И не поверишь, без всяких интринзиков, полный список можешь увидеть тут.

P>>>Попробуй таки ответить на мои вопросы.

P>·>"Какой в этом смысл?" — это риторический вопрос. Демагогия. Отвечаю, если тебе так хочется: "большой".
P>Это никакой не риторический вопрос. Объясни, ради чего мне стараться? У тебя есть внятный ответ на это? Вот у меня — нету.
Вот обсуждение

·>И плюсы ты тоже не знаешь... A vector<derived *> isn't convertible to a vector<base *> https://stackoverflow.com/questions/9365318/c-can-i-cast-a-vector-derived-class-to-a-vector-base-class-during-a-funct
Ога. Читай свою же ссылку — там тебе и ответ дали, как именно это все сломать, без особых трудов.

Ты заявил, что там по ссылке какой-то "правильный" ответ, не совпадающий с моей цитатой. И ты так трудишься, скрывая свой ответ, что у меня стойкое впечатление, что ты что-то не так понял; вместо того, что просто признать ошибку, разводишь демагогию на пустом месте.

P>·>"Когда ты последний раз писал на С++?" — это переход на личности. Демагогия. Отвечаю, если тебе так хочется: "не очень давно".

P>Нету здесь перехода, выглядит так, будто ты не в курсе Implicit cast https://en.cppreference.com/w/cpp/language/implicit_conversion
P>Ровно тот же кейс — заведомо некорректный код взял да и скомпилировался.
Давай конкретную цитату. Что именно некорректно?

P>>>Нету нативной либы — тоже херня.

P>·>Я такого не говорил.
P>А между тем ты оплевал и тот пример, где не было никаких дополнительных либ.
"Хороший jit" — это такой плевок? Ок, пусть будет плохой jit.

P>>>Ты похоже, контекст потерял. ты в курсе, что IList и IList<> это разные интерфейсы ?

P>·>Нет, не в курсе, c# я вообще не знаю. А что это меняет? object это не тип что-ли?
P>Это значит, что на дыру, которую ты показал, можно напороться самыми разными способами.
P>То есть, всё тот же кейс "заведомо некорректный код скомпилировался т.к. система типов не смогла защитить"
Это не дыра, т.к. потребуется явное преобразование типа. А там где оно есть, там, очевидно, может вылетать Class Cast Exception. В случае же ts там тупо молча без явных конструкций можно менять read-only поля и ловить CCE в случайных строчках кода, happy debugging.

P>>>Похоже, тебе абы

P>>> — здесь была речь про сериализатор ODATA.
P>·>Я не знаю о чём идёт конкретно речь. Разве там не просто json? За счёт чего твой сериализатор быстрее. Магия?
P>Конечно же нет. джсон это конечный формат. А надо обработать конкретный граф, где то с циклическими зависимостями, поотрубать лишние ветки, достроить необходимые, наложить на это метаданные, преобразовать все в серилизуемую форму и только потом преобразовать в джсон.
Так почему твой сериализатор быстрее?
Скажем, из бенчмарков о структуре в памяти подходит вот этот бенч. И нода совсем не блещет, на уровне php.
Re[45]: Поругайте TypeScript/node.js
Здравствуйте, Pauel, Вы писали:

P>>>Из нас двоих только я привел все бенчмарки. Так что если тут демагогия, то где то с твоей стороны.

P>·>И ты выбрал только удобные тебе результаты этих бенчмарков.
P>Я ничего не выбирал, а просто показал, что провал в основном только там, где многопоточность и пофиксить это никак нельзя.
Я увидел по-другому. Провала не было только в коде с тривиальным циклом по байт-буферу. В остальном были либо тормоза, либо нативные либы, либо проблемы с многопотоком.

P>Все остальное или работает хорошо искаропки, или фиксится либами, что есть норма — так устроена платформа. И сравнивать нужно именно платформу с платформой, т.к. отделить яп от платформы никак не выйдет. Не бывает абстрактных языков вне платформы.

P>Твои аргументы — "регекспы считать низя, они не на жээсе"
Регекспы это нетривиальный код, который делает какую-то хитрую реальную работу. Поэтому тест с нативной либой замеряет не скорость платформы, а скорость вызова нативных методов. Что, мягко говоря, неинтересно, и вообще питон победил.
А то что java отстаёт от нативной либы лишь немного с учётом того, что там регекспы написаны с использованием managed+gc чистого кода на самом яп — это круто. И не поверишь, без всяких интринзиков, полный список можешь увидеть тут.

P>>>Попробуй таки ответить на мои вопросы.

P>·>"Какой в этом смысл?" — это риторический вопрос. Демагогия. Отвечаю, если тебе так хочется: "большой".
P>Это никакой не риторический вопрос. Объясни, ради чего мне стараться? У тебя есть внятный ответ на это? Вот у меня — нету.
Вот обсуждение

·>И плюсы ты тоже не знаешь... A vector<derived *> isn't convertible to a vector<base *> https://stackoverflow.com/questions/9365318/c-can-i-cast-a-vector-derived-class-to-a-vector-base-class-during-a-funct
Ога. Читай свою же ссылку — там тебе и ответ дали, как именно это все сломать, без особых трудов.

Ты заявил, что там по ссылке какой-то "правильный" ответ, не совпадающий с моей цитатой. И ты так трудишься, скрывая свой ответ, что у меня стойкое впечатление, что ты что-то не так понял; вместо того, что просто признать ошибку, разводишь демагогию на пустом месте.

P>·>"Когда ты последний раз писал на С++?" — это переход на личности. Демагогия. Отвечаю, если тебе так хочется: "не очень давно".

P>Нету здесь перехода, выглядит так, будто ты не в курсе Implicit cast https://en.cppreference.com/w/cpp/language/implicit_conversion
P>Ровно тот же кейс — заведомо некорректный код взял да и скомпилировался.
Давай конкретную цитату. Что именно некорректно?

P>>>Нету нативной либы — тоже херня.

P>·>Я такого не говорил.
P>А между тем ты оплевал и тот пример, где не было никаких дополнительных либ.
"Хороший jit" — это такой плевок? Ок, пусть будет плохой jit.

P>>>Ты похоже, контекст потерял. ты в курсе, что IList и IList<> это разные интерфейсы ?

P>·>Нет, не в курсе, c# я вообще не знаю. А что это меняет? object это не тип что-ли?
P>Это значит, что на дыру, которую ты показал, можно напороться самыми разными способами.
P>То есть, всё тот же кейс "заведомо некорректный код скомпилировался т.к. система типов не смогла защитить"
Это не дыра, т.к. потребуется явное преобразование типа. А там где оно есть, там, очевидно, может вылетать Class Cast Exception. В случае же ts там тупо молча без явных конструкций можно менять read-only поля и ловить CCE в случайных строчках кода, happy debugging.

P>>>Похоже, тебе абы

P>>> — здесь была речь про сериализатор ODATA.
P>·>Я не знаю о чём идёт конкретно речь. Разве там не просто json? За счёт чего твой сериализатор быстрее. Магия?
P>Конечно же нет. джсон это конечный формат. А надо обработать конкретный граф, где то с циклическими зависимостями, поотрубать лишние ветки, достроить необходимые, наложить на это метаданные, преобразовать все в серилизуемую форму и только потом преобразовать в джсон.
Так почему твой сериализатор быстрее?
Скажем, из бенчмарков о структуре в памяти подходит вот этот бенч. И нода совсем не блещет, на уровне php.