powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
25 сообщений из 418, страница 11 из 17
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38553582
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F#Я отвечал на "ООП по типу С++ не требует накладных расходов."
Ну так "по типу" же. Свойства вполне укладываются в сишную идеологию "не требовать накладных расходов", а их бинарная совместимость ровно такая же, как у инлайнящихся методов доступа.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38553647
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёр,

1. _Разумеется_, правильно заюзаное ООП даёт прирост скорости программе. Оно удешевляет её разработку и сопровождение. Раз так, то часть сэкономленных денег заказчик может дополнительно вложить в оборудование.
2. _Разумеется_, правильно заюзаное ООП даёт прирост скорости программе. Оптимизатор лучше понимает намерения разработчика и правильно расставляет приоритеты в оптимизации. Сравните производительность функции с двумя десятками if (мне вернули ошибку) { завершиться так и сяк } и функции с блоками try ... catch , которые для прогона без ошибок не стоят ровно ничего.
3. _Разумеется_, правильно заюзаное ООП даёт прирост скорости программе. Оно освобождает мозги для более полезных задач, чем прилаживание одного и только одного деструктора к каждому конструктору при каждом варианте выполнения и т.п.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38553684
Addx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iv_an_ru,
если убрать "_Разумеется_, правильно заюзаное ООП даёт прирост скорости программе.",
то соглашусь :)
Удешевление разработки и сопровождения отнюдь не всегда положительно сказывается на расходы заказчика, и уж совсем не факт, что он вложит их в оборудование. )
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38553712
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Addxiv_an_ru,
если убрать "_Разумеется_, правильно заюзаное ООП даёт прирост скорости программе.",
то соглашусь :)
Удешевление разработки и сопровождения отнюдь не всегда положительно сказывается на расходы заказчика, и уж совсем не факт, что он вложит их в оборудование. )

Там был неприкрытый стёб.

Обработка ошибок даже с двумя десятками if (пациент тонко шутит на незнание оптимизации по switch/case типовым кодером) всегда будет раз в 10-200 быстрее, чем обработка исключений, просто из-за крайней неэффективности реализации этого самого механизма исключений.

Но типовой ООП программист этим не озадачивается и вовсю использует exception как форму goto XXI века.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38553732
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedОбработка ошибок даже с двумя десятками if (пациент тонко шутит на незнание оптимизации по switch/case типовым кодером) всегда будет раз в 10-200 быстрее, чем обработка исключений, просто из-за крайней неэффективности реализации этого самого механизма исключений.

Но типовой ООП программист этим не озадачивается и вовсю использует exception как форму goto XXI века.Вобще-то я про скорость кода, исполняемого в случае, когда ни одно исключение так и не вылетело. Нету if-ов --- нечему рвать конвейер ядра. Если ошибка таки приключилась --- тут уже один чорт не до скорости, тут лишь бы не посыпалось всё :)
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38553799
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iv_an_rusocimedОбработка ошибок даже с двумя десятками if (пациент тонко шутит на незнание оптимизации по switch/case типовым кодером) всегда будет раз в 10-200 быстрее, чем обработка исключений, просто из-за крайней неэффективности реализации этого самого механизма исключений.

Но типовой ООП программист этим не озадачивается и вовсю использует exception как форму goto XXI века.Вобще-то я про скорость кода, исполняемого в случае, когда ни одно исключение так и не вылетело. Нету if-ов --- нечему рвать конвейер ядра. Если ошибка таки приключилась --- тут уже один чорт не до скорости, тут лишь бы не посыпалось всё :)

Я говорил про то, что в мозгах ООП "программистов" замечен типовой сдвиг по фазе. Они путают exception с нелокальным goto, там даже не про вопрос ошибок, а просто вот так они делают setjmp/longjmp (которые редкий C программист в здравом уме вот просто так начнет использовать, в равной степени и ucontext/coroutine, просто по причине их сложности).

Но exception-goto для ООП-истов относительно дешев, вот там и процветает эта разновидность говнокодирования.


А вот обработка ошибок - это настолько отдельная тема, что тут можно смело начинать холивар на 100500 страниц.
В моем (и не только) понимании - единственно верная обработка ошибок - это упасть в core и выдать посмертный мессдж в syslog.
Все остальное - это не ошибка, а как раз разновидность данных, и эти все разновидности должна обрабатываться явно.

К примеру не ввел пользователь свое ФИО - это нифига не exception, это просто обычный поток кода, который завернет его "пользователя" обратно на поле ввода.

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

Но в мире ООП это, конечно, не так.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554040
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedВ моем (и не только) понимании - единственно верная обработка ошибок - это упасть в core и выдать посмертный мессдж в syslog.
Все остальное - это не ошибка, а как раз разновидность данных, и эти все разновидности должна обрабатываться явно.Явный обработчик на конкретную ошибку как раз подпадает под это правило. Это раз. Ну и падать в core не всегда полезно, общество может осудить. Особенно если ошибка --- сетевой затык с пакетом фигни для какого-то ящика у неоперативного персонала, а падение в корку будет сопровождаться голосом тёти Риты, сиреной, разбегательством людей из машзала во все стороны и аварийным остановом турбины.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554071
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedК примеру не ввел пользователь свое ФИО - это нифига не exception
Забавный пример к тезису "страшно долгий неэффективный exception".

socimedдальнейшее поведение ПО непредсказуемо, и может привести к еще большей порче данных. Потому самое безопасное тут - просто упасть
Предлагаю внедрить такой подход, например, на рентгеновском аппарате - если произошла ошибка, просто упасть, оставив излучатель работать. Программист придёт, разберётся - выключит.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554086
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iv_an_rusocimedВ моем (и не только) понимании - единственно верная обработка ошибок - это упасть в core и выдать посмертный мессдж в syslog.
Все остальное - это не ошибка, а как раз разновидность данных, и эти все разновидности должна обрабатываться явно.Явный обработчик на конкретную ошибку как раз подпадает под это правило. Это раз. Ну и падать в core не всегда полезно, общество может осудить. Особенно если ошибка --- сетевой затык с пакетом фигни для какого-то ящика у неоперативного персонала, а падение в корку будет сопровождаться голосом тёти Риты, сиреной, разбегательством людей из машзала во все стороны и аварийным остановом турбины.

Потеря пакета, разрыв соединения - это не ошибка, а штатное, обрабатываемое поведение. Должен существовать в явном виде код, который может с ней справиться, не приводя состояние системы в неопределенное.

В том то и дело, что разработчик должен дошурупать до этого, и более того - понаписать тесты. А не тупо вхреначить finally на любые типы ошибок и думать что там оно как-то само все обработается.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554088
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedПотеря пакета, разрыв соединения - это не ошибка, а штатное, обрабатываемое поведение. Должен существовать в явном виде код, который может с ней справиться,
И этот код в ряде случаев озаглавлен catch Потеря_Пакета_Или_Разрыв_Соединения.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554092
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarersocimedК примеру не ввел пользователь свое ФИО - это нифига не exception
Забавный пример к тезису "страшно долгий неэффективный exception"

Там нет никакой связи с "долготой". Ты читаешь криво. Тема из обсуждения тормознутости exception в сравнении с if вообще перешла в другое измерение - отделение понятия setjmp/longjump/exception, от понятия необрабатываемой ошибки, понятия обрабатываемой ошибки, и контроля входящих данных.

softwarersocimedдальнейшее поведение ПО непредсказуемо, и может привести к еще большей порче данных. Потому самое безопасное тут - просто упасть
Предлагаю внедрить такой подход, например, на рентгеновском аппарате - если произошла ошибка, просто упасть, оставив излучатель работать. Программист придёт, разберётся - выключит.

Александр, чем проявлять такое феерически глупое ослоумие, я тебе предлагаю сначала ознакомиться с требованиями к огранизации ПО в этой области.

Начни с MISRA .

Как только там найдешь что-то конкретное про с++ exception - ты обязательно сообщи, ок?

Вот к примеру тут http://www.appinf.com/download/SafetyCriticalC .pdf в части требований JSF и того, что именно разрешено в MISRA

А в продолжение твоего желания показаться умным - продолжим. На рентгеновском аппарате есть специальный watchdog блок, который как раз и следит за основными процессами - если что-то упало или зависло, то он, в привелегированном режиме, и выключает этот самый излучатель.

И таких блоков там (по идее) должен стоять не один, а штуки четыре, причем абсолютно независимых. Странно, что тебе это не очевидно.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554097
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarersocimedПотеря пакета, разрыв соединения - это не ошибка, а штатное, обрабатываемое поведение. Должен существовать в явном виде код, который может с ней справиться,
И этот код в ряде случаев озаглавлен catch Потеря_Пакета_Или_Разрыв_Соединения.

И что? Это как-то гарантирует, что программа справится со всеми аварийными случаями в этом try/catch блоке?

Что вот тот бросивший exception кусок - не разрушит потихому память в объекте сокета, приведя к каскадному NullPointerException уже при попытке его закрытия, внутри этого catch?

Гарантия где?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554100
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedsoftwarerпропущено...

И этот код в ряде случаев озаглавлен catch Потеря_Пакета_Или_Разрыв_Соединения.

И что? Это как-то гарантирует, что программа справится со всеми аварийными случаями в этом try/catch блоке?

Что вот тот бросивший exception кусок - не разрушит потихому память в объекте сокета, приведя к каскадному NullPointerException уже при попытке его закрытия, внутри этого catch?

Гарантия где?Нет 100% гарантий, вестимо. Ошибка всегда возможна, это вопрос вероятности. Но в ряде случаев можно надеяться, что вероятность достаточно мала, чтобы не вылезти ни разу за срок эксплуатации :)
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554101
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iv_an_ruНет 100% гарантий, вестимо. Ошибка всегда возможна, это вопрос вероятности. Но в ряде случаев можно надеяться, что вероятность достаточно мала, чтобы не вылезти ни разу за срок эксплуатации :)

Для систем, связанных с жизнью людей подобная демагогия просто недопустима. И там есть вполне четкие требования к тому, как должна быть организована обработка ошибок, в части формальных требований к избежанию возможных side effect.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554103
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimed,

Я немножко в курсе. Чесслово. softwarer, предположу, тоже в курсе. А вот вы маленечко плаваете даже в таких вещах, как определение, что такое ошибка --- из ваших высказываний следует, что это что-то не предусмотренное разработчиком.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554106
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iv_an_rusocimed,

Я немножко в курсе. Чесслово. softwarer, предположу, тоже в курсе. А вот вы маленечко плаваете даже в таких вещах, как определение, что такое ошибка --- из ваших высказываний следует, что это что-то не предусмотренное разработчиком.

В курсе чего? Он ни сном не духом и дальше будет уверен, что для управления излучателем рентгеновского аппарата достаточно понаписать try/catch блок и это покроет 105% всех аварийных ситуаций.

И нет, я утверждаю, что ошибка это вообще все, что не предусмотрел разработчик.

Ошибка внешняя, которая явно является обрабатываемой - это просто частный случай входящих данных (по отношению к компоненту).

А вот любая внештатная ситуация, которая необрабатывамая - это и есть exception, и в большинстве случаев нужно падать в кору, потому что нет вообще никакой гарантии, что вышестоящие компоненты с ней справятся и были спроектированы, чтоб справляться.

Просто никто не тестирует свой код на предмет, а что если. А ты попробуй повставлять вызов exception во всякие разные места, где ты вызываешь третьесторонние компоненты, да потестить - справится ли твоя база данных с этим, не приведет ли к разрушению данных и противоречивому состоянию системы в целом. Простейший случай - out of memory - может возникнуть вообще где угодно. И?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554115
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedПросто никто не тестирует свой код на предмет, а что если.Не говорите за всех, а? Иначе как раз "феерически глупое ослоумие" и получается.

socimedА ты попробуй повставлять вызов exception во всякие разные места, где ты вызываешь третьесторонние компоненты, да потестить - справится ли твоя база данных с этим, не приведет ли к разрушению данных и противоречивому состоянию системы в целом. Простейший случай - out of memory - может возникнуть вообще где угодно. И?Вот в чём я уверен, так это в том, что в вызовах третьесторонних компонент у нас ошибок нет. По причине отсутствия третьесторонних компонент. Это раз. И на случай out of memory в любом приличном сервере БД _разумеется_ предусмотрена не просто абы какая обработка, а специальный аварийный режим, в котором часть операций запрещается, часть транзакций откатывается, но сервер выживает и крутится дальше.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554116
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedя утверждаю, что ошибка это вообще все, что не предусмотрел разработчик.А вот Мейерс утверждает, что ошибка --- это когда программа делает не то, что пользователю разумно от неё ожидать. Пользователю. Про разработчика ни слова. Получаем две гипотезы: 1. Мейерсу надо учить букварь. 2. Вам надо учить букварь. Какую из них берём за рабочую?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554122
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iv_an_rusocimedПросто никто не тестирует свой код на предмет, а что если.Не говорите за всех, а? Иначе как раз "феерически глупое ослоумие" и получается.

socimedА ты попробуй повставлять вызов exception во всякие разные места, где ты вызываешь третьесторонние компоненты, да потестить - справится ли твоя база данных с этим, не приведет ли к разрушению данных и противоречивому состоянию системы в целом. Простейший случай - out of memory - может возникнуть вообще где угодно. И?Вот в чём я уверен, так это в том, что в вызовах третьесторонних компонент у нас ошибок нет. По причине отсутствия третьесторонних компонент. Это раз. И на случай out of memory в любом приличном сервере БД _разумеется_ предусмотрена не просто абы какая обработка, а специальный аварийный режим, в котором часть операций запрещается, часть транзакций откатывается, но сервер выживает и крутится дальше.

как прикольно. специальный аварийный редим.

и что, в блоках откатки транзакций совсем нет новых попыток выделить память в куче?

да неужели?


а третьей стороной является и glibc. и сама операционная система, потому твое утверждение про "у нас нет" выглядит просто невероятно смешно
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554127
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iv_an_rusocimedя утверждаю, что ошибка это вообще все, что не предусмотрел разработчик.А вот Мейерс утверждает, что ошибка --- это когда программа делает не то, что пользователю разумно от неё ожидать. Пользователю. Про разработчика ни слова. Получаем две гипотезы: 1. Мейерсу надо учить букварь. 2. Вам надо учить букварь. Какую из них берём за рабочую?

свои книги он может писать хоть до посинения, это не делает его авторитетом ни разу.

более того, есть правило - не умеешь сам - учи других, не умеешь учить - учи как надо учить, и этот персонаж вполне в него вписывается


это крайне опасно, ориентироваться на персоналии. люди в 95% случаев или просто идиоты, или ведут себя как идиоты, это правило рекурсивно и контекстно зависимо (среди докторов наук тоже 95% - идиоты, особенно когда они пытаются рассуждать не на свои профильные темы)
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554134
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedи что, в блоках откатки транзакций совсем нет новых попыток выделить память в куче?Почему "попыток"? Вполне успешных выделений. Гарантированно успешных, потому что на этот случай есть специальный резерв памяти.

socimedа третьей стороной является и glibc. и сама операционная система, потому твое утверждение про "у нас нет" выглядит просто невероятно смешноТретьей стороной является Солнце, как источник космических лучей, приводящих к сбросу битов в ОЗУ. Тоже источник ошибок. Но и используемая часть glibc и используемая часть OS и используемая память являются достаточно надёжными ;)
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554138
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iv_an_rusocimedи что, в блоках откатки транзакций совсем нет новых попыток выделить память в куче?Почему "попыток"? Вполне успешных выделений. Гарантированно успешных, потому что на этот случай есть специальный резерв памяти.
И кто гарантирует, что этого резерва хватит?


iv_an_rusocimedа третьей стороной является и glibc. и сама операционная система, потому твое утверждение про "у нас нет" выглядит просто невероятно смешноТретьей стороной является Солнце, как источник космических лучей, приводящих к сбросу битов в ОЗУ. Тоже источник ошибок. Но и используемая часть glibc и используемая часть OS и используемая память являются достаточно надёжными ;)

Достаточно? И что будет если разработчики втихую добавят еще один вариант errno в send/recv, которого вы не предусмотрели в обработчике?
А еще можно впомнить про memcpy/memmove и весьма веселый спор Торвальдса и Дрейпера, на предмет чинить или не чинить.

Достаточно надежны... бугагага, принцессы тоже, не того, как известно, это самое не делают.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554140
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedлюди в 95% случаев или просто идиоты, или ведут себя как идиотыАга. Один вы у нас иноплянетянин, в белом фраке.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554142
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimediv_an_ruпропущено...
Почему "попыток"? Вполне успешных выделений. Гарантированно успешных, потому что на этот случай есть специальный резерв памяти.
И кто гарантирует, что этого резерва хватит?Я гарантирую.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554145
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iv_an_rusocimedлюди в 95% случаев или просто идиоты, или ведут себя как идиотыАга. Один вы у нас иноплянетянин, в белом фраке.

Нет, я знаю, что я могу себя вести как идиот и обычно так себя и веду. Но я знаю это и умею с этим бороться, а вы - нет.

К примеру в отличие от тебя и softwarer при первом же упоминании про MISRA (когда мне пояснили что я идиот) я быстро ее скачал и попробовал изучить от и до (и продолжаю это делать), а не просто проигнориловал, напыщенно надув губки и сделав оценочное суждение, что как-же это так, как это меня такого с детства превозносимого умника только что ткнули носом в мое невежество - такого быть не может!

Или ты хочешь сказать, что вот сейчас взял и скачал MISRA? И не надо говорить, что вы про нее знали - поиском цитирование не дало совпадений - раз не знали, значит и не упоминали.

В этом и есть отличие, и что дает мне право перекочевать из 95% в 5% со временем, а вам - нет. Забавно, да?
...
Рейтинг: 0 / 0
25 сообщений из 418, страница 11 из 17
Форумы / Программирование [игнор отключен] [закрыт для гостей] / А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]