Вариант для распечатки |
Пред. тема | След. тема | ||
| Форум Разговоры, обсуждение новостей | |||
|---|---|---|---|
| Изначальное сообщение | [ Отслеживать ] | ||
| "Анализ влияния ключевого слова final на производительность программ C++" | +/– | |
| Сообщение от opennews (??), 23-Апр-24, 14:15 | ||
Бенджамин Саммертон (Benjamin Summerton), автор системы трассировки лучей PSRayTracing, проанализировал влияние на производительность приложений использование в коде на языке С++ ключевого слова "final", появившегося в стандарте C++11. Причиной проведения тестирования послужили витающие в сети заявления, что использование "final" позволяет повысить производительность, которые ограничивались оценочными суждениями без указания результатов изменений... | ||
| Ответить | Правка | Cообщить модератору | ||
| Оглавление |
| Сообщения | [Сортировка по ответам | RSS] |
1.
Сообщение от Аноним (1), 23-Апр-24, 14:15
| +3 +/– | |
А люди из интернета точно использовали final именно там, где нужно, а не везде его тыкали? | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Ответы: #2, #3, #4, #8 | ||
| 2. Сообщение от Аноним (2), 23-Апр-24, 14:24 | +20 +/– | |
Это был финальный комментарий или компилятор заглючил? | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #1 | ||
| 3. Сообщение от Аноним (3), 23-Апр-24, 14:32 | +3 +/– | |
> а не просто "взял и поставил final на структурку или класс, потому что от нее никто не будет наследоваться". | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #1 | ||
| 4. Сообщение от Аноним (4), 23-Апр-24, 14:39 | +/– | |
И как я вызову виртуальный метод, если у меня final стоит на самом первом классе? | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #1 | ||
| 5. Сообщение от Rev (?), 23-Апр-24, 14:39 | +1 +/– | |
> Для себя автор исследования сделал вывод о необходимости избегать использованиЯ "final". | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Ответы: #9, #77 | ||
| 6. Сообщение от Sw00p aka Jerom (?), 23-Апр-24, 14:41 | –4 +/– | |
в гцц ИИ еще не пихнули? :) | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Ответы: #57 | ||
| 8. Сообщение от Аноним (8), 23-Апр-24, 14:43 | +3 +/– | |
final как раз нужен для класса с реализацией интерфейса. А числа автора показывают, что в основном ничего не меняется за искл забагованного clang-а | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #1 | ||
| 9. Сообщение от Аноним (8), 23-Апр-24, 14:45 | +10 +/– | |
final это не метод оптимизации, а защита от гогнокода, особенно при работе в больших командах и в публичном коде | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #5 Ответы: #56 | ||
| 11. Сообщение от Аноним (11), 23-Апр-24, 14:50 | +4 +/– | |
А вообще каким боком final влияет на производительность кода? Он же нужен исключительно чтобы бить по рукам, не более того. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Ответы: #16, #50 | ||
| 12. Сообщение от Аноним (12), 23-Апр-24, 15:00 | –1 +/– | |
Что-то я не вижу AOCC и ICC в тестах. Именно они были бы актуальными для соответствующих процессоров. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Ответы: #14 | ||
| 14. Сообщение от Ivan7 (ok), 23-Апр-24, 15:10 | +4 +/– | |
ICC давно уже сдох, вернее, его придушили. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #12 Ответы: #105 | ||
| 15. Сообщение от Бывалый Смузихлёб (ok), 23-Апр-24, 15:23 | –7 +/– | |
> ключевого слова "final" [EN.cppreference.com/w/cpp/language/final] | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Ответы: #18, #37, #73 | ||
| 16. Сообщение от Аноним (16), 23-Апр-24, 15:25 | +12 +/– | |
Поскольку нет наследников -> нет нужды смотреть в vtable -> можно дёргать методы напрямую, минуя виртуализаию | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #11 Ответы: #24, #60, #81 | ||
| 18. Сообщение от Я (??), 23-Апр-24, 15:41 | +1 +/– | |
какой плюсовик умеет читать документацию не на английском? | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #15 Ответы: #41 | ||
| 19. Сообщение от Швондик (?), 23-Апр-24, 15:41 | +3 +/– | |
иногда можно повысить производительность до 70% если для выхода из сложных циклов использовать оператор goto | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Ответы: #20, #23, #42, #63 | ||
| 20. Сообщение от Аноним (20), 23-Апр-24, 16:00 | +6 +/– | |
а если использовать выход в первой строчке проги, производительность ещё сильнее повысится! | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #19 Ответы: #21 | ||
| 21. Сообщение от Аноним (21), 23-Апр-24, 16:18 | +4 +/– | |
Нет, не повысится. Время исполнения уменьшится, но работа, выполненная за это время, будет равна нулю. Итого общая производительность тоже будет равна нулю — программа не делает ничего полезного для изначальной задачи, если только изначально не было цели сразу выходить. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #20 Ответы: #39 | ||
| 22. Сообщение от Пряник (?), 23-Апр-24, 16:19 | +3 +/– | |
Требуется сравнительный анализ кода на ассемблере. А так это гадание на /dev/random. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Ответы: #31, #78 | ||
| 23. Сообщение от Аноним (-), 23-Апр-24, 16:20 | –3 +/– | |
> повысить производительность до 70% | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #19 Ответы: #27, #30 | ||
| 24. Сообщение от Пряник (?), 23-Апр-24, 16:22 | +1 +/– | |
Ты умнее Бенджамина Саммертона. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #16 Ответы: #55 | ||
| 25. Сообщение от Пряник (?), 23-Апр-24, 16:24 | +/– | |
Впрочем тесты "с потолка" тоже полезны. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| 26. Сообщение от Серб (ok), 23-Апр-24, 16:26 | +1 +/– | |
> Для себя автор исследования сделал вывод о необходимости избегать использование "final". | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| 27. Сообщение от Аноним (27), 23-Апр-24, 16:26 | +1 +/– | |
спагетти* | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #23 | ||
| 28. Сообщение от Аноним (28), 23-Апр-24, 16:27 | +/– | |
Странный выбор у девелопера из опенсорса: промежуточный девелопмент релиз дистрибутива и MS компилятор. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Ответы: #34 | ||
| 30. Сообщение от Швондик (?), 23-Апр-24, 16:33 | –6 +/– | |
да я просто пошутил, у нас за goto сразу увольняют если увидят в коде | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #23 Ответы: #38, #46, #65 | ||
| 31. Сообщение от Sw00p aka Jerom (?), 23-Апр-24, 16:35 | +/– | |
Требуется сравнительный анализ разработчиков всех этих компиляторов, стандарт языка вроде один, архитектура машинных команд вроде одна, оптимизации одни и те же, ток результирующий исполняемый код почему-то разный. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #22 Ответы: #36, #44, #66 | ||
| 34. Сообщение от голос из леса (?), 23-Апр-24, 16:48 | +2 +/– | |
стандартный "девелопер из опенсорс" с вероятностью 50% сидит на mac os, с вероятностью 40% на win. Остатки может и на linux. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #28 Ответы: #45 | ||
| 35. Сообщение от Аноним (35), 23-Апр-24, 17:02 | +6 +/– | |
> Причиной проведения тестирования послужили витающие в сети заявления, что использование "final" позволяет повысить производительность, которые ограничивались оценочными суждениями без указания результатов изменений. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Ответы: #79 | ||
| 36. Сообщение от Пряник (?), 23-Апр-24, 17:20 | +1 +/– | |
Я это и сказал. Компилятор выдаёт на выходе код ассемблера сначала перед тем, как конвертировать в машинный. Код ассемблера и машинный равны примерно 1-к-1. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #31 | ||
| 37. Сообщение от Аноним (37), 23-Апр-24, 17:23 | –2 +/– | |
Из любви к русскому языку - надо. Читать перевод на русский, чтобы в голове переводить обратно на английский, попутно избавляясь от затесавшихся гуртовщиков мышей - не любить русский язык. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #15 | ||
| 38. Сообщение от Аноним (38), 23-Апр-24, 17:44 | +10 +/– | |
Значит вы в ядро не коммите | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #30 Ответы: #86 | ||
| 39. Сообщение от Аноним (20), 23-Апр-24, 17:47 | –2 +/– | |
Кто сказал, что в изначальной задаче надо было что-то делать? Полезность - это всё иллюзия. И ваще, мы - пыль в масштабах Вселенной. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #21 Ответы: #40 | ||
| 40. Сообщение от Аноним (21), 23-Апр-24, 17:52 | +/– | |
> Кто сказал, что в изначальной задаче надо было что-то делать? | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #39 | ||
| 41. Сообщение от Аноним (41), 23-Апр-24, 17:54 | +3 +/– | |
КО: русскоязычный | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #18 Ответы: #98 | ||
| 42. Сообщение от Аноним (41), 23-Апр-24, 17:56 | –1 +/– | |
>если для выхода из сложных циклов использовать оператор goto | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #19 Ответы: #48, #53 | ||
| 44. Сообщение от Аноним (41), 23-Апр-24, 17:59 | +1 +/– | |
Так повторямых сборок между Clang и g++ никто и не обещал. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #31 Ответы: #51 | ||
| 45. Сообщение от Аноним (41), 23-Апр-24, 18:02 | –1 +/– | |
Просмотрите исходники СПО-проектов. В подавляющем большинстве случаев там \0A-окончания строк. Сделайте вывод, кто на чём сидит. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #34 Ответы: #88, #90, #96, #97 | ||
| 46. Сообщение от Ivan7 (ok), 23-Апр-24, 18:04 | +10 +/– | |
За goto в C/C++ может уволить только абсолютно безграмотный чел, который никогда не кодил и не писал высокопроизводительные приложения. В некоторых случаях goto реально полезен, причём в этих случаях альтернатив ему особых нет, особенно это касается Си. А ассемблерный код вообще весь построен на тамошнем аналоге goto - jxx. Надеюсь, за jxx у вас никто никого не увольняет??? (А то тогда это совсем какая-то дикая дичайшая дичь.) | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #30 Ответы: #85 | ||
| 48. Сообщение от Аноним (48), 23-Апр-24, 18:24 | +1 +/– | |
>>если для выхода из сложных циклов использовать оператор goto | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #42 | ||
| 49. Сообщение от Аноним (49), 23-Апр-24, 18:39 | +/– | |
Странно, в тех же исходниках clang часто используется прием: | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Ответы: #62, #114 | ||
| 50. Сообщение от Аноним (50), 23-Апр-24, 18:42 | –1 +/– | |
> Он же нужен исключительно чтобы бить по рукам | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #11 Ответы: #61, #94 | ||
| 51. Сообщение от Sw00p aka Jerom (?), 23-Апр-24, 18:56 | –1 +/– | |
> Так повторямых сборок между Clang и g++ никто и не обещал. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #44 Ответы: #64 | ||
| 52. Сообщение от Аноним (52), 23-Апр-24, 19:38 | +6 +/– | |
Замедление при использовании final вызывает у меня культурный шок. Реализация виртуальных методов стандартна - в объекте хранится указатель на таблицу, в таблице указатель на код. final гарантирует, что наследники не переопределяли код, поэтому чтение таблицы компилятор может иногда выкинуть. Я просто не могу представить, что должен сделать компилятор, чтобы стандартный подход стал выполняться медленней. final и override - это в основном синтаксический сахар, чтобы бить по рукам тех, кто не синхронизирует изменения методов в предках и потомках, а также помощь читающим код, чтобы было видно виртуальные методы. Реально выкидывание чтения таблицы должно происходить крайне редко, обычно везде передаётся указатель на базовый класс с виртуальными методами без реализации. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| 53. Сообщение от Ivan7 (ok), 23-Апр-24, 19:40 | +3 +/– | |
А в ОО-языке циклы не нужны? | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #42 | ||
| 55. Сообщение от anonymous (??), 23-Апр-24, 20:10 | +3 +/– | |
Это не сложно. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #24 | ||
| 56. Сообщение от Аноним (56), 23-Апр-24, 20:49 | –1 +/– | |
Большие команды это где? | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #9 Ответы: #92 | ||
| 57. Сообщение от Bottle (?), 23-Апр-24, 20:53 | +6 +/– | |
Ещё бы не хватало, чтобы к коду с неопределённым и implementation-defined поведением добавились галлюцинации ИИ. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #6 Ответы: #72 | ||
| 60. Сообщение от Аноним (60), 23-Апр-24, 22:40 | +/– | |
Что-то я не понял твою мысль. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #16 Ответы: #75, #89 | ||
| 61. Сообщение от Ivan_83 (ok), 23-Апр-24, 22:41 | +/– | |
Приватные/локальные патчи рулят, минус только в накоплении "техдолга". | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #50 Ответы: #76 | ||
| 62. Сообщение от Аноним (60), 23-Апр-24, 22:44 | +1 +/– | |
final может не только с классами использоваться (запрещая их наследовать), но и для методов-членов, запрещая дочерним классам их переопределять | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #49 | ||
| 63. Сообщение от Ivan_83 (ok), 23-Апр-24, 22:44 | +/– | |
Это тонкий троллинг :) | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #19 Ответы: #74, #87 | ||
| 64. Сообщение от Аноним (64), 23-Апр-24, 22:44 | +2 +/– | |
Вот это далеко не факт... | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #51 Ответы: #67 | ||
| 65. Сообщение от Аноним (60), 23-Апр-24, 22:47 | +3 +/– | |
а за switch/case ? А за try/catch? | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #30 | ||
| 66. Сообщение от Аноним (60), 23-Апр-24, 23:06 | +1 +/– | |
Ты объем кода шланга или гцц видел? Ну ок, покажи как надо делать. Потом сравнительный анализ тебя проведем | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #31 | ||
| 67. Сообщение от Sw00p aka Jerom (?), 23-Апр-24, 23:15 | –2 +/– | |
> Вот это далеко не факт... | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #64 Ответы: #111 | ||
| 72. Сообщение от Sw00p aka Jerom (?), 23-Апр-24, 23:29 | –2 +/– | |
> Ещё бы не хватало | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #57 | ||
| 73. Сообщение от Аноним (73), 24-Апр-24, 00:09 | +/– | |
> Для упрощения процесса эта вики уже была переведена с помощью Google на ... и русский языки. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #15 | ||
| 74. Сообщение от Швондик (?), 24-Апр-24, 00:35 | +/– | |
да я просто пошутил, я вообще никогда с программистами не работал | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #63 | ||
| 75. Сообщение от Аноним (75), 24-Апр-24, 00:37 | +/– | |
Даже с MSVC не будет. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #60 Ответы: #84 | ||
| 76. Сообщение от Аноним (76), 24-Апр-24, 02:31 | +/– | |
Если эти патче не в апстриме - то твоя "FreeBSD" никакая не FreeBSD, а Ivan83BSD, которую будешь сопровождать сам, собирать сам, и использовать сам, потому что желающих ставить иваноподелки себе на комп даже в виртуалку нет. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #61 Ответы: #108 | ||
| 77. Сообщение от Аноним (77), 24-Апр-24, 04:47 | +2 +/– | |
> А опытный разработчик знает, что надо бенчмаркать свой код, и ставить final там, где бенчмарки покажут улучшение :) | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #5 | ||
| 78. Сообщение от Аноним (77), 24-Апр-24, 04:52 | +/– | |
> Требуется сравнительный анализ кода на ассемблере. А так это гадание на /dev/random. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #22 | ||
| 79. Сообщение от Аноним (77), 24-Апр-24, 04:54 | +/– | |
Вперед, Аноним. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #35 Ответы: #83, #112 | ||
| 80. Сообщение от Аноним (-), 24-Апр-24, 07:22 | –1 +/– | |
Ко там хвалил шланг? Запомните, копилефтный GCC - это эталон качества. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Ответы: #82, #95 | ||
| 81. Сообщение от bOOster (ok), 24-Апр-24, 08:20 | +1 +/– | |
Хоть кто-то на опеннете знает как C++ работает. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #16 | ||
| 82. Сообщение от Аноним (82), 24-Апр-24, 08:27 | –3 +/– | |
Тормоза шлангового кода - это не баг, а фича. M$ не для того его спонсирует, чтобы тот обгонял их собственный, конкурирующий, закрытый продукт. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #80 | ||
| 83. Сообщение от Аноним (83), 24-Апр-24, 08:34 | +/– | |
он Занят разработкой Важной Программы. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #79 | ||
| 84. Сообщение от n00by (ok), 24-Апр-24, 08:36 | +/– | |
Осталось ещё убрать final и посмотреть на листинг, для полного просветления. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #75 Ответы: #91 | ||
| 85. Сообщение от n00by (ok), 24-Апр-24, 08:42 | –1 +/– | |
Некоторые и за "C/C++" увольняют, поскольку это маркер, что писавший не видит разницы. В С++ goto позволяет обойти конструкторы/деструкторы, что недопустимо. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #46 Ответы: #93 | ||
| 86. Сообщение от n00by (ok), 24-Апр-24, 08:43 | +/– | |
В ядре Си, а в теме - Си++. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #38 | ||
| 87. Сообщение от n00by (ok), 24-Апр-24, 08:46 | +/– | |
> goto полезен скорее для выхода по ошибке, | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #63 Ответы: #110 | ||
| 88. Сообщение от n00by (ok), 24-Апр-24, 08:50 | +/– | |
Ну мы так на Венде делали. Специально, для повышения качества экспертизы. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #45 | ||
| 89. Сообщение от siga (ok), 24-Апр-24, 12:18 | +2 +/– | |
придумать такой сценарий, когда ключевое слово `final` приводит к девиртуализации вызова, в принципе несложно https://godbolt.org/z/b9d7GhjxW | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #60 Ответы: #106 | ||
| 90. Сообщение от Аноним (90), 24-Апр-24, 12:36 | +/– | |
Офигеть показатель. Наверное конец строки - это штука, которую принципиально невозможно настроить в редакторе или IDE? Надо будет глянуть как там у меня под виндой в Geany и Notepad++ сделано. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #45 | ||
| 91. Сообщение от Аноним (91), 24-Апр-24, 12:40 | +1 +/– | |
Тот пример действительно не покажет эффект от `final`, если компилятор умеет запоминать тип присвоенного ссылке или указателю объекта, а не ограничивается типом самой ссылки или указателя. Куда лучше тут подходит https://godbolt.org/z/aPKxEWMz5 | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #84 Ответы: #102 | ||
| 92. Сообщение от Аноним (8), 24-Апр-24, 12:53 | +/– | |
Это там, где больше одного человека. За примерами команд >1K с общим кодом можешь, например, сходить в гугл или даже местный Яндекс. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #56 | ||
| 93. Сообщение от Аноним (93), 24-Апр-24, 14:19 | +1 +/– | |
можно пример? Чтоб именно goto обошел конструктор/деструктор, а не какой-нить setjmp | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #85 Ответы: #104 | ||
| 94. Сообщение от Аноним (94), 24-Апр-24, 14:50 | +/– | |
Privat и final действительно противоречат сути ООП т.к. мешают переиспользовать код, но с protected всё нормально. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #50 Ответы: #117 | ||
| 95. Сообщение от Аноним (95), 24-Апр-24, 22:04 | +/– | |
gcc это вендорлок | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #80 Ответы: #100 | ||
| 96. Сообщение от Электрон (?), 25-Апр-24, 07:46 | +1 +/– | |
Показательнее пример Mozilla, разработчики Firefox пользуются Chrome в качестве основного браузера, везде Гуглосервисы. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #45 | ||
| 97. Сообщение от Электрон (?), 25-Апр-24, 07:48 | +/– | |
Забыл еще написать про электронные адреса. Заглянуть в AUR - там повсеместно gmail указан. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #45 | ||
| 98. Сообщение от Aleksander256 (?), 25-Апр-24, 09:58 | +/– | |
Школьник? Не встречал взрослого плюсовика который хотябы не сможет почитать хотябы документацию на англицком языке | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #41 Ответы: #99, #103 | ||
| 99. Сообщение от Бывалый Смузихлёб (ok), 25-Апр-24, 10:43 | +/– | |
> Школьник? Не встречал взрослого плюсовика который хотябы не сможет почитать хотябы документацию | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #98 Ответы: #101 | ||
| 100. Сообщение от Аноним (100), 25-Апр-24, 11:37 | +/– | |
Я считаю это позором | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #95 | ||
| 101. Сообщение от Aleksander256 (?), 25-Апр-24, 12:55 | +/– | |
Тогда пусть ссылаются только на статьи написаные на русском языке. Даже если она устарели и актуальна. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #99 | ||
| 102. Сообщение от n00by (ok), 25-Апр-24, 13:27 | +/– | |
Подходит лучше, пока нет определения функций-членов. При lto может быть проанализирован поток исполнения и разницы не окажется. Но даже если и окажется, то главный вопрос - почему вдруг с final медленнее, а не быстрее. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #91 | ||
| 103. Сообщение от n00by (ok), 25-Апр-24, 13:29 | +/– | |
Поставим вопрос иначе: какой % плюсовиков прочитал стандарт языка? | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #98 Ответы: #109 | ||
| 104. Сообщение от n00by (ok), 25-Апр-24, 14:04 | –3 +/– | |
> можно пример? Чтоб именно goto обошел конструктор/деструктор, а не какой-нить setjmp | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #93 Ответы: #116 | ||
| 105. Сообщение от Аноним (105), 25-Апр-24, 16:52 | +/– | |
Ну С программистам виднее. Я к ним не отношусь, просто любитель. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #14 | ||
| 106. Сообщение от fuggy (ok), 25-Апр-24, 17:48 | +/– | |
Я пытался разобраться, но тут нет разницы в ассемблере между clang и gcc c final и без в первом случае. Откуда тогда разница в производительности берётся? Либо нужно более сложный кейс сравнивать. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #89 Ответы: #107 | ||
| 107. Сообщение от n00by (ok), 26-Апр-24, 06:50 | +/– | |
Мне тут другое непонятно. Автор тестов тестировал на своей библиотеке. Получил результат, вызывающий вопросы. Почему он не посмотрел асм и не нашёл ответ сам? Я в подобных случаях всегда смотрел и подчас открывал удивительные для себя вещи. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #106 | ||
| 108. Сообщение от Аноним (108), 26-Апр-24, 08:48 | +/– | |
Описал так, как будто это что-то плохое. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #76 | ||
| 109. Сообщение от Аноним (108), 26-Апр-24, 08:53 | +/– | |
Звчем? Русский или английский? | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #103 Ответы: #121 | ||
| 110. Сообщение от Аноним (108), 26-Апр-24, 09:00 | +/– | |
Использование RAII не освобождает от необходимости подчищать при выходе из цикла. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #87 Ответы: #119 | ||
| 111. Сообщение от Аноним (108), 26-Апр-24, 09:02 | +/– | |
То что утверждается без аргументов опровергается также без аргументов. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #67 Ответы: #115 | ||
| 112. Сообщение от Аноним (108), 26-Апр-24, 09:06 | +/– | |
"Сначала добейся" | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #79 | ||
| 113. Сообщение от Аноним (108), 26-Апр-24, 09:13 | +1 +/– | |
>final was placed on just about EVERY interface. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| 114. Сообщение от Пряник (?), 26-Апр-24, 11:58 | –1 +/– | |
Какой же стрёмный синтаксис у плюсов... Обернули в какой-то namespace, два имени у класса, после функции какой-то override. Очень понятно. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #49 Ответы: #120 | ||
| 115. Сообщение от Sw00p aka Jerom (?), 26-Апр-24, 12:37 | +/– | |
> То что утверждается без аргументов опровергается также без аргументов. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #111 | ||
| 116. Сообщение от Ivan7 (ok), 26-Апр-24, 16:12 | +1 +/– | |
Во-первых, в данном случае компилятор выдал кучу предупреждений. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #104 Ответы: #118 | ||
| 117. Сообщение от Аноним (117), 27-Апр-24, 02:36 | +/– | |
Ничему они не противоречат. ООП - это не про наследование. ООП - это про объекты как "черные ящики", скрывающие детали реализации и работающие по контрактам. Контракт может быть как формальным (через interface в java), так и фактическим, это без разницы. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #94 | ||
| 118. Сообщение от n00by (ok), 28-Апр-24, 08:25 | +/– | |
> Во-первых, в данном случае компилятор выдал кучу предупреждений. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #116 | ||
| 119. Сообщение от n00by (ok), 28-Апр-24, 08:30 | +/– | |
> Использование RAII не освобождает от необходимости подчищать при выходе из цикла. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #110 | ||
| 120. Сообщение от n00by (ok), 28-Апр-24, 08:34 | +/– | |
namespace там скопировано от нечего делать. | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #114 | ||
| 121. Сообщение от n00by (ok), 28-Апр-24, 09:11 | +/– | |
> Звчем? Русский или английский? | ||
| Ответить | Правка | Наверх | Cообщить модератору | ||
| Родитель: #109 | ||
|
Архив | Удалить |
Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема |
|
Закладки на сайте Проследить за страницей |
Created 1996-2025 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |