С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6156 / 2847 / 1042
Регистрация: 01.06.2021
Сообщений: 10,393

Нужно мнение экспертов С++

22.10.2021, 22:10. Показов 1457. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Что будет лучше в плане оптимизации / производительности?

C++
1
while(i >= 1) { }
или

C++
1
while(i > 0) { }
Вместо while может быть do, for, if и т.д.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.10.2021, 22:10
Ответы с готовыми решениями:

Мнение экспертов по поводу моего кода и почему бинарное дерево поиска так медленно записывает данные?
Создал свое бинарное дерево поиска(без балансировки) чисто по фану. Ради интереса сравнил скорость добавления элементов моего дерева с...

Нужно мнение профессионалов
Вот у меня такой вопрос реально сделать (вот есть два компа баз локальной сети! на обоих работает программа Apache и на ней стоит один и...

Нужно ваше экспертное мнение
Приветствую, написал код (слепил из того что нашел). Проверьте пожалуйста правильно ли я сделал задание, заранее благодарен. Задание: ...

16
Just Do It!
 Аватар для XLAT
4202 / 2658 / 654
Регистрация: 23.09.2014
Сообщений: 8,962
Записей в блоге: 3
22.10.2021, 22:27
Цитата Сообщение от Royal_X Посмотреть сообщение
Что будет лучше
второе лучше.

ноль получается одной командой xor или тупо переход по установленному старшему биту,
а единицу ещё и загрузить надо.
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12930 / 6798 / 1820
Регистрация: 18.10.2014
Сообщений: 17,209
22.10.2021, 22:40
Лучший ответ Сообщение было отмечено Royal_X как решение

Решение

Цитата Сообщение от Royal_X Посмотреть сообщение
Что будет лучше в плане оптимизации / производительности?
Абсолютно никакой разницы.

Однако где указан тип i?
1
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6156 / 2847 / 1042
Регистрация: 01.06.2021
Сообщений: 10,393
22.10.2021, 22:57  [ТС]
Цитата Сообщение от XLAT Посмотреть сообщение
ноль получается одной командой xor или тупо переход по установленному старшему биту,
а единицу ещё и загрузить надо.
но дело не в нуле, я написал 0 и 1 чисто случайно ради примера. Могло быть так, скажем,

C++
1
while(i >= 16) { }
или

C++
1
while(i > 15) { }
Какой лучше в таком случае?

Цитата Сообщение от TheCalligrapher Посмотреть сообщение
Однако где указан тип i?
допустим переменная была объявлена раньше, вопрос не об этом вообще
0
Неэпический
 Аватар для Croessmah
18144 / 10728 / 2066
Регистрация: 27.09.2012
Сообщений: 27,026
Записей в блоге: 1
22.10.2021, 23:02
Цитата Сообщение от Royal_X Посмотреть сообщение
Что будет лучше в плане оптимизации / производительности?
Например: https://godbolt.org/z/znEYsn86x

Цитата Сообщение от Royal_X Посмотреть сообщение
А какой лучше в таком случае?
Можете поставить в код по ссылке выше и увидите.

Цитата Сообщение от Royal_X Посмотреть сообщение
допустим переменная была объявлена раньше
Вас спрашивают о типе, а не о месте объявления.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6156 / 2847 / 1042
Регистрация: 01.06.2021
Сообщений: 10,393
22.10.2021, 23:03  [ТС]
Цитата Сообщение от Croessmah Посмотреть сообщение
Вас спрашивают о типе
int

Добавлено через 34 секунды
или size_t (unsigned long long)
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12930 / 6798 / 1820
Регистрация: 18.10.2014
Сообщений: 17,209
22.10.2021, 23:13
Цитата Сообщение от Royal_X Посмотреть сообщение
допустим переменная была объявлена раньше, вопрос не об этом вообще
Вопрос именно об этом! Ответ на вопрос критически зависит от типа переменной. То есть пока что никакого вопроса не было вообще. Пока что написана бессмыслица. Вопрос начнется тогда, когда будет оговорен конкретный тип переменной.

Цитата Сообщение от Royal_X Посмотреть сообщение
int или size_t
Для любого целочисленного типа выражение i > A эквивалентно выражению i >= A+1 (кроме, разве что, краевых случаев), поэтому никакой разницы нет и быть не может.
1
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6156 / 2847 / 1042
Регистрация: 01.06.2021
Сообщений: 10,393
22.10.2021, 23:14  [ТС]
TheCalligrapher, а если был бы double или float?
0
Модератор
Эксперт CЭксперт С++
 Аватар для Volga_
5208 / 2925 / 1509
Регистрация: 14.12.2018
Сообщений: 5,266
Записей в блоге: 1
22.10.2021, 23:26
Royal_X, float , double — совсем отличаются. Очевидно: x>=1 (т.е. х=1, 1.1,...) и x>0 (т.е. х=0.1, 0.2,...) разны.

Добавлено через 4 минуты
Т.е. их область значения различна хотя у них одинаковый шаг !
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12930 / 6798 / 1820
Регистрация: 18.10.2014
Сообщений: 17,209
22.10.2021, 23:27
Цитата Сообщение от Royal_X Посмотреть сообщение
а если был бы double или float?
О чем тогда вопрос? Для "double или float" ваши варианты даже отдаленно не эквивалентны, то есть вопроса выбора по критерию "какой оптимальнее" не может быть вообще.
1
2625 / 1636 / 266
Регистрация: 19.02.2010
Сообщений: 4,348
22.10.2021, 23:29
Лучший ответ Сообщение было отмечено Royal_X как решение

Решение

Цитата Сообщение от Royal_X Посмотреть сообщение
Могло быть так, скажем,
Никакой разницы.
Скачай у Интела справочник Instruction Set Reference - там в главе Jcc—Jump if Condition Is Met увидишь, что процессорные команды условного перехода есть и для >, и для >=, и для <, и для <=.
Т.е. на интеловской процессорной архитектуре подходящая процессорная команда условного перехода найдётся независимо от того, сколько символов (1 или 2) в написании соответствующего арифм.условия на С++ или ином ЯВУ.

Аналогично и для целочисленной команды условного копирования cmov, и для плавучей команды условного копирования fcmov (тело if'а может с их помощью быть реализовано).

В общем, вопрос СОВЕРШЕННО не про с/с++ - а ТОЛЬКО лишь о наборе процессорных команд под какую-то архитектуру, и, затем, о качестве какого-то транслятора (хорошо ли он оптимизирует или нет).
1
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6156 / 2847 / 1042
Регистрация: 01.06.2021
Сообщений: 10,393
22.10.2021, 23:44  [ТС]
Цитата Сообщение от TheCalligrapher Посмотреть сообщение
О чем тогда вопрос? Для "double или float" ваши варианты даже отдаленно не эквивалентны, то есть вопроса выбора по критерию "какой оптимальнее" не может быть вообще.
Собственно, double \ float мне не интересовали вообще. Просто, учитывая, что несколько раз спросили о типе (вообще мне казалось, что и так ясно, что я имею ввиду о целочисленном типе), мне стало интересно, а что есть такого волшебного в других типах...
0
Неэпический
 Аватар для Croessmah
18144 / 10728 / 2066
Регистрация: 27.09.2012
Сообщений: 27,026
Записей в блоге: 1
23.10.2021, 00:00
Цитата Сообщение от Royal_X Посмотреть сообщение
а что есть такого волшебного в других типах
Например, перегруженные операторы сравнения.
0
Just Do It!
 Аватар для XLAT
4202 / 2658 / 654
Регистрация: 23.09.2014
Сообщений: 8,962
Записей в блоге: 3
23.10.2021, 00:01
Цитата Сообщение от Royal_X Посмотреть сообщение
что и так ясно
я глянул разные асмовыхлопы для разных архитектур;
на avr'aх 1 или 0 в условии отражается в разницу в увеличении на 2 строчки ассемблера.

может ещё где, я не всё смотрел.

ещё были такие процы, в которых получить ноль можно было по месту в самом проце,
а 1 это константа, которую нужно было грузить из памяти, а это +лишние такты.

но в нашу эру на такую хрень все уже давно забили...

а для читабельности которая в однообразии лучше i > 0, имхо, ибо красноглазикам и тут б.р..
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12930 / 6798 / 1820
Регистрация: 18.10.2014
Сообщений: 17,209
23.10.2021, 00:09
Цитата Сообщение от XLAT Посмотреть сообщение
ещё были такие процы, в которых получить ноль можно было по месту в самом проце,
а 1 это константа, которую нужно было грузить из памяти, а это +лишние такты.
Ни на каких "процах" эффективность этого кода не будет зависеть от сложности "получения" нуля или единицы. И никто здесь не будет ничего "грузить из памяти". Ноль и единица в этом коде существуют лишь в исходном тексте на С. Никакие "процы" не будут исполнять исходный текст на С.

Цитата Сообщение от XLAT Посмотреть сообщение
я глянул разные асмовыхлопы для разных архитектур;
на avr'aх 1 или 0 в условии отражается в разницу в увеличении на 2 строчки ассемблера.
??? https://godbolt.org/z/ce49Kr6hc
0
Just Do It!
 Аватар для XLAT
4202 / 2658 / 654
Регистрация: 23.09.2014
Сообщений: 8,962
Записей в блоге: 3
23.10.2021, 00:13
Цитата Сообщение от TheCalligrapher Посмотреть сообщение
Ни на каких
ни каких вопросов у меня к вам нет.
лечите других.
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12930 / 6798 / 1820
Регистрация: 18.10.2014
Сообщений: 17,209
23.10.2021, 00:20
Цитата Сообщение от XLAT Посмотреть сообщение
ни каких вопросов у меня к вам нет. лечите других.
У меня тоже нет никаких вопросов. Я просто, как обычно, помечаю феерическую чушь и крою ее простыми фактами. Именно для других.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.10.2021, 00:20
Помогаю со студенческими работами здесь

Нужно мнение знающих, ошибки в коде
Доброго времени суток) Пока учился, создал простенький калькулятор с 4-мя базовыми операндами и без динамической памяти. Решил несколько...

Нужно экспертное мнение! Что рациональнее!? почему так работают функции?!
Привет всем!:) Возникли небольшие непонятки с функциями которые вычисляют интеграл по формуле симпсона. Дело в том что ф-ция integ_2 ...

Нужно мнение по поводу изучения программирования
Здравствуйте! Во мне поселилось некоторое сомнение что не очень хорошо) Поэтому решил задать вопрос на форуме, чтобы узнать разные...

Нужно мнение экспертов
Собираюсь брать комп для игр, вот что у меня получилось: Процессор- Intel Core i5-4670K BX80646I54670K Материнка- MSI Z87-G45 GAMING ...

Нужно мнение экспертов в выбором компьютерных комплектующих
Вот примерно что мне нужно: Процессор Intel Core i5-9400F BOX (а может Ryzen 5 2600x?) Материнская плата MSI B360-A PRO Оперативная...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru