170 похожих чатов

Привет, а насколько ну чисто в теории могут быть программы

чисто на Си, а не на Си++ с constexpr меташаблонами и т.д быть менее производительны? Или это всё лечится препроцессором?

28 ответов

7 просмотров

Посмотри лекцию Владимирова, где он сравнивает скорость сортировки в С через qsort и в С++ через std::sort. Там С медленнее, вроде как, аж в 3 раза.

И там "вылечить" С программу нельзя ничем.

Могут быть медленнее, могут - быстрее

все зависит от компилятора - важен только ассемблерный код на выходе

'Егор-'Зорин Автор вопроса
Dmitriy [Отпуск]
Могут быть медленнее, могут - быстрее

Ну медленее чисто не представляю тк плюсы надмножество Си

'Егор 'Зорин
Ну медленее чисто не представляю тк плюсы надмноже...

какие-то общие слова - как это влияет на то что будет на выходе в бинаре ?

'Егор-'Зорин Автор вопроса
Андрей Баженов
какие-то общие слова - как это влияет на то что бу...

Ну вплане того что написано на Си, плюсовый компилятор сожрёт и примерно уже будет такой как Си, но конечно это не точно тк не шарю

'Егор 'Зорин
Ну вплане того что написано на Си, плюсовый компил...

Ну во-первых, не сожрет Во-вторых, речь об идиоматическом использовании языков. Писать на С++ в стиле Си — неидиоматично

Nobody
Это не совсем корректное сравнение

Вопрос был насколько С программа может быть менее производительной. В лекции задача отсортировать массив. Программа на Си делает это медленнее там. Конечно, можно на Си реализовать свой алгоритм сортировки без использования стандартной библиотеки и это обгонит С++. Тогда сравнение будет корректным?

d7d1cd
Вопрос был насколько С программа может быть менее ...

Надо сравнивать алгоритмы с одинаковой сложностью

'Егор-'Зорин Автор вопроса
d7d1cd
Вопрос был насколько С программа может быть менее ...

Почему сразу обгонит, если алгоритм будет один и тот же?

d7d1cd
Вопрос был насколько С программа может быть менее ...

да странная формулировка все равно - один и тот же код на x86_64 clang++ в linux freebsd и macos генерит вообще разное

d7d1cd
Вопрос был насколько С программа может быть менее ...

Вопрос был в том, насколько идиоматичное использование С++ позволяет компилятору лучше оптимизировать код

Nobody
Вопрос был в том, насколько идиоматичное использов...

Ровно настолько, насколько много вычислений ты переводишь в компайл-тайм

'Егор-'Зорин Автор вопроса
Андрей Баженов
да странная формулировка все равно - один и тот же...

А если в рамках одной платформы и одного компилятора?:

Nobody
clang++ в macos другой)

мне можешь это не говорить он и на бсд другой) суть в том стандарт 1 - 3 машины 3 оси выхлоп разный очень

'Егор-'Зорин Автор вопроса
Aleksander Spichak
Ровно настолько, насколько много вычислений ты пер...

Ну как я говорил, лечится препроцессором в Си)

Да и например шаблоны в общем случае лучше, чем передача условного void*

'Егор-'Зорин Автор вопроса
Aleksander Spichak
Да и например шаблоны в общем случае лучше, чем пе...

_Generics) Ну а вообще хочется просто спрятаться от этого страшного меташаблон кода в ютненьком Си)

'Егор 'Зорин
_Generics) Ну а вообще хочется просто спрятаться о...

Си никогда не был уютненьким и никогда не будет

'Егор-'Зорин Автор вопроса
Nobody
Си никогда не был уютненьким и никогда не будет

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

Всё лечится, разными средствами, проблема - в цене лечения.

Похожие вопросы

Обсуждают сегодня

Гайз, кто-нибудь пробовал запустить probe-rs под камень, которого нет в probe-rs? Мб есть какой-нибудь пример у кого... Через target-gen попробовал сгенерировать chip-descript...
Максим Смирнов
1
@MrMiscipitlick А можешь макрос написать, который будет вычислять смещение относительно переданных меток? Просто .label1-.label2, и вернуть значение.
КТ315
35
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
Заметил в ghci 9.4.8: > :t (<*>) @((->)_) (<*>) @((->)_) :: (w -> (a -> b)) -> (w -> a) -> w -> b Разве не должно (w -> (a -> b)) быть записано как (w -> a -> b)? Это баг, ил...
Михаил
13
Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
Подобного рода ;Следующие три строки это директивы ассемблера, ;которые можно не задавать, т.к.работаем в Visual Studio. ;Символ ";" - это начало однострочного комментария ...
Егор Анелькин
3
Any electron dev here?
Sayanth Tezro
12
Подскажите, где смотреть результат выполнения программы? Код: ;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, станда...
Егор Анелькин
5
;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, стандартный ;вызов процедуры ;option casemap:no...
Егор Анелькин
1
Карта сайта