Re[13]: Оставаться в С++ или уходить?
От: Stanislav V. Zudin Россия  
Дата: 30.04.22 05:51
Оценка: +2
Здравствуйте, Артём, Вы писали:

SVZ>>Я тебе больше скажу, мы в структурах данных указатели вообще не используем. Только индексы! Никаких лишних аллокаций.

Аё>Связные списки тоже на смещениях в памяти?

Ага, с хранением списка свободных ячеек.
И хеши — одномерные и 2Д тоже на индексах.

SVZ>>Поэтому у нас ворочаются 3Д схемы с 1200+ млн треугольников, которые у других даже в 2Д еле ползают. Асилит такое ява? Сомневаюсь. Одно выделение памяти займет вечность.


Аё>Ты себе противоречишь. С одной стороны "Только индексы! Никаких лишних аллокаций.", с другой 1200+ млн треугольников выделений.


Никакого противоречия.
В с++ создание массива не тянет за собой аллокаций под каждый элемент массива. И (un-)boxing'а здесь нет.

Аё>Сделать также и в жаве, без лишних выделений, mmap на большой кусок вызов такой же, как из C++. Только код на Java безопесней и без вывихов template укушенных Александреской.


Я знаю, что на яве можно писать как на Си, но зачем?

А насчёт безопасности... в Яве тоже надо соблюдать определённую гигиену — вовремя вызывать Close, например. Или использовать try-with-resources, не забыть реализовать интерфейсы...
т.е. грабли тоже есть, просто они разложены в другом порядке
_____________________
С уважением,
Stanislav V. Zudin
Re[14]: Оставаться в С++ или уходить?
От: Артём Австралия жж
Дата: 01.05.22 12:05
Оценка:
Здравствуйте, Stanislav V. Zudin, Вы писали:

Аё>>Связные списки тоже на смещениях в памяти?


SVZ>Ага, с хранением списка свободных ячеек.

SVZ>И хеши — одномерные и 2Д тоже на индексах.

Тут уже у меня разрыв шаблонов- нафига так извращаться?

SVZ>>>Поэтому у нас ворочаются 3Д схемы с 1200+ млн треугольников, которые у других даже в 2Д еле ползают. Асилит такое ява? Сомневаюсь. Одно выделение памяти займет вечность.

И кстати про 3D. Игры замечательно бегают с миллионами полигонов. Т.о. твое

у других даже в 2Д еле ползают

говорит лишь что другие ниасилили, и наверное тоже на C++ пытались.

Аё>>Ты себе противоречишь. С одной стороны "Только индексы! Никаких лишних аллокаций.", с другой 1200+ млн треугольников выделений.


SVZ>Никакого противоречия.

SVZ>В с++ создание массива не тянет за собой аллокаций под каждый элемент массива. И (un-)boxing'а здесь нет.
(un-)boxing можно избежать с альтернативным пакетом коллекций- тривиально.


Аё>>Сделать также и в жаве, без лишних выделений, mmap на большой кусок вызов такой же, как из C++. Только код на Java безопесней и без вывихов template укушенных Александреской.


SVZ>Я знаю, что на яве можно писать как на Си, но зачем?

Я указал выше- про вывихи C++. Про меньший риск нарваться на порчу памяти, на передачу исполнения по кривому адресу и т.д. И опять же, жаву можно запускать кросс-платформенно. Да я знаю про кросс-платф C++- тонны геморроя с ним, настроить build chain. Сравни с Go- один ключик, и компилит/линкует под другую платформу.

SVZ>А насчёт безопасности... в Яве тоже надо соблюдать определённую гигиену — вовремя вызывать Close, например. Или использовать try-with-resources, не забыть реализовать интерфейсы...

SVZ>т.е. грабли тоже есть, просто они разложены в другом порядке
Ну да, ручное управление ресурсами. Не памятью.
Re: Оставаться в С++ или уходить?
От: -n1l-  
Дата: 01.05.22 20:20
Оценка:
Здравствуйте, checkthestack,
Я сейчас изучаю плюсы, чтобы потом перейти в питон и мочь писать всякие крутые библиотеки на с++ и биндить их в питоне.
А еще мне нравится CEFб хочу его потыкать тоже.
Re[2]: Оставаться в С++ или уходить?
От: Артём Австралия жж
Дата: 04.05.22 05:51
Оценка:
Здравствуйте, -n1l-, Вы писали:

N>Я сейчас изучаю плюсы, чтобы потом перейти в питон и мочь писать всякие крутые библиотеки на с++ и биндить их в питоне.


На одном из митапов сильных олимпиадников какую-то задачку (не помню) другой чел сделал на C++, а я на питоне. Там и там правильный результат за приемлемое время. Но мой вариант, на питоне, быстрее считал. А все потому, что в моем варианте задействовалась хитрая функция из коробки- с мозговывихными оптимизациями, на C, в то время как на C++ чел ее реализовал самостоятельно. И вроде грамотно реализовал, но все равно медленнее.
Re[3]: Оставаться в С++ или уходить?
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 04.05.22 07:20
Оценка: +2
Здравствуйте, Артём, Вы писали:

Аё>На одном из митапов сильных олимпиадников какую-то задачку (не помню) другой чел сделал на C++, а я на питоне. Там и там правильный результат за приемлемое время. Но мой вариант, на питоне, быстрее считал. А все потому, что в моем варианте задействовалась хитрая функция из коробки- с мозговывихными оптимизациями, на C, в то время как на C++ чел ее реализовал самостоятельно. И вроде грамотно реализовал, но все равно медленнее.


Это всё понятно. Есть вылизанные математические библиотеки, кодеки, 3D движки и т.п., которые не то что прикладной программист, но часто и профессионал не переплюнет. Иначе зачем они в принципе нужны? Поэтому можно писать data scientist'ам на Питоне, сценарии игр на скриптах.
Но есть всё таки прикладные приложения, где не только тяжёлая часть критична, но и прикладная логика. Что ни говори, но браузеры пока никто не спешит на Java переписывать или на Go. Казалось бы, языки замечательные, безопасные, все дела. Но почему Гугл со своим Хромом не осилил? Это же не такое старое приложение, у компании ресурсов вагон. Мозилла же нашла у себя ресурсы на Раст. Ладно, я тёмный человек, пишу всего на паре языков сейчас и много чего не знаю. Но они почему такую чисто прикладную программу написать на человеческом языке не могут? Ни Apple на Swift, ни Майкрософт на C# тоже не написали.
Ну и кучу другого прикладного ПО аналогично. У меня на этот случай есть своя гипотеза: они боятся, потратив кучу денег и времени, родить медленного монстра без узких мест, которые можно оптимизировать. То есть получится условный браузер или друго сложное ПО, которое будет работать вдвое медленнее конкурентов, но оптимизированное по максимуму, без узких мест, просто идеальное. И медленное, и непонятно почему. Такая, возможно, бредовая гипотеза.
Re[3]: Оставаться в С++ или уходить?
От: so5team https://stiffstream.com
Дата: 04.05.22 07:47
Оценка: +1 -1 :)
Здравствуйте, Артём, Вы писали:

Аё>На одном из митапов сильных олимпиадников какую-то задачку (не помню) другой чел сделал на C++, а я на питоне. Там и там правильный результат за приемлемое время. Но мой вариант, на питоне, быстрее считал. А все потому, что в моем варианте задействовалась хитрая функция из коробки- с мозговывихными оптимизациями, на C, в то время как на C++ чел ее реализовал самостоятельно. И вроде грамотно реализовал, но все равно медленнее.


Из сей прохладной истории однозначно проистекает лишь то, что Тёмчик участвовал в митапе сильных олимпиадников.

С остальными выводами непонятно. Получается, что "другой чел" в условиях цейтнота корректно написал на коленке хитрую функцию на C++, которая выдавала правильный результат за приемлемое время. Да, получилось медленнее, чем в какой-то оптимизированной версии на чистом Си, в которую было вбухано непонятно сколько ресурсов. Однако, еще раз: на коленке и с приемлемой производительностью.

Остается только гадать, какой вывод читатель должен сделать из Тёмкиного рассказа: плох и не нужен С++ или таки нет.
Re[4]: Оставаться в С++ или уходить?
От: Артём Австралия жж
Дата: 04.05.22 22:10
Оценка: :)
Здравствуйте, Nuzhny, Вы писали:

N>почему Гугл со своим Хромом не осилил?


Вообще-то Гугл со своим Хромом сделал возможным NodeJS, Julia, ClojureScript, да и вообще возможным богатое гуёвое приложение в браузере. Прикладной софт педалить на C++ давно уже невыгодно.
Re[4]: Оставаться в С++ или уходить?
От: Артём Австралия жж
Дата: 04.05.22 22:14
Оценка: :))
Здравствуйте, so5team, Вы писали:

S>С остальными выводами непонятно. Получается, что "другой чел" в условиях цейтнота корректно написал на коленке хитрую функцию на C++, которая выдавала правильный результат за приемлемое время. Да, получилось медленнее, чем в какой-то оптимизированной версии на чистом Си, в которую было вбухано непонятно сколько ресурсов. Однако, еще раз: на коленке и с приемлемой производительностью.


Задача была не эту функцию написать. Кто виноват, что в C++ её нет из коробки, а в питоне есть- и "медленный" питон порвал "быстрый" C++ в случае математического рассчёта. Но коллектор у фанатиков C++ подгорел знатно.
Re[5]: Оставаться в С++ или уходить?
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 04.05.22 22:16
Оценка:
Здравствуйте, Артём, Вы писали:

Аё>Вообще-то Гугл со своим Хромом сделал возможным NodeJS, Julia, ClojureScript, да и вообще возможным богатое гуёвое приложение в браузере. Прикладной софт педалить на C++ давно уже невыгодно.


Да, да и PyScript тоже доступен. Но почему браузер на нормальном языке никто не напишет? Блин, это критическое ПО, которое как никакое другое должно быть надёжным в плане безопасности, особенно при работе с памятью. Посмотри, с какой регулярностью латают security баги в браузерах — это реальная проблема, для решения которой придумали новый язык Rust, а не заиспользовали Java/C#/Go/etc. Я же не говорю про работу с железом, драйвера, ОС, а просто про браузер — прикладное ПО. Почему для него не годится безопасный язык?
Re[6]: Оставаться в С++ или уходить?
От: Артём Австралия жж
Дата: 04.05.22 22:22
Оценка:
Здравствуйте, Nuzhny, Вы писали:

Аё>>Вообще-то Гугл со своим Хромом сделал возможным NodeJS, Julia, ClojureScript, да и вообще возможным богатое гуёвое приложение в браузере. Прикладной софт педалить на C++ давно уже невыгодно.


N>просто про браузер — прикладное ПО

Браузер уже давно не "просто". Это платформа для запуска приложений, как JVM. V8 сравним с Oracle JVM по производительности, отдельные части как вызов метода или обращение к свойству, вырождается в аналогичный сгенерённому C++ машинному коду. Да, накладные расходы на эту песочницу есть, небесплатно, но этим можно пренебречь.
Re[5]: Оставаться в С++ или уходить?
От: CreatorCray  
Дата: 04.05.22 22:23
Оценка: +3
Здравствуйте, Артём, Вы писали:

Аё>"медленный" питон порвал "быстрый" C++

Нет, Артёмка. Библиотечная сишная функция, которую неспешно профи вылизывали по скорости внезапно оказалась быстрее чем написанная с нуля на коленке
Сам питон там вообще просто рядом стоял и не отсвечивал.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[5]: Оставаться в С++ или уходить?
От: so5team https://stiffstream.com
Дата: 05.05.22 04:10
Оценка:
Здравствуйте, Артём, Вы писали:

Аё>"медленный" питон порвал "быстрый" C++


Для того, чтобы показать именно это в своей прохладной истории не нужно было говорить, что у обоих решений была приемлемая производительность.
Re[6]: Оставаться в С++ или уходить?
От: Артём Австралия жж
Дата: 05.05.22 04:38
Оценка:
Здравствуйте, so5team, Вы писали:

Аё>>"медленный" питон порвал "быстрый" C++


S>Для того, чтобы показать именно это в своей прохладной истории не нужно было говорить, что у обоих решений была приемлемая производительность.


Задачка олимпиадная Приемлемая- значит оно завершилось в отведенное время. Меня позабавило тогда только что на питоне быстрее завершилось.
Re[7]: Оставаться в С++ или уходить?
От: so5team https://stiffstream.com
Дата: 05.05.22 04:48
Оценка: +2
Здравствуйте, Артём, Вы писали:

Аё>Приемлемая- значит оно завершилось в отведенное время.


Это как-то противоречит чему-то сказанному выше?

Аё>Меня позабавило тогда только что на питоне быстрее завершилось.


А ты попробуй перестать зубоскалить и задумайся, что это означает. Вы потратили практически одинаковое количество времени, получили работающие решения, удовлетворяющие требованиям по производительности, при этом "другой чел" еще и явно больше кода написал. Корректно работающего, как можно было понять. И все равно по скорости получилось приемлемо.

На коленке, без возможностей провести профилирование и оптимизации, больше кода. И корректный результат с приемлемой производительностью.

И Тёмчику при этом очевидно, что C++ -- отстой.
ok.jpg
Re[7]: Оставаться в С++ или уходить?
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 05.05.22 07:57
Оценка: +3 :)
Здравствуйте, Артём, Вы писали:

