108 / 108 / 23
Регистрация: 21.03.2010
Сообщений: 445
|
|
1 | |
Производительность операций20.11.2011, 06:34. Показов 13788. Ответов 135
Метки нет (Все метки)
Не уверен в своих силах для самостоятельной оценки сабжа. Где можно найти информацию о производительности стандартных операций с++ (гуглением не справился, нашел только сравнение реализации на с++, джаве и на нескольких интерпретируемых языках)?
То есть интересует информация плана << : * как 1:15 или <= : == как 25:24... То есть, чрезвычайно интересно знать, какие операции выбирать если есть альтернатива.
0
|
20.11.2011, 06:34 | |
Ответы с готовыми решениями:
135
Вставить между цифрами 1, 2,..., 8, 9 в данном порядке, знак одной из 4-х арифметических операций так, чтобы результат восьми послед-х операций =100 Производительность Заменить в данной строке знаки арифметических операций названиями противоположных им операций Доказать равенства, используя свойства операций над множествами и определения операций |
108 / 108 / 23
Регистрация: 21.03.2010
Сообщений: 445
|
|
21.11.2011, 18:27 [ТС] | 41 |
0
|
Заблокирован
|
||||||
21.11.2011, 18:28 | 42 | |||||
taras atavin,
хаха lol! Ещё один эксперт по вопросам оптимизации объявился...
0
|
21.11.2011, 18:29 | 43 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Много всего неразумного
[QUOTE=taras atavin;2196816]Например,
Знатоки подтягиваются
0
|
Заблокирован
|
|
21.11.2011, 18:29 | 44 |
У вас там добавление в конец:
Везде - просто оператор=, а в случае с вектором - не факт что нет реалока. Что касается указателя вместо итератора - для критичного к скорости места вполне себе приемлемо. Можно тайпдефом замаскировать под итератор для особо привередливых
0
|
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
21.11.2011, 18:30 | 46 |
Кстати, CEBEP, как ты вообще измеряешь время исполнения отдельных операторов? Ведь без точного времени исполнения непосредственно сравниваемых операторов нельзя получить коэффициенты.
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||||||
21.11.2011, 18:31 | 47 | |||||
Bers, Есть реаллок. Ну если одним куском памяти примерно одинаковая скорость будет.
0
|
108 / 108 / 23
Регистрация: 21.03.2010
Сообщений: 445
|
|
21.11.2011, 18:35 [ТС] | 49 |
а если отчебучить что-нибудь типа x = x << 1? Я к тому, что просто список что быстрее а что нет и так ясен - я расставил операции в эксперименте так, что всегда отношение или больше или близко к 1 с первого раза. Хочется знать именно отношение
Да, я видел в официальных источниках упоминания о том, что иногда они - просто T*, а иногда - вспомогательный класс. Дело в том, что мы практически наверняка будем компилировать всё на VisualStudio ещё очень долгое время, знание того, как поведёт себя именно она - в принципе достаточно. Да и тема такая, что для всех компиляторов её не исчерпать да и вряд ли это разумно.
0
|
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
21.11.2011, 18:35 | 50 |
Этим ты показал свой непрофессионализм. Вопрос как раз актуален при ручной оптимизации, сомнителен же только подход.
0
|
Заблокирован
|
|
21.11.2011, 18:37 | 52 |
Просто есть два типа людей:
1. Первые, если нужно увеличить производительность, находят самые упоротые алгоритмы, и заменяют их на более быстрые. 2. Вторые, вместо индексов массивов начинают юзать указатели, а вместо i++ писать ++i Если у первых не получается улучшить производительность, то они начинают смотреть на дата-ориентированное программирование, и в сторону таких языков, как СИ. У вторых ничего не получается в принципе. Потому что вся эта хрень - экономия на спичках.
0
|
108 / 108 / 23
Регистрация: 21.03.2010
Сообщений: 445
|
|
21.11.2011, 18:38 [ТС] | 53 |
кладу в а время перед исполнением первого, исполняю первый, сразу после кладу время в b, потом выполняю второй, кладу время в c. теперь b - a = время выполнения первого, c - b = второго.
0
|
Заблокирован
|
|
21.11.2011, 18:39 | 54 |
только без оптимизации разумеется, в дебаг версии да, на то оно и дебаг, компилятор прямолинеен. С -O3 и это утверждение будет неверным разумеется, а скорее всего и с -О1
Вобщем всё что ты написал неверно
0
|
108 / 108 / 23
Регистрация: 21.03.2010
Сообщений: 445
|
|
21.11.2011, 18:41 [ТС] | 55 |
первый пункт неиллюзорно сложен а книжки по математическим методам в нашей теме уже прочитаны. выдумывать своё - чуть менее чем защитить кандидатскую.
0
|
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|||||||||||||||||||||||||||||||||||||||||
21.11.2011, 18:44 | 56 | ||||||||||||||||||||||||||||||||||||||||
Это ты странный.
0
|
Заблокирован
|
|
21.11.2011, 18:47 | 57 |
Я вам советую сначала почитать Герба Саттера "Решение сложных задач на С++", где он как раз говорит про оптимизацию и проходится по таким "профессионалам", как вы, которые занимаются "ручной оптимизацией". Я могу вам на ушко сказать, где "ручная оптимизация" может вам пригодиться!
0
|
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
21.11.2011, 18:48 | 58 |
Ну ка найди в бусте решение для системы 1000*1000. Так вот, это ещё малыш. Я решал 17000*17000.
1
|
Заблокирован
|
|
21.11.2011, 18:48 | 59 |
Не нужно изобретать новые паттерны-алгоритмы.
Нужно просто поменять кусок упоротой архитектуры на другой, более быстрый. Смотришь, какой кусок программы выполняется дольше всех. и думаешь, как его можно оптимизировать. Например, скорость теряется из-за многочисленных левых расчетов - можно на таком участке закэшировать часть данных.
1
|
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|||||||||||
21.11.2011, 18:50 | 60 | ||||||||||
Серией? Или заменять удвоение одним сложением? А если выбор между
0
|
21.11.2011, 18:50 | |
21.11.2011, 18:50 | |
Помогаю со студенческими работами здесь
60
Доказать равенства, используя свойства операций над множествами и определения операций Сколько нужно провести операций, чтобы 13 операций подряд были успешными? Доказать равенства, используя свойства операций над множествами и определения операций Напечатать все знаки арифметических операций и операций отношения Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |