|
108 / 108 / 23
Регистрация: 21.03.2010
Сообщений: 445
|
|
Производительность операций20.11.2011, 06:34. Показов 17961. Ответов 135
Метки нет (Все метки)
Не уверен в своих силах для самостоятельной оценки сабжа. Где можно найти информацию о производительности стандартных операций с++ (гуглением не справился, нашел только сравнение реализации на с++, джаве и на нескольких интерпретируемых языках)?
То есть интересует информация плана << : * как 1:15 или <= : == как 25:24... То есть, чрезвычайно интересно знать, какие операции выбирать если есть альтернатива.
0
|
|
| 20.11.2011, 06:34 | |
|
Ответы с готовыми решениями:
135
Вставить между цифрами 1, 2,..., 8, 9 в данном порядке, знак одной из 4-х арифметических операций так, чтобы результат восьми послед-х операций =100 Производительность
|
|
Заблокирован
|
||
| 21.11.2011, 17:29 | ||
|
Для пользовательских типов ваши оценки не состоятельны, так как они могут разниться в сотни и даже в тысячи раз в зависимости от сложности реализации пользовательского класса. Например, создание объекта пользовательского класса может включать в чебя открытие файлов, установление связи с сервером и т.д. Что касается способа выполнения умножения, то действительно для старых микропроцессоров операции сложения регистров выполнялись значительно быстрее умножения, и компиляторы генерировали для умножения код, который использовал сложение. Однако в современных микропроцессоров есть векторные модули, которые делают операции умножения очень быстрыми, что не имеет никакого смысла заменять их серией сложений. Поэтому я и говорю, что для профессионалов ваш подход и ваши оценки не представяют инетреса. Они интересны лишь из любопытства для новичков, которые узнали, что существует разница между постинкрементом и прединкрементом и ринулиьс это сразу же проверять.
1
|
||
|
385 / 229 / 12
Регистрация: 06.07.2011
Сообщений: 512
|
||
| 21.11.2011, 17:44 | ||
а вот в инженерном расчете кривых в авиационном деле никто умножения не избегает. так как на фоне общих затрат производительности подобная оптимизация будет столь несущественна, что никак не окупит потраченное на нее время и возможное уменьшение точности расчетов.
1
|
||
|
108 / 108 / 23
Регистрация: 21.03.2010
Сообщений: 445
|
|||||||
| 21.11.2011, 17:47 [ТС] | |||||||
0
|
|||||||
|
108 / 108 / 23
Регистрация: 21.03.2010
Сообщений: 445
|
||
| 21.11.2011, 17:47 [ТС] | ||
|
0
|
||
|
Заблокирован
|
|
| 21.11.2011, 17:50 | |
|
0
|
|
|
108 / 108 / 23
Регистрация: 21.03.2010
Сообщений: 445
|
|||||||
| 21.11.2011, 17:54 [ТС] | |||||||
|
Я ожидал, что извлечение корня дольше чем умножение раз в 20 как минимум, а оказывается всего в 2,5. Это повод всё-таки переписать алгоритм.
Добавлено через 1 минуту
0
|
|||||||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
| 21.11.2011, 17:54 | |
|
CEBEP, Пишите на сях, если смотрите на крохи ускорения и хотите переписать алгоритм с индексной формы в форму указателей. А С++ не трогайте в этом случае.
1
|
|
|
108 / 108 / 23
Регистрация: 21.03.2010
Сообщений: 445
|
||
| 21.11.2011, 18:02 [ТС] | ||
|
Короче, по сабжу кто что может сказать? Как повысить объективность теста?
0
|
||
|
108 / 108 / 23
Регистрация: 21.03.2010
Сообщений: 445
|
|||
| 21.11.2011, 18:07 [ТС] | |||
|
Добавлено через 1 минуту
0
|
|||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
| 21.11.2011, 18:08 | |
|
CEBEP, Скорость вектора в любом случае будет ниже, чем использование указателя (если конечно грамотно использовать).
0
|
|
|
108 / 108 / 23
Регистрация: 21.03.2010
Сообщений: 445
|
|
| 21.11.2011, 18:11 [ТС] | |
|
просто ещё на первом курсе написал парсер, он использовал стеки. Когда я перешел от стеков к массивам (просто выделил память под максимально высокий стэк), получил (зависело от контекста) прирост производительности в 80 раз. Ясно же, что если бы проблема решалась только так, то технологии с++ небыли бы настолько популярными. Но полагаться на произвол оптимизатора тоже страшно. Вот и изучаю. Сейчас если доведу написание теста до конца, ещё в IDE Qt запущу тест, разницу посмотрю...
0
|
|
|
Заблокирован
|
||
| 21.11.2011, 18:11 | ||
|
0
|
||
|
Заблокирован
|
||||
| 21.11.2011, 18:16 | ||||
|
Добавлено через 4 минуты А если слегка подшаманить, можно подружить вектор с массивами на стеке. Для особо капризных случаев. Только вот.. в 99% случаев этого нафег не нужно.
0
|
||||
|
108 / 108 / 23
Регистрация: 21.03.2010
Сообщений: 445
|
||
| 21.11.2011, 18:16 [ТС] | ||
|
0
|
||
|
Заблокирован
|
||||||||||||
| 21.11.2011, 18:17 | ||||||||||||
|
Что касается операций сравнения, то на Intel процессорах они обычно выполняются с помощью одной машинной команды: CMP или ее вариации. Например,
Что касается вашего знакомого, то это сразу же говорит о том, что он - не профессионал. Его представления об эффективности крайне наивны, так как ему постоянно самому надо писать код по управлению памятью. А это означает, что он может допустить ошибки, и его код не будет столь эффективен, как уже выверенный код для контейнеров. Более того его код может быть вообще не безопасным! Я уж не говорю о сопровождении такого кода другими людьми.
1
|
||||||||||||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||||||||||||||||||||||||||
| 21.11.2011, 18:19 | ||||||||||||||||||||||||||
1
|
||||||||||||||||||||||||||
|
Заблокирован
|
|
| 21.11.2011, 18:22 | |
|
ну первое что бросается в глаза - явно надо сделать обёртки вокруг ассемблерной вставки в виде инлайн функции или макроса, иначе это читать невозможно. Исправить наконец то саму ассемблерную вставку, потому что результат rdtsc помещается в пару edx:eax на ia32, а на intel64 в младшую часть rax и старшую часть rdx, итоговый результат можно получить побитовым или
1
|
|
|
108 / 108 / 23
Регистрация: 21.03.2010
Сообщений: 445
|
||
| 21.11.2011, 18:23 [ТС] | ||
|
0
|
||
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 21.11.2011, 18:27 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Добавлено через 2 минуты
0
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 21.11.2011, 18:27 | |
|
Доказать равенства, используя свойства операций над множествами и определения операций Доказать равенства, используя свойства операций над множествами и определения операций Сколько нужно провести операций, чтобы 13 операций подряд были успешными? Доказать равенства, используя свойства операций над множествами и определения операций Напечатать все знаки арифметических операций и операций отношения Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия 30. Фосфорный и азотный замки по "честному" закону лимитирования Либиха
anaschu 16.07.2026
Основные достижения за последние дни
1. Механизм отложенного высвобождения фосфора
Добавлен специальный пул для медленного разложения меланизированных гиф ЕСМ
Реализована разная скорость. . .
|
Запрет пометки на удаление и отмены проведения
Maks 16.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "ПутевойЛист" разработанного в КА2.
Задача: запретить помечать на удаление и отменять проведения путевого листа при условии, если он сдан. . .
|
Как надо было делать правильно - вообще не слушать ИИ, его дело - текст.
Hrethgir 15.07.2026
А вообще надо было делать не так, чтобы не исправлять ошибку https:/ / www. cyberforum. ru/ blogs/ 223907/ 10996. html , правильно было : удалил кнопку, а потом добавил её.
Всё это стресс конечно. Почему?. . .
|
Знаете, от чего появляется стресс?
kumehtar 15.07.2026
Стресс появляется оттого, что вы, зная как поступить правильно, делаете наоборот.
Ларри Уингет
|
|
Нас бьют, а мы крепчаем? Какая чушь!
kumehtar 15.07.2026
Вот это вот бытующее мнение, что человек меняется только под действием проблем, всегда считал вредоносным. Поверь, от проблем у людей появляются не изменения, а нервное расстройство и ПТСР. А. . .
|
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров
В текущей версии модели успешно реализован ключевой механизм. . .
|
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям
Реализованные компоненты:
Механизм закисления почвы через протонную помпу
Конкуренция между типами микориз
pH как триггер сукцессии
C/ P соотношение. . .
|
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
|