Я принял онлайн для измерения производительности SSE.
#ifndef __TIMER_H__
#define __TIMER_H__
#pragma warning (push)
#pragma warning (disable : 4035) // disable no return value warning
__forceinline unsigned int GetPentiumTimer()
{
__asm
{
xor eax,eax // VC won't realize that eax is modified w/out this
// instruction to modify the val.
// Problem shows up in release mode builds
_emit 0x0F // Pentium high-freq counter to edx;eax
_emit 0x31 // only care about low 32 bits in eax
xor edx,edx // so VC gets that edx is modified
}
}
#pragma warning (pop)
#endif
Я сделал измерение на моем процессоре Pentium D E2200, и он отлично работает (он показывает, что инструкции с SSE быстрее совпадают). Но на моем i3-процессоре я получаю не выровненные инструкции быстрее 70% тестов.
Вы, ребята, думаете, что это измерение часов не подходит для процессора i3?