Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.11.2010, 10:53   #1
ChaosDev
Новичок
Джуниор
 
Регистрация: 19.11.2010
Сообщений: 3
Лампочка Сравнение быстродействия

Здравствуйте. Я первый раз на этом форуме. Я программист среднего уровня на C#, знаю С++(изучал 1 год) и чуть чуть ассемблер..
Итак, проснулся я сегодня и решил поставить перед собой задачу.
Сравнить быстродействие 3 кусков кода в консольном С++ приложении
Соответсвенно эти 3 куска кода выполняют некоторую одинаковую математическую операцию.
Первый метод это - код на С++ для тестирования быстродействия компилятора(visual studio 2010)
Второй метод - реализация этого кода вручную ассемблере
Третий метод - тоже самое что и второй метод но с использованием MMX или SSE инструкций (у меня старенький core2 duo E4300 соответсвенно он поддерживает MMX, SSE(1, 2, 3, 3S) и EM64T.)

Вот проблема я чего-то немогу придумать математическую задачу которую я могу реализовать вручную на ассемблере(т.к у меня плохие знания этого языка) и получить разницу во времени с помощью clock()
Приблизительно, я хочу чтобы функция выполнялась секунд 5.
Код выглядит так

Код:
#include <stdio.h>
#include <tchar.h>
#include <conio.h>
#include <math.h>
#include <time.h>
#include <xmmintrin.h>


//метод с реализацией кода компилятором
void CalcCPU()
{
	for(int i = 0; i < 10000; i++)
	{
          
	}
}

//метод с обычными ассемблерными инструкциями
void CalcCPUASM()
{
	for(int i = 0; i < 10000; i++)
	{
		_asm
		{
			
		}
	}
}


//метод с MMX/SSE инструкциями
void CalcCPUASMEx()
{
	for(int i = 0; i < 10000; i++)
	{
		_asm
		{
			 
		}
	}
}

int _tmain(int argc, _TCHAR* argv[])
{
	clock_t start,finish;
	double duration;

	start = clock();
	CalcCPU();
	finish = clock();
	duration = (double)(finish - start) / CLOCKS_PER_SEC;
    printf( "CalcCPU = %2.5f seconds\n", duration );

	start = clock();
	CalcCPUASM();
	finish = clock();
	duration = (double)(finish - start) / CLOCKS_PER_SEC;
    printf( "CalcCPUASM = %2.5f seconds\n", duration );

	start = clock();
	CalcCPUASMEx();
	finish = clock();
	duration = (double)(finish - start) / CLOCKS_PER_SEC;
    printf( "CalcCPUASMEx = %2.5f seconds\n", duration );

	_getch();
	return 0;
}

Последний раз редактировалось ChaosDev; 19.11.2010 в 11:04.
ChaosDev вне форума Ответить с цитированием
Старый 19.11.2010, 11:05   #2
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,139
По умолчанию

ChaosDev
С этим вопросом лучше сходить на WASM.RU/FORUM

Последний раз редактировалось rpy3uH; 19.11.2010 в 13:03.
Mikl___ вне форума Ответить с цитированием
Старый 19.11.2010, 11:33   #3
ChaosDev
Новичок
Джуниор
 
Регистрация: 19.11.2010
Сообщений: 3
По умолчанию

Я подписался на эту тему.. может я все же получу ответ ? http://www.wasm.ru/forum/viewtopic.php?id=39320
ChaosDev вне форума Ответить с цитированием
Старый 19.11.2010, 12:29   #4
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,139
По умолчанию

ChaosDev
а поиском на WASM.RU/FORUM воспользоваться не пытался? Будет кому-то твоя тема интересна обязательно ответят -- там очень быстро реагируют
Mikl___ вне форума Ответить с цитированием
Старый 19.11.2010, 14:32   #5
ChaosDev
Новичок
Джуниор
 
Регистрация: 19.11.2010
Сообщений: 3
По умолчанию

Mikl___
Во первых на Ты с незнакомыми людьми не говорят.
Во вторых если бы я знал что искать, я бы нашел.
ChaosDev вне форума Ответить с цитированием
Старый 22.11.2010, 03:32   #6
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,139
По умолчанию

ChaosDev и я после этого должен, чем-то помогать?
Mikl___ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопросы в основном по оптимизации быстродействия. Morkonwen Visual C++ 24 15.07.2010 02:35
сравнение slavsmo Microsoft Office Excel 2 05.04.2010 17:51
Вопрос быстродействия _Денис C++ Builder 1 14.11.2009 17:00
Сравнение быстродействия алгоритмов Pti44ka Помощь студентам 9 13.11.2009 13:41
Падение быстродействия в макросе skif93 Microsoft Office Excel 8 12.04.2009 14:49