194 / 174 / 30
Регистрация: 10.07.2012
Сообщений: 800

Разница в быстродействии версий С++

16.04.2013, 21:10. Показов 805. Ответов 4

Студворк — интернет-сервис помощи студентам
Добрый день.
Сейчас проделывал некий опус на liveworkspace и получил поразившие меня результаты.
Сей код...

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
template <class fType, class sType>
class Pair {
   public:
   
   Pair() { }
   ~Pair() { }
   Pair(fType& _first, sType& _second) {
      first = _first;
      second = _second;
   }
   
   template <fType, sType>
   friend ostream& operator<<(ostream& out, Pair <fType, sType>& obj);   
   template <fType, sType>
   friend istream& operator>>(istream& in, Pair <fType, sType>& obj);
   
   fType first;
   sType second;
};
 
template <class fType, class sType>
Pair<fType, sType> makePair(fType _first, sType _second) {
   return Pair <fType, sType> (_first, _second);
}
 
template <class fType, class sType>
ostream& operator<<(ostream& out, Pair <fType, sType>& obj) {
   out << obj.first << " " << obj.second;
   return obj;
}
   
template <class fType, class sType>
istream& operator>>(istream& in, Pair <fType, sType>& obj) {
   in >> obj.first >> obj.second;
   return in;
}
 
int main()
{
   Pair <int, int> p[100000001];
   for(int i=1; i <= 100000000; i++)
      p[i] = makePair(i, i+100);
   //system("pause");
   return 0;
}
...запускал для "С++: 4.8.0 (g++)" и "C++: 4.6.3 (g++)".
В первом случае время около 0.12, во втором - не выше 0.04...
Объяснить это себе я никак не смог. Тем более, что для "C++: 4.6.4 (g++)" время снова около 0.12...
Быть может, дело не в совсем объективном замере времени...
Аргументы компилятора во всех случаях одинаковы: "-std=c++0x -Wall -W -pedantic -O2".
Хотелось бы понять, в чем дело. Спасибо.
P.S. буду признателен и за помощь в отношении того, как можно ускорить код за счет исключительно языковых средств.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.04.2013, 21:10
Ответы с готовыми решениями:

