|
108 / 108 / 23
Регистрация: 21.03.2010
Сообщений: 445
|
|
Производительность операций20.11.2011, 06:34. Показов 16639. Ответов 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 | |
|
Помогаю со студенческими работами здесь
40
Доказать равенства, используя свойства операций над множествами и определения операций Доказать равенства, используя свойства операций над множествами и определения операций Сколько нужно провести операций, чтобы 13 операций подряд были успешными? Доказать равенства, используя свойства операций над множествами и определения операций Напечатать все знаки арифметических операций и операций отношения Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|