Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
KeyGen
383 / 290 / 6
Регистрация: 07.08.2011
Сообщений: 789
Записей в блоге: 1
#1

double быстрее всех? - C++

19.09.2012, 20:42. Просмотров 615. Ответов 1
Метки нет (Все метки)

В книге Прата написано что int быстрей... я не поверил на слово и решил проверить.
Написал простую программу:

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
#include <iostream>
#include <time.h>
 
template<class T> void frequency_of_primes (int n, T number) {
    
    T Ttemp;
    for(int i = 0; i<n; i++)
    {
        Ttemp = number * number;
        Ttemp = number / number;
        Ttemp = number + number;
        Ttemp = number - number;
    }
}
 
int main ()
{
  std::cout << "Calculating...\n";
  
  //char temp = 2;      // char = 5.8
  //short temp = 2;     // short = 5.77
  //int temp = 2;       // int = 5.5
  //long temp = 2;      // long = 5.5
  //long long temp = 2; // long long = 18.53
  
  double temp = 2.0; // double = 4.82
  //float temp = 2.0; // float = 5.59
  
  frequency_of_primes (999999999, temp);
  
  std::cout << "Мне потребовалось: " << ((float)clock())/CLOCKS_PER_SEC << " секунд.\n";
  std::cin.get();
  return 0;
}
Вот что получилось:

char = 5.8 (сек.)
short = 5.77 (сек.)
int = 5.5 (сек.)
long = 5.5 (сек.)
long long = 18.53 (сек.)

double = 4.82 (сек.) !!!
float = 5.59 (сек.)

_________________________________
Проц: 2x2.3
Компилятор: gcc 4.7
Cистема: Linux 32(86)

Не верю глазам. Может что не так в программе?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.09.2012, 20:42     double быстрее всех?
Посмотрите здесь:

typedef double (*d)(double); - C++
//--------------------------------------------------------------------------- #include &quot;math.h&quot; #include &lt;stdio.h&gt; #include...

Перевод double to double - C++
Всем привет! проблема такая : Есть вектор типа double. Из него надо считать число в переменную, которая тоже имеет тип double. Считываю...

Структуры. По запросу выдать: всех женщин, сменивших свою фамилию, всех военнообязанных, всех холостых - C++
к сожалению сама не могу сообразить как решить вот такую задачку: В файле хранятся структуры, элементами которых являются: структура,...

Как быстрее? - C++
Как быстрее создавать двумерный массив размером NxM: вызвать один раз new с аргументом NxM или же создавать массив указателей размером N, а...

Умножение - что быстрее - C++
1) a = 0; a = x * y; 2)a = 0; for (int i = 0; i &lt; y; ++i) { a += x; } И, если второй вариант быстрее, при каких Y он...

Что выполняется быстрее? - C++
Что выполняется быстрее (в первом случае идет вычисление адреса элемента массива, а во втором вычисляется сам элемент, причем известно что...

Быстрее чем цикл - C++
Доброго времени уток дорогие форумчане. Интересует вот какая штуковина, допусти есть программа которая открывает два файла, смотрит на...

Что работает быстрее? - C++
Подскажите пожалуйста, какая из данных реализаций будет работать бытрее? int a = 5; int b = 3; int c = 4; int d,e,f; ...

Какой swap быстрее? - C++
добрый день. возможно, вопрос глупый (или обсуждался уже, не искал, но все же), что будет быстрее, вот такое: void swap2(int* a, int* b)...

Что работает быстрее? - C++
Здравствуйте! Друзья, что лучше (правильнее) использовать: for(int i=0; i&lt;strlen(ABC); ++i) {} или int i=0; int...

C# работает быстрее чем С++ - C++
имеется файл типа 6 1.0 2.0 3.0 4 5 6 7 1.0 2.0 3.0 4 5 6 7 1.0 2.0 3.0 4 5 6 7 1.0 2.0 3.0 4 5 6 7 1.0 2.0 3.0 4 5 6 7 1.0...

Что быстрее: i++ или ++i ? - C++
Только что прочитала в интернете, что префиксный итератор быстрее, чем постфиксный. Так ли это? Если так и если в С++ все есть обьект, то...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
OhMyGodSoLong
~ Эврика! ~
1243 / 992 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
19.09.2012, 20:49     double быстрее всех? #2
Всё нормально. long long не влазит в один регистр, только в два, поэтому есть тормоза. double множится-делится сопроцессором, он специализированный, у него получается это делать быстрее (для чисел с плавающей запятой). double лучше подходит под размер его регистров, поэтому работает чуть быстрее float.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru