Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Virtual method + Exceptions in C++
|
|||
|---|---|---|---|
|
#18+
semen.s.semen.... и скорее всего нужные методы в нужный момент становятся невиртуальными Это как так? Был виртуальный.... раз ...... и уже невиртуальный? Это в соседнем топике слово virtual обсуждается. Давайте не будет заново? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2018, 16:20 |
|
||
|
Virtual method + Exceptions in C++
|
|||
|---|---|---|---|
|
#18+
Leonid Kudryavtsevsemen.s.semen.... и скорее всего нужные методы в нужный момент становятся невиртуальными Это как так? Был виртуальный.... раз ...... и уже невиртуальный? Это в соседнем топике слово virtual обсуждается. Давайте не будет заново? Да был виртуальный и вдруг бабах и стал невиртуальным ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2018, 16:21 |
|
||
|
Virtual method + Exceptions in C++
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovP.S. Вы правда думаете, что разработчики JVM это такие лохи, которые чёт-там для какой-то фигни мутят?В Java и C# прикручена куча проверок - на тип, на память... Это тоже дополнительные накладные расходы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2018, 16:22 |
|
||
|
Virtual method + Exceptions in C++
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevБыл виртуальный.... раз ...... и уже невиртуальный?... и уже встроенный. Одна из простейших, хотя, разумеется, не всегда возможных оптимизаций JIT. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2018, 16:22 |
|
||
|
Virtual method + Exceptions in C++
|
|||
|---|---|---|---|
|
#18+
rdb_devBasil A. SidorovP.S. Вы правда думаете, что разработчики JVM это такие лохи, которые чёт-там для какой-то фигни мутят?В Java и C# прикручена куча проверок - на тип, на память... Это тоже дополнительные накладные расходы. JIT все ненужное отключит Там только одно зло - GC ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2018, 16:24 |
|
||
|
Virtual method + Exceptions in C++
|
|||
|---|---|---|---|
|
#18+
semen.s.semenда кто б спорил а невиртуальные есть ? C# Language Specification 5.0 , параграф 1.6.6.3 (Static and instance methods). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2018, 16:35 |
|
||
|
Virtual method + Exceptions in C++
|
|||
|---|---|---|---|
|
#18+
semen.s.semen.... JIT все ненужное отключит ... Раньше в России на царя батюшьку надеялись. Царь батюшка прикажет - и все станет хорошо Теперь на JIT. Похоже царь-батюшька уже не котируется (((( Basil A. SidorovLeonid KudryavtsevБыл виртуальный.... раз ...... и уже невиртуальный?... и уже встроенный. Одна из простейших, хотя, разумеется, не всегда возможных оптимизаций JIT. Что бы virtual сделать обычным, нужно 100% знать тип объекта. Т.ч. тут скорее "не всегда возможных". Скорее возможно только для недавно созданных экземпляров объектов в той же самой области видимости. IMHO P.S. sql.ru преврашается в спорт-лото. Ждем, когда наконец появится тема про Бермудский треугольник ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2018, 16:35 |
|
||
|
Virtual method + Exceptions in C++
|
|||
|---|---|---|---|
|
#18+
rdb_devкуча проверок - на тип, на память... Это тоже дополнительные накладные расходы.Я вас умоляю - копайтесь в сях и не лезьте туда, где вы не копенганен. Ну вот совсем не копенгаген. P.S. Конечно, лохи, разрабатывающие всякую фигню живут в пещерах, при свечах ... Не ведают они света истины, проливающегося со страниц форума ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2018, 17:04 |
|
||
|
Virtual method + Exceptions in C++
|
|||
|---|---|---|---|
|
#18+
rdb_devsemen.s.semenТак это и будет C++. В структурах на Си методы не объявишь. Так там выше про С а не С++ )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2018, 18:12 |
|
||
|
Virtual method + Exceptions in C++
|
|||
|---|---|---|---|
|
#18+
Про исключения честно сознаюсь что не в курсе откуда тормоза из-за них (просветите кому не лень), а про виртуальные методы уже написали, повторюсь, прочитать адрес перехода и перейти по этому адресу это элементарная операция, почти бесплатная, т.е. на производительность почти не повлияет. Другое дело что вместо вызова невиртуального метода его код инлайнится в место вызова, тут - да, выгоды побольше, не требуется пуш/поп регистров в стэк. Но и это не панацея, если вызываемый код содержит поболее букав чем "return ...". ИМХО нынче главные тормоза из-за многопоточного доступа к общим данным, как следствие синхронизация кэшей ядер проца и т.д., это бОльшие тормоза чем вышеописанные проблемы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2018, 20:18 |
|
||
|
Virtual method + Exceptions in C++
|
|||
|---|---|---|---|
|
#18+
Dima TПро исключения честно сознаюсь что не в курсе откуда тормоза из-за них (просветите кому не лень) https://stackoverflow.com/questions/15670169/what-is-difference-between-sjlj-vs-dwarf-vs-seh https://gcc.gnu.org/wiki/WindowsGCCImprovements Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2018, 21:37 |
|
||
|
Virtual method + Exceptions in C++
|
|||
|---|---|---|---|
|
#18+
semen.s.semen..."В высоконагруженном проекте не используют... в высоконагруженном проекте сначала делают правильную логику, на требуемом от задачи и расклада языке. А уж потом профилируется и убираются(читай переписываются) те места которые критичны ко времени выполнения. Если изначально начать с жёстких постулатов, то можно не разглядеть(за лесом постулатов) про бОлее стройную логику или решать не ту задачу, с ослиным упрямством. Например есть рекомендация по развёртыванию циклов. Надеюсь вы не начинаете программировать с копипасты тела цикла указанное кол-во раз??? (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2018, 23:58 |
|
||
|
Virtual method + Exceptions in C++
|
|||
|---|---|---|---|
|
#18+
В гугле на ряде проектов строго требуется неиспользовать исключения и уходить от виртуальных методов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2018, 00:01 |
|
||
|
Virtual method + Exceptions in C++
|
|||
|---|---|---|---|
|
#18+
semen.s.semen...на ряде проектов... ключевые слова... т.е. ОТ ЗАДАЧИ. полностью с этим согласен... сначала задача, всё остальное - вторично... в своё время общался с ребятами по торговым площадкам - они там от объектов синхронизации отказались, при определённой архитектуры взаимодействия. голова дана чтоб думать, а не тупо расшибать лоб по требованию... первична архитектура. оптимизация вторична. (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2018, 00:19 |
|
||
|
Virtual method + Exceptions in C++
|
|||
|---|---|---|---|
|
#18+
semen.s.semenВ гугле на ряде проектов строго требуется неиспользовать исключения и уходить от виртуальных методов Если в гугловском Го виртуальные методы и исключения невыносимо тормозят, то... это проблема гугля. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2018, 00:51 |
|
||
|
Virtual method + Exceptions in C++
|
|||
|---|---|---|---|
|
#18+
semen.s.semenТам есть невиртуальные методы ?Нету semen.s.semenРечь шла об ultra low latency проектах с борьбой за микрос и даже наносекунды Это два фактора (виртуальные методы и исключения) без которых в принципе можно обойтись и которые вносят оверхед в производительность Давайте разбираться. В ассемблере можно увидеть, что не виртуальный вызов - это просто вызов, а виртуальный вызов - это одно вычисление смещения, и потом вызов. Т.е. отличается на пару инструкций. Если речь про пикосекунды, тогда да, иначе пофиг, как мне думается. С исключениями сложнее, в точке try запоминаются адреса выходов, и в случае исключительной ситуации, просто туда делаются переходы. Ну и там ещё должны деструкторы позваться (ну они в любом случае позовутся), поэтому тоже оверхеда там не вижу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2018, 06:12 |
|
||
|
Virtual method + Exceptions in C++
|
|||
|---|---|---|---|
|
#18+
semen.s.semenПонеслась ... Ох зря я эту темку создал ) именно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2018, 08:26 |
|
||
|
Virtual method + Exceptions in C++
|
|||
|---|---|---|---|
|
#18+
rdb_devsemen.s.semenпропущено... Там есть невиртуальные методы ?Не помню. Последний раз общался с Java лет 10 тому назад. Нет, там невиртуальных методов нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2018, 08:30 |
|
||
|
Virtual method + Exceptions in C++
|
|||
|---|---|---|---|
|
#18+
Dima TПро исключения честно сознаюсь что не в курсе откуда тормоза из-за них (просветите кому не лень)Я читал у Мейерса. Если вкратце, то в плюсах, объект, созданный на стеке, существует только в области (своей) видимости, а за уничтожение объекта отвечает деструктор, автоматически вызываемый компилятором "на закрывающей скобке". Исключение "разворачивает" стек, "покидая" многие области видимости, поэтому необходим код, организующий вызовы деструкторов. Кроме того, для обеспечения работы с объектом в catch-блоке, объект приходится копировать, что тоже не уменьшает объём кода и время исполнения. Из-за ограничений копирования в этом случае Мейерс рекомендует всегда перехватывать исключение по ссылке на объект. P.S. В Java, где освобождением памяти объектов занимается сборщик мусора, этой проблемы нет. Объект "потерялся" потому, что на него нет ни одной (нециклической) ссылки? Сборщик мусора приберётся. Со временем. Но, по этой же причине, нельзя организовать неявное освобождение ресурсов в деструкторе, которого нет и вся очистка делается в явных finally-блоках. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2018, 09:22 |
|
||
|
Virtual method + Exceptions in C++
|
|||
|---|---|---|---|
|
#18+
MasterZivНет, там невиртуальных методов нет.В Java, невиртуальным является любой метод с модификаторами private или final. Просто по определению. P.S. Если вы чего-то не знаете о малознакомой вам среде, это ещё не значит, что "ничего такого" в этой среде нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2018, 09:26 |
|
||
|
Virtual method + Exceptions in C++
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorovневиртуальным является любой метод с модификаторами private или finalСтатические методы тоже невиртуальные. Более того, при вызове переменная.метод(), метод будет выбран по объявленному, а не по фактическому типу переменной. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2018, 10:07 |
|
||
|
Virtual method + Exceptions in C++
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovИз-за ограничений копирования в этом случае Мейерс рекомендует всегда перехватывать исключение по ссылке на объект. Ну не из-за этого же... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2018, 12:38 |
|
||
|
Virtual method + Exceptions in C++
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovВ Java, где освобождением памяти объектов занимается сборщик мусора, этой проблемы нет. Объект "потерялся" потому, что на него нет ни одной (нециклической) ссылки? Сборщик мусора приберётся. Со временем. Но, по этой же причине, нельзя организовать неявное освобождение ресурсов в деструкторе, которого нет и вся очистка делается в явных finally-блоках. ЭТОЙ проблемы нет. Зато есть ДРУГИЕ проблемы. Вызов finally-блоков. Необходимость сборки мусора. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2018, 12:40 |
|
||
|
Virtual method + Exceptions in C++
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovMasterZivНет, там невиртуальных методов нет.В Java, невиртуальным является любой метод с модификаторами private или final. Просто по определению. P.S. Если вы чего-то не знаете о малознакомой вам среде, это ещё не значит, что "ничего такого" в этой среде нет. Так я же знаю. Там все методы виртуальные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2018, 12:41 |
|
||
|
Virtual method + Exceptions in C++
|
|||
|---|---|---|---|
|
#18+
Chapter 6. The Java Virtual Machine Instruction Sets https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-6.html там есть: invokedynamic invokeinterface invokespecial invokestatic invokevirtual Если "все методы виртуальные", зачем столько инструкций? ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2018, 12:48 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=39648869&tid=2017852]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
47ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 302ms |
| total: | 437ms |

| 0 / 0 |
