Я выполняю какую -то критическую работу в 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