Разница в быстродействии следующих запросов (см.внутри)
Чисто теоретически - есть ли разница в быстродействии следующих запросов: SELECT brandname, logo FROM brand WHERE idbrand=(SELECT...

Разница в быстродействии между персональным компьютером и сервером
Доброго времени суток. Есть ПК (мой) и есть сервер у Заказчика. На сервере работает OLTP-приложение на MS SQL Server, ну и ещё некоторое...

Разница версий компилятора
Доброго времени суток! Подскажите пожалуйста по паре вопросов. Я изучаю С (язык Си),и у меня дилеммой стал выбор версии компилятора. ...

4
 Аватар для Kastaneda
5232 / 3204 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
16.04.2013, 21:21
1. делать замеры времени на LWS вообще не советую, причин тут много начиная с того, что ты не знаешь каким образом замеряется время и заканчивая тем, что кроме твоей программы может быть запущенно еще 1000 других.
2. компилятор может смело сократить этот код до
C++
1
2
3
4
int main()
{
    return 0;
}
1
194 / 174 / 30
Регистрация: 10.07.2012
Сообщений: 800
16.04.2013, 21:47  [ТС]
я полагаю, что процесс замера не связан с конкретным компилятором никак. что касается 1000 параллельных программ - это опять же не влияет на конкретный компилятор, и запуск я производил многократн. а вот идея насчет сокращения кода - отличный вариант... Если быть уверенным, что это реально.
0
 Аватар для Kastaneda
5232 / 3204 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
16.04.2013, 21:56
Цитата Сообщение от salam Посмотреть сообщение
Если быть уверенным, что это реально.
Проверил, так оно и есть
Assembler
1
2
    xorl    %eax, %eax
    ret
добавь ключ -S, в выводе будет ассемблерный листинг.
0
Higher
 Аватар для diagon
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
16.04.2013, 23:36
4.8.0 таки действительно мощная штука.
Я как-то писал токенайзер плюсового кода, то есть не совсем сферического коня в вакууме. Оптимизировать там вроде как нечего было. Но при переходе с 4.7.2 на 4.8.0 скорость возросла в ~5 раз.
Есть, правда, предположение, что оно заинлайнило все мои коллбэки(которых дофига на каждый байт введенного текста) за счет более мощного lto.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.04.2013, 23:36
Помогаю со студенческими работами здесь

Разница в компиляторах разных версий
Пишу я код на Ideone, всё нормально компилируется, работает так, как надо. Захожу постить на e-olymp - ошибка source.hs:8:5: parse error on...

Разница версий Acer = Extensa vs Aspire
Здравствуйте, подскажите пожалуйста разницу между версиями ноутбука Extensa и Aspire, характеристики у них одинаковые цена тоже практически...

Какая разница в линейках версий Apache 1.3.x; 2.0.x и 2.2.x?
Какая между ними разница и почему поддерживаются целых три линейки? Есть ли разница для новичка? Навскидку, какое примерно процентное...

Разница LTS и неLTS версий, слежка за пользователями, состав пакетов
Здравствуйте. Уже давно принял решение установить операционную систему Linux. Имеется 2 компьютера, старый стационарник с плохими...

Вопрос о быстродействии компаратора.
Здравствуйте, господа! Верно ли я понимаю, что компаратор в МК -- суть &quot;обычный аналоговый компаратор&quot;. Однако, при тактовой...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

Новые блоги и статьи
50 самых полезных примеров кода Python для частых задач
py-thonny 17.06.2025
Эффективность работы разработчика часто измеряется не количеством написаных строк, а скоростью решения задач. Готовые сниппеты значительно ускоряют разработку, помогают избежать типичных ошибок и. . .
C# и продвинутые приемы работы с БД
stackOverflow 17.06.2025
Каждый . NET разработчик рано или поздно сталкивается с ситуацией, когда привычные методы работы с базами данных превращаются в источник бессонных ночей. Я сам неоднократно попадал в такие ситуации,. . .
Angular: Вопросы и ответы на собеседовании
Reangularity 15.06.2025
Готовишься к техническому интервью по Angular? Я собрал самые распространенные вопросы, с которыми сталкиваются разработчики на собеседованиях в этом году. От базовых концепций до продвинутых. . .
Архитектура Onion в ASP.NET Core MVC
stackOverflow 15.06.2025
Что такое эта "луковая" архитектура? Термин предложил Джеффри Палермо (Jeffrey Palermo) в 2008 году, и с тех пор подход только набирал обороты. Суть проста - представьте себе лук с его. . .
Unity 4D
GameUnited 13.06.2025
Четырехмерное пространство. . . Звучит как что-то из научной фантастики, правда? Однако для меня, как разработчика со стажем в игровой индустрии, четвертое измерение давно перестало быть абстракцией из. . .
SSE (Server-Sent Events) в ASP.NET Core и .NET 10
UnmanagedCoder 13.06.2025
Кажется, Microsoft снова подкинула нам интересную фичу в новой версии фреймворка. Работая с превью . NET 10, я наткнулся на нативную поддержку Server-Sent Events (SSE) в ASP. NET Core Minimal APIs. Эта. . .
С днём независимости России!
Hrethgir 13.06.2025
Решил побеседовать, с утра праздничного дня, с LM о завоеваниях. То что она написала о народе, представителем которого я являюсь сам сначала возмутило меня, но дальше только смешило. Это чисто. . .
Лето вокруг.
kumehtar 13.06.2025
Лето вокруг. Наполненное бурями и ураганами событий. На фоне магии Жизни, священной и вечной, неумелой рукой человека рисуется панорама душевного непокоя. Странные серые краски проникают и. . .
Популярные LM модели ориентированы на увеличение затрат ресурсов пользователями сгенерированного кода (грязь -заслуги чистоплюев).
Hrethgir 12.06.2025
Вообще обратил внимание, что они генерируют код (впрочем так-же ориентированы разработчики чипов даже), чтобы пользователь их использующий уходил в тот или иной убыток. Это достаточно опытные модели,. . .
Топ10 библиотек C для квантовых вычислений
bytestream 12.06.2025
Квантовые вычисления - это та область, где теория встречается с практикой на границе наших знаний о физике. Пока большая часть шума вокруг квантовых компьютеров крутится вокруг языков высокого уровня. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru