Измеряем время работы функции в C++

  Рет қаралды 255

Aleksey Malov

Aleksey Malov

Күн бұрын

Пікірлер: 13
@igorseledtsov7345
@igorseledtsov7345 Ай бұрын
valgring --callgrind, же.. но а то что показано это просто ересь , надеюсь объяснять не надо почему но что-то мерить на с++ это пустое, язык вообще на скорость не заточен.
@vividbw
@vividbw Ай бұрын
@@igorseledtsov7345 про инструменты профилирования обязательно когда-нибудь выпущу отдельный ролик. Здесь же я про бенчмаркинг, который мои студенты могли бы использовать в своих лабах А на чем основана ваша убежденность в том, что C++ на скорость не заточен?
@igorseledtsov7345
@igorseledtsov7345 Ай бұрын
@@vividbwЕсли серьёзно, то в том что используются классы то есть обоащение по указателю к данным (как этот указатель не обзывай) можно конечно и с поинтарами работать почти без издержек не спорю но когда вы вы вызываете очередной new данные аллоцируются бог знает где и бог знает как (и да я знаю что и с этим можно бороться) и далее обращение к этой прелести вызывает каскад проблем 1 загрузка поинтера в регистры 2 оброщение по поинтеру (что уже не сахар) как правило тут имеет тлб и кеж промах примерно так и зная всё это и библиотека С++ пишется на отвали, всё равно же всё тормозиn например (только один пример)работа с короткими строками (до 600) по сравнению с Си медленне в 40 раз с длинными (до 2000 )в 2-3 раза , с очень длинными ну без разницыю если честно. и так куда не ткни.. Я не критякую язык, он ясен понятен позволяет делать меньше багов Но скорость это не его конёк. Хотя конечно по сравнению с Явой или питоном это ракета
@vividbw
@vividbw Ай бұрын
New используется только при выделении объектов в куче. Обычные экземпляры классов, как и структуры, аллоцируются на стеке (их внутренние поля могут выделять память в куче, например string или vector). Легковесные объекты с тривиальным деструктором могут быть разложены в регистры при передаче в функцию по значению. В C++ есть RAII, который делает удобным управление ресурсами, в отличие от C, где приходится во всех точках выхода из функции явно освобождать ресурсы, либо делать единую точку выхода с переходом в нее с помощью goto. Язык C требует больше когнитивных усилий, чтобы написать надежный код. В C++ всегда можно спуститься на уровень ниже. Ну а шаблоны позволяют избегать дублирования кода и дают больше возможности оптимизатору. Например, та же стандартная сортировка будет на C++ работать быстрее qsort за счет избавления от вызовов компаратора по указателю.
@igorseledtsov7345
@igorseledtsov7345 Ай бұрын
@@vividbw Да да даб Но если спксться то это уже будет не С++ Шаблоны кстати прекрасно реализуются на Си но более трудоёмко, не срорю.. Я бы из Си++ шаблоны вообще убрал.. Вреда больше чем пользы А сортировка хороший пример того почему не нао бездумно использовать шаблоныю Всё хорошо пока сортируем простые типы а как только начинаем сортировать ытруктурыюю то уже там оптимальное их копиорвание не может быть бфть выполнено как c=a a=b b=c// Таки да С++ это для быстроты написания, но не для эффиктвности
@vividbw
@vividbw Ай бұрын
@@igorseledtsov7345 звучит как вызов. Сортировку больших структур можно свести к сортировке указателей (с кастомным компаратором), что на C++ решается легче, чем на C, и работать будет быстрее за счет инлайнинга шаблонов) Предлагаю взять задачу какую-нибудь, которую можно за пару часов написать. И сравнить скорость работы си с си++ вариантом. Вы решите на Си, а я на C++. Результаты опубликую у себя на канале.
СОБАКА ВЕРНУЛА ТАБАЛАПКИ😱#shorts
00:25
INNA SERG
Рет қаралды 3,8 МЛН
МЕНЯ УКУСИЛ ПАУК #shorts
00:23
Паша Осадчий
Рет қаралды 3,2 МЛН
Happy birthday to you by Secret Vlog
00:12
Secret Vlog
Рет қаралды 6 МЛН
Disrespect or Respect 💔❤️
00:27
Thiago Productions
Рет қаралды 37 МЛН
.Net 8.0 быстрее Framework 4.6
12:58
Alexey SuperAnt
Рет қаралды 1,1 М.
Добро пожаловать в C++
16:08
Winderton
Рет қаралды 480 М.
«Осень». Самая большая загадка Windows XP
14:36
Девять десятых
Рет қаралды 1,2 МЛН
Всё об указателях в C++ за 20 минут
20:00
Смысл интеграла и производной. В помощь студенту
15:54
СОБАКА ВЕРНУЛА ТАБАЛАПКИ😱#shorts
00:25
INNA SERG
Рет қаралды 3,8 МЛН