Форум программистов, компьютерный форум, киберфорум
Наши страницы

RDTSC или как замерять количество тактов CPU на некоторые вычисления? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Инкремент в рекурсии http://www.cyberforum.ru/cpp-beginners/thread636286.html
Ребят, что-то не могу врубиться. Задача: используя рекурсию выводить введенный ранее текст в обратном порядке. Вот рабочая версия: #include <iostream> using namespace std; void...
C++ Статические библиотеки и Visual studio 1) Создала новый проект как статическая библиотека без предкомпилированных заголовков. 2) Написала некоторые функции. 3) Выставила релиз версию. 4) Собрала проект. На выходе получила lib... http://www.cyberforum.ru/cpp-beginners/thread636283.html
C++ "Порядковый номер" для каждого экземпляра класса?
Добрый вечер! Кто знает C++. Подскажите пожалуйста, сейчас застрял на задаче, где нужно создать "порядковый номер" для каждого создаваемого экземпляра класса. В коде который ниже на экран...
C++ Найти номера наиболее и наименее удаленных друг от друга точек
В одномерном массиве с четным количеством элементов (2N) находятся координаты N точек плоскости. Они располагаются в следующем порядке: x1, у1, х2, у2, x3, y3 и т.д. Найти номера наиболее и наименее...
C++ Дефрагментация и FSCTL_MOVE_FILE http://www.cyberforum.ru/cpp-beginners/thread636252.html
Делал так как пишет мсдн http://msdn.microsoft.com/en-us/library/windows/desktop/aa363911(v=vs.85).aspx откуда брать параметры для FSCTL_MOVE_FILE int GetClusters(const char* name,bool d) {...
C++ Алгоритм быстрой сортировки против пузырька Решил проверить утверждение, что быстрая сортировка намного эффективнее пузырьковой. Результат пузырька увидел почти сразу, а быстрой сортировки ждал пару минут и выключил. В чём дело? Ошибка в... подробнее

Показать сообщение отдельно
returnless
26 / 26 / 3
Регистрация: 05.08.2012
Сообщений: 83
12.08.2012, 12:49  [ТС]
сделал так, кроме того запустил release версию она показала 12-19 тактов. теперь думаю норм.
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
35
36
37
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
int main() 
{
 
    unsigned clock = 0;
    float x = 1.0f;
    float y = 2.0f;
    float z = 3.0f;
    float length = 0.0f;
    int average = 0;
 
    for (int i = 0; i<10; i++) 
    {
    __asm rdtsc;
    __asm mov [clock], eax;
 
    // вычисляем длину вектора
    length = sqrtf(x*x + y*y + z*z);
 
 
    __asm rdtsc;
    __asm sub eax,[clock];
    __asm mov [clock], eax;
 
    // количество тактов процессора на вычисления
    printf("pass %u clock %u\n", i, clock);
    average += clock;
    };
    printf("average clock %u\n", (int)(average / i));
 
    system("pause");
 
    return 0;
}
еще вопрос как мне переделать вот этот квадратный корень на msvc ?
C++
1
2
3
4
5
6
7
8
9
//5 cycles (11 bits precision)
inline float very_fast_sqrt(float f) {
    asm("movss  (%%eax), %%xmm0;"
        "rsqrtss %%xmm0, %%xmm0;"
        "rcpss   %%xmm0, %%xmm0;"
        "movss   %%xmm0, (%%eax);"
        ::"a"(&f):"xmm0","memory");
    return f;
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru