The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Анализ влияния ключевого слова final на производительность программ C++, opennews (??), 23-Апр-24, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


19. "Анализ влияния ключевого слова final на производительность п..."  +3 +/
Сообщение от Швондик (?), 23-Апр-24, 15:41 
иногда можно повысить производительность до 70% если для выхода из сложных циклов использовать оператор goto
Ответить | Правка | Наверх | Cообщить модератору

20. "Анализ влияния ключевого слова final на производительность п..."  +6 +/
Сообщение от Аноним (20), 23-Апр-24, 16:00 
а если использовать выход в первой строчке проги, производительность ещё сильнее повысится!
Ответить | Правка | Наверх | Cообщить модератору

21. "Анализ влияния ключевого слова final на производительность п..."  +4 +/
Сообщение от Аноним (21), 23-Апр-24, 16:18 
Нет, не повысится. Время исполнения уменьшится, но работа, выполненная за это время, будет равна нулю. Итого общая производительность тоже будет равна нулю — программа не делает ничего полезного для изначальной задачи, если только изначально не было цели сразу выходить.
Ответить | Правка | Наверх | Cообщить модератору

39. "Анализ влияния ключевого слова final на производительность п..."  –2 +/
Сообщение от Аноним (20), 23-Апр-24, 17:47 
Кто сказал, что в изначальной задаче надо было что-то делать? Полезность - это всё иллюзия. И ваще, мы - пыль в масштабах Вселенной.
Ответить | Правка | Наверх | Cообщить модератору

40. "Анализ влияния ключевого слова final на производительность п..."  +/
Сообщение от Аноним (21), 23-Апр-24, 17:52 
> Кто сказал, что в изначальной задаче надо было что-то делать?

Если ничего делать не надо, то и задачи нет.

> Полезность - это всё иллюзия. И ваще, мы - пыль в масштабах Вселенной.

Отлично, давайте уйдём глубже в философию и метафизику от точныз цифр.

Ответить | Правка | Наверх | Cообщить модератору

23. "Анализ влияния ключевого слова final на производительность п..."  –3 +/
Сообщение от Аноним (-), 23-Апр-24, 16:20 
> повысить производительность до 70%

Одной функции или всей программы)?
что-то мне подсказывает, что ты про первое

> если для выхода из сложных циклов

В плюсах этого можно достичь и другими способами, начиная от лямд, заканчивая просто return'ом.

> использовать оператор goto

Или превратить код в неподдерживаемые макароны, в которых потом еще много лет находить ошибки.

Ответить | Правка | К родителю #19 | Наверх | Cообщить модератору

27. "Анализ влияния ключевого слова final на производительность п..."  +1 +/
Сообщение от Аноним (27), 23-Апр-24, 16:26 
спагетти*
Ответить | Правка | Наверх | Cообщить модератору

30. "Анализ влияния ключевого слова final на производительность п..."  –6 +/
Сообщение от Швондик (?), 23-Апр-24, 16:33 
да я просто пошутил, у нас за goto сразу увольняют если увидят в коде
Ответить | Правка | К родителю #23 | Наверх | Cообщить модератору

38. "Анализ влияния ключевого слова final на производительность п..."  +10 +/
Сообщение от Аноним (38), 23-Апр-24, 17:44 
Значит вы в ядро не коммите
Ответить | Правка | Наверх | Cообщить модератору

86. "Анализ влияния ключевого слова final на производительность п..."  +/
Сообщение от n00by (ok), 24-Апр-24, 08:43 
В ядре Си, а в теме - Си++.
Ответить | Правка | Наверх | Cообщить модератору

46. "Анализ влияния ключевого слова final на производительность п..."  +10 +/
Сообщение от Ivan7 (ok), 23-Апр-24, 18:04 
За goto в C/C++ может уволить только абсолютно безграмотный чел, который никогда не кодил и не писал высокопроизводительные приложения. В некоторых случаях goto реально полезен, причём в этих случаях альтернатив ему особых нет, особенно это касается Си. А ассемблерный код вообще весь построен на тамошнем аналоге goto - jxx. Надеюсь, за jxx у вас никто никого не увольняет??? (А то тогда это совсем какая-то дикая дичайшая дичь.)
Ответить | Правка | К родителю #30 | Наверх | Cообщить модератору

85. "Анализ влияния ключевого слова final на производительность п..."  –1 +/
Сообщение от n00by (ok), 24-Апр-24, 08:42 
Некоторые и за "C/C++" увольняют, поскольку это маркер, что писавший не видит разницы. В С++ goto позволяет обойти конструкторы/деструкторы, что недопустимо.
Ответить | Правка | Наверх | Cообщить модератору

93. "Анализ влияния ключевого слова final на производительность п..."  +1 +/
Сообщение от Аноним (93), 24-Апр-24, 14:19 
можно пример? Чтоб именно goto обошел конструктор/деструктор, а не какой-нить setjmp
Ответить | Правка | Наверх | Cообщить модератору

104. "Анализ влияния ключевого слова final на производительность п..."  –3 +/
Сообщение от n00by (ok), 25-Апр-24, 14:04 
> можно пример? Чтоб именно goto обошел конструктор/деструктор, а не какой-нить setjmp

https://godbolt.org/z/KGaoGYq9W

#include <iostream>

struct S { S(); };

int main()
{
    goto uninit;
    int i(0);
    S s;
uninit:
    std::cout << i;
}

example.cpp
<source>(9): warning C4533: initialization of 's' is skipped by 'goto uninit'
<source>(9): note: see declaration of 's'
<source>(10): note: see declaration of 'uninit'
<source>(11) : warning C4700: uninitialized local variable 'i' used
Compiler returned: 0

В GCC вам по умолчанию нужный ключик добавили, что бы это воспринималось как error.

Стандарт явно запрещает лишь переходы в блоки try/catch (A goto or switch statement shall not be used to transfer control into a try block or into a handler).

Ответить | Правка | Наверх | Cообщить модератору

116. "Анализ влияния ключевого слова final на производительность п..."  +1 +/
Сообщение от Ivan7 (ok), 26-Апр-24, 16:12 
Во-первых, в данном случае компилятор выдал кучу предупреждений.
Во-вторых, если у человека вместо головы котелок, то ему ничто не поможет, и его ничего не спасёт.
Ответить | Правка | Наверх | Cообщить модератору

118. "Анализ влияния ключевого слова final на производительность п..."  +/
Сообщение от n00by (ok), 28-Апр-24, 08:25 
> Во-первых, в данном случае компилятор выдал кучу предупреждений.

Вот именно, предупреждение. По одному на каждый случай. То есть "куча" -- ложно. Моё заявление "В С++ goto позволяет обойти конструкторы" подтверждено практикой.

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

> Во-вторых, если у человека вместо головы котелок, то ему ничто не поможет,
> и его ничего не спасёт.

Угу. А ведь можно было бы прицепиться к "деструкторы" в моей формулировке. И даже привести цитату стандарта. Но это ведь требует чтения стандарта, да?

Ответить | Правка | Наверх | Cообщить модератору

65. "Анализ влияния ключевого слова final на производительность п..."  +3 +/
Сообщение от Аноним (60), 23-Апр-24, 22:47 
а за switch/case ? А за try/catch?
Ответить | Правка | К родителю #30 | Наверх | Cообщить модератору

42. "Анализ влияния ключевого слова final на производительность п..."  –1 +/
Сообщение от Аноним (41), 23-Апр-24, 17:56 
>если для выхода из сложных циклов использовать оператор goto

Мы про ОО-язык говорим или где?

Ответить | Правка | К родителю #19 | Наверх | Cообщить модератору

48. "Анализ влияния ключевого слова final на производительность п..."  +1 +/
Сообщение от Аноним (48), 23-Апр-24, 18:24 
>>если для выхода из сложных циклов использовать оператор goto
> Мы про ОО-язык говорим или где?

"Настоящий программист может писать Фортран^WСи-программы на любом языке!"

Ответить | Правка | Наверх | Cообщить модератору

53. "Анализ влияния ключевого слова final на производительность п..."  +3 +/
Сообщение от Ivan7 (ok), 23-Апр-24, 19:40 
А в ОО-языке циклы не нужны?
Ответить | Правка | К родителю #42 | Наверх | Cообщить модератору

63. "Анализ влияния ключевого слова final на производительность п..."  +/
Сообщение от Ivan_83 (ok), 23-Апр-24, 22:44 
Это тонкий троллинг :)

goto полезен скорее для выхода по ошибке, к есдиному месту где очищаются ресурсы.
Иногда там местки расставляют через строчку, чтобы разное колличество шаго деинициализации/освобождения ресурсов делать.

А так, мне нравится режим фильтра, когда последовательно проверяются условия (не повышая вложенности) и стараются быстрее сделать break/continue/return.

Ответить | Правка | К родителю #19 | Наверх | Cообщить модератору

74. "Анализ влияния ключевого слова final на производительность п..."  +/
Сообщение от Швондик (?), 24-Апр-24, 00:35 
да я просто пошутил, я вообще никогда с программистами не работал
Ответить | Правка | Наверх | Cообщить модератору

87. "Анализ влияния ключевого слова final на производительность п..."  +/
Сообщение от n00by (ok), 24-Апр-24, 08:46 
> goto полезен скорее для выхода по ошибке,
> к единому месту где очищаются ресурсы.

Это нормально в Си. В Си++ вместо этого используется RAII, и при наличии не POD типов goto опасен.

Ответить | Правка | К родителю #63 | Наверх | Cообщить модератору

110. "Анализ влияния ключевого слова final на производительность п..."  +/
Сообщение от Аноним (108), 26-Апр-24, 09:00 
Использование RAII не освобождает от необходимости подчищать при выходе из цикла.
Ответить | Правка | Наверх | Cообщить модератору

119. "Анализ влияния ключевого слова final на производительность п..."  +/
Сообщение от n00by (ok), 28-Апр-24, 08:30 
> Использование RAII не освобождает от необходимости подчищать при выходе из цикла.

"можно пример?" (ц) Что и за кем необходимо подчищать.

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру