Плавающая точка против целочисленных расчетов на современном аппаратном обеспеченииC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Плавающая точка против целочисленных расчетов на современном аппаратном обеспечении

Сообщение Anonymous »

Я выполняю какую -то критическую работу в C ++, и в настоящее время мы используем целочисленные расчеты для проблем, которые по своей природе плавают, потому что «его быстрее». Это вызывает множество раздражающих проблем и добавляет много раздражающего кода. IIRC) что был дополнительный со-прокусор. Но, конечно же, в настоящее время с экспоненциально более сложными и мощными процессорами, это не имеет значения в «скорости», если вы делаете расчет с плавающей запятой или целочисленным целым числом? Тем более, что фактическое время расчета крошечное по сравнению с чем -то вроде призывы к трубопроводной стойке или что -то из основной памяти? Хороший способ проверить это? Я написал две крошечные программы C ++ и сравнил их время выполнения с «Time» на Linux, но фактическое время выполнения слишком переменное (не помогает, я работаю на виртуальном сервере). За исключением того, что весь мой день запускает сотни тестов, создание графиков и т. Д. Есть ли что -то, что я могу сделать, чтобы получить разумный тест на относительную скорость? Есть идеи или мысли? Я совершенно неправ? < /P>
Программы, которые я использовал следующим образом, они ни в коем случае не идентичны: < /p>
#include
#include
#include
#include

int main( int argc, char** argv )
{
int accum = 0;

srand( time( NULL ) );

for( unsigned int i = 0; i < 100000000; ++i )
{
accum += rand( ) % 365;
}
std::cout
#include
#include
#include
#include

int main( int argc, char** argv )
{

float accum = 0;
srand( time( NULL ) );

for( unsigned int i = 0; i < 100000000; ++i )
{
accum += (float)( rand( ) % 365 );
}
std::cout

Подробнее здесь: https://stackoverflow.com/questions/255 ... n-hardware
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»