Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Virtual method + Exceptions in C++
|
|||
|---|---|---|---|
|
#18+
МастерЗив, поясни пожалуйста, почему ты не согласен с тезисом "В высоконагруженном проекте не используют виртуальные методы и исключения" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2018, 13:53 |
|
||
|
Virtual method + Exceptions in C++
|
|||
|---|---|---|---|
|
#18+
Потому что использование виртуальных методов и исключений не определяется требованиями к производительности. Они просто используются или нет, потому что нет другого выхода. Использование виртуальных методов и исключений не так сокрушительно влияет на производительность, как кому-то может показаться. Не понятно также, почему ты вообще смешал эти две техники вместе, они никак не связаны. Почему ты решил, что именно они ухудшают (видимо) производительность, не понятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2018, 14:09 |
|
||
|
Virtual method + Exceptions in C++
|
|||
|---|---|---|---|
|
#18+
Речь шла об ultra low latency проектах с борьбой за микрос и даже наносекунды Это два фактора (виртуальные методы и исключения) без которых в принципе можно обойтись и которые вносят оверхед в производительность ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2018, 14:10 |
|
||
|
Virtual method + Exceptions in C++
|
|||
|---|---|---|---|
|
#18+
semen.s.semenРечь шла об ultra low latency проектах с борьбой за микрос и даже наносекунды Это два фактора (виртуальные методы и исключения) без которых в принципе можно обойтись и которые вносят оверхед в производительность Что это такое "ultra low latency" - я вот лично не представляю. С++ весь -- это такой фактор, без которого в принципе можно обойтись, и который вносит оверхед в производительность. Пиши на С. Но он -- тоже фактор, без которого можно обойтись, и который вносит... Пиши в кодах процессора. Но это сложно и непереносимо же... НЕ ПИШИ НИЧЕГО! -- идеальный вариант! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2018, 14:14 |
|
||
|
Virtual method + Exceptions in C++
|
|||
|---|---|---|---|
|
#18+
MasterZivsemen.s.semenРечь шла об ultra low latency проектах с борьбой за микрос и даже наносекунды Это два фактора (виртуальные методы и исключения) без которых в принципе можно обойтись и которые вносят оверхед в производительность Что это такое "ultra low latency" - я вот лично не представляю. С++ весь -- это такой фактор, без которого в принципе можно обойтись, и который вносит оверхед в производительность. Пиши на С. Но он -- тоже фактор, без которого можно обойтись, и который вносит... Пиши в кодах процессора. Но это сложно и непереносимо же... НЕ ПИШИ НИЧЕГО! -- идеальный вариант! Нельзя обойтись без С++ Это возможность писать читаемый объектно ориентированный код Не передергивай смыслы. ultra low latency - это проект я профилировкой времени отклика то микро и нано секунд ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2018, 14:15 |
|
||
|
Virtual method + Exceptions in C++
|
|||
|---|---|---|---|
|
#18+
semen.s.semenЭто возможность писать читаемый объектно ориентированный код ЖЕСТЬ Читаемый объектно ориентированный код - без virtual методов и без exception Хочется low latency - берите assembler + Intel VTune и не мучайтесь Вызов виртуального метода vs обычного - лишнее обращение к памяти. С учетом, что (5 лет назад) у последних процессоров Intel было аж > 50 независимых конвееров исполнения таких операций - то требуется доказательство с цифрмами и скриншотами из Intel Vtune, что именно данных конвееров не хватает и из-за этого происходит падение производительности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2018, 14:24 |
|
||
|
Virtual method + Exceptions in C++
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevВызов виртуального метода vs обычного - лишнее обращение к памяти. С учетом, что (5 лет назад) у последних процессоров Intel было аж > 50 независимых конвееров исполнения таких операций - то требуется доказательство с цифрмами и скриншотами из Intel Vtune, что именно данных конвееров не хватает и из-за этого происходит падение производительности. Та даже оверхед от исключений надо доказать )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2018, 14:26 |
|
||
|
Virtual method + Exceptions in C++
|
|||
|---|---|---|---|
|
#18+
semen.s.semenНельзя обойтись без С++ Это возможность писать читаемый объектно ориентированный код Тогда забудь о пикосекундах: за эту возможность ты уже заплатил таким оверхэдом на фоне которого одна ассемблерная инструкция перехода по адресу в памяти погоды не сделает. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2018, 14:26 |
|
||
|
Virtual method + Exceptions in C++
|
|||
|---|---|---|---|
|
#18+
semen.s.semenНельзя обойтись без С++ Это возможность писать читаемый объектно ориентированный код ИМХО С++ без виртуальных методов и исключений это С с классами, т.е. остается один шаг к чистому С - заменить классы на структуры. Читаемость не пострадает. semen.s.semenultra low latency - это проект я профилировкой времени отклика то микро и нано секунд ИМХО таких проектов единицы во всем мире, не стоит на них вообще ориентироваться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2018, 14:27 |
|
||
|
Virtual method + Exceptions in C++
|
|||
|---|---|---|---|
|
#18+
Понеслась ... Ох зря я эту темку создал ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2018, 14:28 |
|
||
|
Virtual method + Exceptions in C++
|
|||
|---|---|---|---|
|
#18+
Dima Tзаменить классы на структуры. Читаемость не пострадает Да нет. Серьезно пострадает. Я постоянно мучаюсь когда приходится драйвера для линукса писать. Отсутствие неявного this приводит к огромному количеству синтаксического мусора (доп аргументы, префиксы в именах функций и т.п.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2018, 14:31 |
|
||
|
Virtual method + Exceptions in C++
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovsky, +1024 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2018, 14:58 |
|
||
|
Virtual method + Exceptions in C++
|
|||
|---|---|---|---|
|
#18+
Я бы еще согласился, что в высоконагруженных проектах на Java и C# есть существенная разница между скоростью вызова обычных и виртуальных методов, но не на C++, так как даже при большом количестве объектов, уменьшение размера экземпляра объекта на размер указателя и непосредственный вызов обычного метода (вместо вызова метода через указатель, взятый из таблицы виртуальных методов, стабильно сидящей в кэш-лайне процессора из-за постоянных обращений к ней через указатели на эту таблицу из упомянутой большой кучи объектов) увеличивает производительность несущественно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2018, 15:03 |
|
||
|
Virtual method + Exceptions in C++
|
|||
|---|---|---|---|
|
#18+
rdb_devЯ бы еще согласился, что в высоконагруженных проектах на Java и C# есть существенная разница между скоростью вызова обычных и виртуальных методов Там есть невиртуальные методы ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2018, 15:08 |
|
||
|
Virtual method + Exceptions in C++
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyDima Tзаменить классы на структуры. Читаемость не пострадает Да нет. Серьезно пострадает. Я постоянно мучаюсь когда приходится драйвера для линукса писать. Отсутствие неявного this приводит к огромному количеству синтаксического мусора (доп аргументы, префиксы в именах функций и т.п.)Ничто не мешает прикрутить к структуре обычные методы. Будет почти тоже самое, что класс, только без виртуальных методов и указателя на VTBL. Неявный параметр this в таких методах тоже будет, указывая на экземпляр структуры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2018, 15:08 |
|
||
|
Virtual method + Exceptions in C++
|
|||
|---|---|---|---|
|
#18+
rdb_devAnatoly Moskovskyпропущено... Да нет. Серьезно пострадает. Я постоянно мучаюсь когда приходится драйвера для линукса писать. Отсутствие неявного this приводит к огромному количеству синтаксического мусора (доп аргументы, префиксы в именах функций и т.п.)Ничто не мешает прикрутить к структуре обычные методы. Будет почти тоже самое, что класс, только без виртуальных методов и указателя на VTBL. Неявный параметр this в таких методах тоже будет, указывая на экземпляр структуры. Да тока качество кода по сравнению с С++ будет как день и ночь Уход от виртуальных методов это наименьшее из зол ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2018, 15:11 |
|
||
|
Virtual method + Exceptions in C++
|
|||
|---|---|---|---|
|
#18+
semen.s.semenrdb_devЯ бы еще согласился, что в высоконагруженных проектах на Java и C# есть существенная разница между скоростью вызова обычных и виртуальных методовТам есть невиртуальные методы ?Не помню. Последний раз общался с Java лет 10 тому назад. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2018, 15:12 |
|
||
|
Virtual method + Exceptions in C++
|
|||
|---|---|---|---|
|
#18+
rdb_devsemen.s.semenпропущено... Там есть невиртуальные методы ?Не помню. Последний раз общался с Java лет 10 тому назад. Зато я знаю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2018, 15:13 |
|
||
|
Virtual method + Exceptions in C++
|
|||
|---|---|---|---|
|
#18+
semen.s.semenrdb_devпропущено... Ничто не мешает прикрутить к структуре обычные методы. Будет почти тоже самое, что класс, только без виртуальных методов и указателя на VTBL. Неявный параметр this в таких методах тоже будет, указывая на экземпляр структуры. Да тока качество кода по сравнению с С++ будет как день и ночь Уход от виртуальных методов это наименьшее из золТак это и будет C++. В структурах на Си методы не объявишь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2018, 15:14 |
|
||
|
Virtual method + Exceptions in C++
|
|||
|---|---|---|---|
|
#18+
semen.s.semenЗато я знаюТы придираешься к гипотетической части комментария. P.S. В C# есть виртуальные методы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2018, 15:20 |
|
||
|
Virtual method + Exceptions in C++
|
|||
|---|---|---|---|
|
#18+
rdb_devsemen.s.semenпропущено... Там есть невиртуальные методы ?Не помню. Последний раз общался с Java лет 10 тому назад. В C# есть обычные и виртуальные методы. По производительности не скажу насколько отличаются. Думаю незначительно, как и в С++ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2018, 15:21 |
|
||
|
Virtual method + Exceptions in C++
|
|||
|---|---|---|---|
|
#18+
rdb_devВ C# есть виртуальные методы. да кто б спорил а невиртуальные есть ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2018, 15:58 |
|
||
|
Virtual method + Exceptions in C++
|
|||
|---|---|---|---|
|
#18+
semen.s.semen.... а невиртуальные есть ? В Java - точно есть. Как минимум static final IMHO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2018, 16:13 |
|
||
|
Virtual method + Exceptions in C++
|
|||
|---|---|---|---|
|
#18+
rdb_devЯ бы еще согласился, что в высоконагруженных проектах на Java и C# есть существенная разница между скоростью вызова обычных и виртуальных методовВ Java - нет такой разницы. В си-шарпе, подозреваю - тоже нет. P.S. Вы правда думаете, что разработчики JVM это такие лохи, которые чёт-там для какой-то фигни мутят? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2018, 16:14 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=39648816&tid=2017852]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
50ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
67ms |
get tp. blocked users: |
2ms |
| others: | 274ms |
| total: | 437ms |

| 0 / 0 |
