Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Virtual method + Exceptions in C++ / 25 сообщений из 83, страница 1 из 4
23.05.2018, 13:53
    #39648704
semen.s.semen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Virtual method + Exceptions in C++
МастерЗив, поясни пожалуйста, почему ты не согласен с тезисом

"В высоконагруженном проекте не используют виртуальные методы и исключения"
...
Рейтинг: 0 / 0
23.05.2018, 14:09
    #39648722
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Virtual method + Exceptions in C++
Потому что
использование виртуальных методов и исключений не определяется требованиями к производительности. Они просто используются или нет, потому что нет другого выхода.

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

Не понятно также, почему ты вообще смешал эти две техники вместе, они никак не связаны.
Почему ты решил, что именно они ухудшают (видимо) производительность, не понятно.
...
Рейтинг: 0 / 0
23.05.2018, 14:10
    #39648724
semen.s.semen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Virtual method + Exceptions in C++
Речь шла об ultra low latency проектах с борьбой за микрос и даже наносекунды

Это два фактора (виртуальные методы и исключения) без которых в принципе можно обойтись и которые вносят оверхед в производительность
...
Рейтинг: 0 / 0
23.05.2018, 14:14
    #39648728
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Virtual method + Exceptions in C++
semen.s.semenРечь шла об ultra low latency проектах с борьбой за микрос и даже наносекунды

Это два фактора (виртуальные методы и исключения) без которых в принципе можно обойтись и которые вносят оверхед в производительность

Что это такое "ultra low latency" - я вот лично не представляю.

С++ весь -- это такой фактор, без которого в принципе можно обойтись, и который вносит оверхед в производительность.
Пиши на С.
Но он -- тоже фактор, без которого можно обойтись, и который вносит...
Пиши в кодах процессора.
Но это сложно и непереносимо же...
НЕ ПИШИ НИЧЕГО! -- идеальный вариант!
...
Рейтинг: 0 / 0
23.05.2018, 14:15
    #39648731
semen.s.semen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Virtual method + Exceptions in C++
MasterZivsemen.s.semenРечь шла об ultra low latency проектах с борьбой за микрос и даже наносекунды

Это два фактора (виртуальные методы и исключения) без которых в принципе можно обойтись и которые вносят оверхед в производительность

Что это такое "ultra low latency" - я вот лично не представляю.

С++ весь -- это такой фактор, без которого в принципе можно обойтись, и который вносит оверхед в производительность.
Пиши на С.
Но он -- тоже фактор, без которого можно обойтись, и который вносит...
Пиши в кодах процессора.
Но это сложно и непереносимо же...
НЕ ПИШИ НИЧЕГО! -- идеальный вариант!

Нельзя обойтись без С++

Это возможность писать читаемый объектно ориентированный код

Не передергивай смыслы.

ultra low latency - это проект я профилировкой времени отклика то микро и нано секунд
...
Рейтинг: 0 / 0
23.05.2018, 14:24
    #39648744
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Virtual method + Exceptions in C++
semen.s.semenЭто возможность писать читаемый объектно ориентированный код

ЖЕСТЬ
Читаемый объектно ориентированный код - без virtual методов и без exception

Хочется low latency - берите assembler + Intel VTune и не мучайтесь

Вызов виртуального метода vs обычного - лишнее обращение к памяти. С учетом, что (5 лет назад) у последних процессоров Intel было аж > 50 независимых конвееров исполнения таких операций - то требуется доказательство с цифрмами и скриншотами из Intel Vtune, что именно данных конвееров не хватает и из-за этого происходит падение производительности.
...
Рейтинг: 0 / 0
23.05.2018, 14:26
    #39648748
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Virtual method + Exceptions in C++
Leonid KudryavtsevВызов виртуального метода vs обычного - лишнее обращение к памяти. С учетом, что (5 лет назад) у последних процессоров Intel было аж > 50 независимых конвееров исполнения таких операций - то требуется доказательство с цифрмами и скриншотами из Intel Vtune, что именно данных конвееров не хватает и из-за этого происходит падение производительности.

Та даже оверхед от исключений надо доказать ))
...
Рейтинг: 0 / 0
23.05.2018, 14:26
    #39648750
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Virtual method + Exceptions in C++
semen.s.semenНельзя обойтись без С++

Это возможность писать читаемый объектно ориентированный код

Тогда забудь о пикосекундах: за эту возможность ты уже заплатил таким оверхэдом на фоне
которого одна ассемблерная инструкция перехода по адресу в памяти погоды не сделает.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
23.05.2018, 14:27
    #39648751
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Virtual method + Exceptions in C++
semen.s.semenНельзя обойтись без С++

Это возможность писать читаемый объектно ориентированный код
ИМХО С++ без виртуальных методов и исключений это С с классами, т.е. остается один шаг к чистому С - заменить классы на структуры. Читаемость не пострадает.

semen.s.semenultra low latency - это проект я профилировкой времени отклика то микро и нано секунд
ИМХО таких проектов единицы во всем мире, не стоит на них вообще ориентироваться.
...
Рейтинг: 0 / 0
23.05.2018, 14:28
    #39648753
semen.s.semen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Virtual method + Exceptions in C++
Понеслась ...


Ох зря я эту темку создал )
...
Рейтинг: 0 / 0
23.05.2018, 14:31
    #39648763
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Virtual method + Exceptions in C++
Dima Tзаменить классы на структуры. Читаемость не пострадает
Да нет.
Серьезно пострадает. Я постоянно мучаюсь когда приходится драйвера для линукса писать. Отсутствие неявного this приводит к огромному количеству синтаксического мусора (доп аргументы, префиксы в именах функций и т.п.)
...
Рейтинг: 0 / 0
23.05.2018, 14:58
    #39648789
semen.s.semen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Virtual method + Exceptions in C++
Anatoly Moskovsky,

+1024
...
Рейтинг: 0 / 0
23.05.2018, 15:03
    #39648790
rdb_dev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Virtual method + Exceptions in C++
Я бы еще согласился, что в высоконагруженных проектах на Java и C# есть существенная разница между скоростью вызова обычных и виртуальных методов, но не на C++, так как даже при большом количестве объектов, уменьшение размера экземпляра объекта на размер указателя и непосредственный вызов обычного метода (вместо вызова метода через указатель, взятый из таблицы виртуальных методов, стабильно сидящей в кэш-лайне процессора из-за постоянных обращений к ней через указатели на эту таблицу из упомянутой большой кучи объектов) увеличивает производительность несущественно.
...
Рейтинг: 0 / 0
23.05.2018, 15:08
    #39648799
semen.s.semen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Virtual method + Exceptions in C++
rdb_devЯ бы еще согласился, что в высоконагруженных проектах на Java и C# есть существенная разница между скоростью вызова обычных и виртуальных методов

Там есть невиртуальные методы ?
...
Рейтинг: 0 / 0
23.05.2018, 15:08
    #39648800
rdb_dev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Virtual method + Exceptions in C++
Anatoly MoskovskyDima Tзаменить классы на структуры. Читаемость не пострадает
Да нет.
Серьезно пострадает. Я постоянно мучаюсь когда приходится драйвера для линукса писать. Отсутствие неявного this приводит к огромному количеству синтаксического мусора (доп аргументы, префиксы в именах функций и т.п.)Ничто не мешает прикрутить к структуре обычные методы. Будет почти тоже самое, что класс, только без виртуальных методов и указателя на VTBL. Неявный параметр this в таких методах тоже будет, указывая на экземпляр структуры.
...
Рейтинг: 0 / 0
23.05.2018, 15:11
    #39648803
semen.s.semen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Virtual method + Exceptions in C++
rdb_devAnatoly Moskovskyпропущено...

Да нет.
Серьезно пострадает. Я постоянно мучаюсь когда приходится драйвера для линукса писать. Отсутствие неявного this приводит к огромному количеству синтаксического мусора (доп аргументы, префиксы в именах функций и т.п.)Ничто не мешает прикрутить к структуре обычные методы. Будет почти тоже самое, что класс, только без виртуальных методов и указателя на VTBL. Неявный параметр this в таких методах тоже будет, указывая на экземпляр структуры.

Да тока качество кода по сравнению с С++ будет как день и ночь

Уход от виртуальных методов это наименьшее из зол
...
Рейтинг: 0 / 0
23.05.2018, 15:12
    #39648804
rdb_dev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Virtual method + Exceptions in C++
semen.s.semenrdb_devЯ бы еще согласился, что в высоконагруженных проектах на Java и C# есть существенная разница между скоростью вызова обычных и виртуальных методовТам есть невиртуальные методы ?Не помню. Последний раз общался с Java лет 10 тому назад.
...
Рейтинг: 0 / 0
23.05.2018, 15:13
    #39648805
semen.s.semen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Virtual method + Exceptions in C++
rdb_devsemen.s.semenпропущено...
Там есть невиртуальные методы ?Не помню. Последний раз общался с Java лет 10 тому назад.

Зато я знаю
...
Рейтинг: 0 / 0
23.05.2018, 15:14
    #39648807
rdb_dev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Virtual method + Exceptions in C++
semen.s.semenrdb_devпропущено...
Ничто не мешает прикрутить к структуре обычные методы. Будет почти тоже самое, что класс, только без виртуальных методов и указателя на VTBL. Неявный параметр this в таких методах тоже будет, указывая на экземпляр структуры.

Да тока качество кода по сравнению с С++ будет как день и ночь

Уход от виртуальных методов это наименьшее из золТак это и будет C++. В структурах на Си методы не объявишь.
...
Рейтинг: 0 / 0
23.05.2018, 15:20
    #39648815
rdb_dev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Virtual method + Exceptions in C++
semen.s.semenЗато я знаюТы придираешься к гипотетической части комментария.
P.S. В C# есть виртуальные методы.
...
Рейтинг: 0 / 0
23.05.2018, 15:21
    #39648816
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Virtual method + Exceptions in C++
rdb_devsemen.s.semenпропущено...
Там есть невиртуальные методы ?Не помню. Последний раз общался с Java лет 10 тому назад.
В C# есть обычные и виртуальные методы. По производительности не скажу насколько отличаются. Думаю незначительно, как и в С++
...
Рейтинг: 0 / 0
23.05.2018, 15:58
    #39648845
semen.s.semen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Virtual method + Exceptions in C++
rdb_devВ C# есть виртуальные методы.

да кто б спорил

а невиртуальные есть ?
...
Рейтинг: 0 / 0
23.05.2018, 16:13
    #39648858
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Virtual method + Exceptions in C++
semen.s.semen....
а невиртуальные есть ?
В Java - точно есть.
Как минимум static final

IMHO
...
Рейтинг: 0 / 0
23.05.2018, 16:14
    #39648859
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Virtual method + Exceptions in C++
rdb_devЯ бы еще согласился, что в высоконагруженных проектах на Java и C# есть существенная разница между скоростью вызова обычных и виртуальных методовВ Java - нет такой разницы.
В си-шарпе, подозреваю - тоже нет.

P.S.
Вы правда думаете, что разработчики JVM это такие лохи, которые чёт-там для какой-то фигни мутят?
...
Рейтинг: 0 / 0
23.05.2018, 16:17
    #39648860
semen.s.semen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Virtual method + Exceptions in C++
В Java есть JIT

и скорее всего нужные методы в нужный момент становятся невиртуальными
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Virtual method + Exceptions in C++ / 25 сообщений из 83, страница 1 из 4
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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