Аё>Браузер уже давно не "просто". Это платформа для запуска приложений, как JVM. V8 сравним с Oracle JVM по производительности, отдельные части как вызов метода или обращение к свойству, вырождается в аналогичный сгенерённому C++ машинному коду. Да, накладные расходы на эту песочницу есть, небесплатно, но этим можно пренебречь.


Короче, ниасилили, слабаки. Производительное ПО только на плюсах и писать.
Re[8]: Оставаться в С++ или уходить?
От: Артём Австралия жж
Дата: 05.05.22 08:11
Оценка: :))
Здравствуйте, so5team, Вы писали:

S> Вы потратили практически одинаковое количество времени, получили работающие решения, удовлетворяющие требованиям по производительности, при этом "другой чел" еще и явно больше кода написал.



Ну если для тебя легче написанный, лаконичный и производительный результат не предпочтительнее, чем секс в гамаке с C++ с медленным выхлопом, то я даже не знаю. Фанатизм он такой- иррациональный.
Re[9]: Оставаться в С++ или уходить?
От: so5team https://stiffstream.com
Дата: 05.05.22 08:24
Оценка: +4
Здравствуйте, Артём, Вы писали:

S>> Вы потратили практически одинаковое количество времени, получили работающие решения, удовлетворяющие требованиям по производительности, при этом "другой чел" еще и явно больше кода написал.


Аё>Ну если для тебя легче написанный, лаконичный и производительный результат не предпочтительнее


Где об этом было сказано в обсуждаемой прохладной истории?

Аё>чем секс в гамаке с C++ с медленным выхлопом, то я даже не знаю.


Давай определимся с тем, у кого медленный выхлоп: у питона, у оптимизированного кода на чистом Си, у написанного на коленке кода на C++?

Аё>Фанатизм он такой- иррациональный.


Тёмчик, ты пукаешь в лужу пытаешься приписать фанатизм адвокатам C++, но сам при этом выглядишь фанатичным хейтером плюсов, который к тому же, слабо разбирается в обсуждаемом предмете.
Re[10]: Оставаться в С++ или уходить?
От: Артём Австралия жж
Дата: 07.05.22 00:44
Оценка: :)))
Здравствуйте, so5team, Вы писали:

S>Давай определимся с тем, у кого медленный выхлоп: у питона, у оптимизированного кода на чистом Си, у написанного на коленке кода на C++?

Тебе шашечки, или ехать? Я написал код на питоне, чел написал код на C++. Мой код на питоне сработал в разы быстрее.

S>Тёмчик, ты пукаешь в лужу


Не стоит собственное газоизвержение проецировать на других .
Re[11]: Оставаться в С++ или уходить?
От: CreatorCray  
Дата: 07.05.22 01:36
Оценка: +1
Здравствуйте, Артём, Вы писали:

Аё>Мой код на питоне сработал в разы быстрее.

Вот только питон там выполнял роль клея для Сшной функции
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[11]: Оставаться в С++ или уходить?
От: so5team https://stiffstream.com
Дата: 07.05.22 06:46
Оценка: +4 :))
Здравствуйте, Артём, Вы писали:

S>>Давай определимся с тем, у кого медленный выхлоп: у питона, у оптимизированного кода на чистом Си, у написанного на коленке кода на C++?

Аё>Тебе шашечки, или ехать?

Мне точки над i расставить.

Аё>Я написал код на питоне, чел написал код на C++.


Ты на питоне вызвал готовую функцию. Почему другой чел на C++ не смог взять готовую стороннюю реализацию -- это отдельный вопрос.

Суть же в том, что

a) когда решается некоторая задача, то выбирается набор готовых инструментов, которые позволяют получить решение быстрее. Если такие инструменты есть, то хорошо;

b) если готовых инструментов нет, то возникает вопрос, на чем их делать.

И вот тут уже интересно, т.к. очевидно, что если бы в питоне у тебя не было готовой оптимизированной реализации на Си и тебе пришлось бы писать недостающий функционал самостоятельно, то как раз питон бы никакой производительности бы тебе не обеспечил. От слова совсем. И выбор у тебя был бы всего лишь из чистого Си, C++ и, возможно, Rust-а. А из данной тройки чистый Си, как по мне, был бы самым худшим выбором.

Так что с точки зрения выбора языка для реализации нетривиальных и требовательных к скорости алгоритмов C++ более чем оправданный вариант. О чем и написал -n1l-. И которому ты потом стал загонять свою прохладную историю.

Аё>Мой код на питоне сработал в разы быстрее.


Да, размер пойманной рыбы в рассказах рыбаков неизбежно увеличивается с течением времени. Еще несколько дней, и ты будешь вещать нам о разнице в пару порядков.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.