Модераторы: feodorv, GremlinProg, xvr, Fixin

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отмерить кол-во тактов, затраченных на выполнение 
V
    Опции темы
Rickert
Дата 29.4.2007, 07:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: нет
Всего: 52



Как отмерить кол-во тактов процессора, которые потребовались на выполнение функции или блока кода?
Можно конкретно под VS


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
W4FhLF
Дата 29.4.2007, 09:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


Профиль
Группа: Участник Клуба
Сообщений: 2831
Регистрация: 2.12.2006

Репутация: 12
Всего: 121



Код

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

    unsigned __int64 a, result;
    int b = 2;

    __asm {
        push eax
        push edx
        push esi

        lea esi,a
        rdtsc
        mov [esi],eax
        mov [esi+4],edx

        pop esi
        pop edx
        pop eax
    };
    for (int i = 0; i < 1000000000; i++)
        b = b << 2 ^ i >> 4;
    __asm {
        push eax
        push edx
        push esi
        push edi

        rdtsc
        lea esi,a
        sub eax,[esi]
        lea edi,result
        mov [edi],eax
        sbb edx,[esi+4]
        mov [edi+4],edx
        
        pop edi
        pop esi
        pop edx
        pop eax
    };

    char ch;
    std::cin >> ch;
    return 0; 
}


Ну тут ещё под будет погрешность в кол-во тиков, которые занимают вот эти команды:

Код

...
        mov [esi],eax
        mov [esi+4],edx

        pop esi
        pop edx
        pop eax
...
...
        push eax
        push edx
        push esi
        push edi
...


Можешь отдельно посчитать за сколько тиков они выполняются и искусственно отнимать это значение.

Это сообщение отредактировал(а) W4FhLF - 29.4.2007, 09:11


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
MAKCim
Дата 29.4.2007, 09:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 1
Всего: 207



конкретно на ассемблере
Код

    rdtsc
    mov ecx, eax
...
    rdtsc
    sub eax, ecx ; eax contains count of CPU's clock ticks

в WinAPI есть по-моему функции
QueryPerformanceCounter(), GetTicksCount()

Добавлено через 1 минуту и 24 секунды
W4FhLF
зачем так сложно?


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
W4FhLF
Дата 29.4.2007, 09:22 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


Профиль
Группа: Участник Клуба
Сообщений: 2831
Регистрация: 2.12.2006

Репутация: 12
Всего: 121



MAKCim, что именно тебе показалось сложным? rdtsc читает 64х разрядный счётчик из MSR10h и возвращает его в edx:eax, поэтому если между вызовами rdtsc проходит больше FFFFFFFFh тиков("тактов"), твой код работает неправильно. 

Это сообщение отредактировал(а) W4FhLF - 29.4.2007, 09:24


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
GremlinProg
Дата 29.4.2007, 10:44 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2706
Регистрация: 9.8.2005
Где: Тюмень

Репутация: 99
Всего: 106



rdtsc и QueryPerformanceCounter() - это одно и то же. Одна проблема у них, не считают они время ядра, обе возвращают только время вне ядра(пользовательское). Чтобы посчитать фактическое время выполнения любого кода, нужно использовать функцию GetTicksCount, но она вернет сразу количество милисекунд, т.е., чтобы перевести в тики, нужно получить текущую частоту перфоманс-счетчика(QueryPerformanceFrequency/1000) и умножить на неё, полученное время, и то, это будет не точным значением, но позволит замерить относительную производительность. Частоту делим на 1000, чтобы получить число тиков в милисекунду.

Добавлено через 9 минут и 5 секунд
кстати, если кто-то сомневается, вызовите Sleep на пару секунд внутри блока замера. При слипе происходит переключение задач, все время, которое уходит на слип - это время работы ядра, а не программы, оно учтено не будет. Это простой пример. В основе любой программы время ядра распределено по-разному, поэтому мерить его необходимо тоже.


--------------------
"Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины."
PM WWW ICQ   Вверх
W4FhLF
Дата 29.4.2007, 11:08 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


Профиль
Группа: Участник Клуба
Сообщений: 2831
Регистрация: 2.12.2006

Репутация: 12
Всего: 121



GremlinProg, что за бред ты несёшь? Ботай умные книги и впредь не неси такой ахинеи. 


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
GremlinProg
Дата 29.4.2007, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2706
Регистрация: 9.8.2005
Где: Тюмень

Репутация: 99
Всего: 106



Во первых, за бред ты уже получил минус, во вторых, ближе к сути.


--------------------
"Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины."
PM WWW ICQ   Вверх
W4FhLF
Дата 29.4.2007, 11:36 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


Профиль
Группа: Участник Клуба
Сообщений: 2831
Регистрация: 2.12.2006

Репутация: 12
Всего: 121



GremlinProg, хаха... Парень, ну если ты так в себе самоуверен, хотя не понимаешь элементарных вещей, то я даже не знаю с чего начать... В каждом твоём утверждении есть ошибки, причём настолько глупые, что зная ты то, что знаю, посмеялся бы над ними вместе со мной. Я думаю рейтинг мой тебе лучше исправить, а сообщение своё удалить, автора темы оно только запутает и никакой пользы не принесёт, в личку я дам тебе информацию и некоторые объяснения, ты всё сразу поймёшь. Или я могу в этой теме легко доказать твою дисскуссионную несостоятельность, только потом без обид. Что выбираешь?smile 

Это сообщение отредактировал(а) W4FhLF - 29.4.2007, 11:37


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
GremlinProg
Дата 29.4.2007, 11:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2706
Регистрация: 9.8.2005
Где: Тюмень

Репутация: 99
Всего: 106



Ты уж поверь мне, я проверил сей факт на реальных задачах, а не на высказываниях, подобных твоим, так что менять я ни чего не собираюсь.


--------------------
"Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины."
PM WWW ICQ   Вверх
Tectoder
Дата 29.4.2007, 11:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 202
Регистрация: 13.3.2007

Репутация: 7
Всего: 8



Цитата(GremlinProg @  29.4.2007,  10:44 Найти цитируемый пост)
Одна проблема у них, не считают они время ядра, обе возвращают только время вне ядра(пользовательское). 
Ты даже не представляешь, насколько технически сложно это реализовать так что бы производительность системы не упала при этом в несколько раз.
W4FhLF, молодец, но плюс поставить не могу, не дорос еще.

Это сообщение отредактировал(а) Tectoder - 29.4.2007, 11:46
PM   Вверх
MAKCim
Дата 29.4.2007, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 1
Всего: 207



Цитата(GremlinProg @  29.4.2007,  11:42 Найти цитируемый пост)
Ты уж поверь мне, я проверил сей факт на реальных задачах, а не на высказываниях, подобных твоим, так что менять я ни чего не собираюсь. 

ты крайне не прав
для начала бы посмотрел, что такое Time Stamp Counter, и не говорил глупостей
изменение значения этого счетчика вообще говоря не зависит от CPL (user mode, kernel mode)
процессор увеличивает значение этого счетчика при каждом clock cycle

Добавлено через 2 минуты и 43 секунды
W4FhLF
ну да, все верно
просто для небольших фрагментов кода я не думаю, что количество циклов системных часов будет больше 0xFFFFFFFF 


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
W4FhLF
Дата 29.4.2007, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


Профиль
Группа: Участник Клуба
Сообщений: 2831
Регистрация: 2.12.2006

Репутация: 12
Всего: 121



GremlinProg, ну тогда запасайся терпением пареньsmile

Ну во-первых, если бы ты знал архитектуру процессора хотя бы на среднем уровне, то был бы в курсе, что rdtsc считывает значение одного из MSR регистров процессора(под номером 10h), этот регистр есть ни что иное, как внутрипроцессорный счётчик, который инкрементируется самим процессором, это целиком и полностью внутрипроцессорный механизм. На WinXP и выше(вроде даже на Win2k, но на память сказать не могу) QueryPerformanceCounter использует HPIT таймер, если он аппратано поддерживает, в противном случае используется PM таймер. Оба таймера располагаются на материнской плате. 
Оба эти механизма реализованы аппаратно и на этом уровне абсолютно всё равно на каком кольце привелегий выполняется код, счётчик в процессоре будет инкрементироваться, а таймер на мат.плате генерировать прерывания. 

Сможешь опровергнуть то, что я написал выше - будем вести беседу дальше. 



--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
GremlinProg
Дата 29.4.2007, 12:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2706
Регистрация: 9.8.2005
Где: Тюмень

Репутация: 99
Всего: 106



Хорошо, спорить не буду, сейчас не могу повторить свой прошлый эксперимент, работаю в другом проекте. Минус не исправлю, просто потому, что было оскорбление. Но поставлю плюс, если мои слова не подтвердятся. Скажу лишь, что замеры производились при разреженном по потокам рисовании в дибы, каждый отдельный диб - это слой конечного образа, которые при рисовании собирались в один, путем прозрачного наложения, вычислений было много, каждый поток реализовывал свой метод, каждый поток имел свою нагрузку, тратил различное время. Замеры вычилялись перфоменсом и тиком. При больших нагрузках перфоменс считал только время потока, без учета простоя при конкуренции, тик считал све стабильно и правильно.


--------------------
"Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины."
PM WWW ICQ   Вверх
MAKCim
Дата 29.4.2007, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 1
Всего: 207



Tectoder
Цитата(Tectoder @  29.4.2007,  11:43 Найти цитируемый пост)
Ты даже не представляешь, насколько технически сложно это реализовать так что бы производительность системы не упала при этом в несколько раз.

это уже реализовано на уровне архитектуры (Performance Monitoring (см. IA-32 System Programming Manual))

Добавлено через 2 минуты и 43 секунды
Цитата(W4FhLF @  29.4.2007,  12:09 Найти цитируемый пост)
HPIT таймер

что это?
знаю APIC таймер, внешний 8252 совместимый таймер, а о таком не слышал


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
W4FhLF
Дата 29.4.2007, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


Профиль
Группа: Участник Клуба
Сообщений: 2831
Регистрация: 2.12.2006

Репутация: 12
Всего: 121



Цитата(GremlinProg @  29.4.2007,  12:10 Найти цитируемый пост)
Минус не исправлю, просто потому, что было оскорбление.


Где было оскробление? Где? Покажи! Я лишь констатировал факт. Твоё незнание архитектуры системы и процессора - это твоя проблема, а не моя, вот и разбирайся в ней сам, а не метай стрелки. А если будут вопросы - создавай тему, помогу, чем смогу. В пределах данного топика твоего сообщение смотрелось бредово, потому, что твои рассуждения неверный и в любом случае ни GetTickCount, ни QueryPerformanceCounter не дают возможность !!!ИЗМЕРИТЬ КОЛ-ВО ТАКТОВ!!!!, именно это было нужно автору и именно rdtsc с некоторой степенью точности решает эту проблему!

Добавлено через 1 минуту и 43 секунды
Цитата(MAKCim @  29.4.2007,  12:14 Найти цитируемый пост)
что это?знаю APIC таймер, внешний 8252 совместимый таймер, а о таком не слышал


Пардон, HPET(High Precision Event Timers).

http://en.wikipedia.org/wiki/High_Precision_Event_Timer


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
GremlinProg
Дата 29.4.2007, 12:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2706
Регистрация: 9.8.2005
Где: Тюмень

Репутация: 99
Всего: 106



W4FhLF, о чем ты интересно ведешь речь? О разнице между rdtsc и QueryPerformanceCounter, или о своей отменной скорости чтения книжек, у меня зубков лежит перед глазами, я и сам прекрасно могу прочитать об RDTSC, что, кстати я и сделал перед своим первым постом. Теперь я тебе плюс точно не поставлю, учись уважать собеседника.


--------------------
"Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины."
PM WWW ICQ   Вверх
W4FhLF
Дата 29.4.2007, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


Профиль
Группа: Участник Клуба
Сообщений: 2831
Регистрация: 2.12.2006

Репутация: 12
Всего: 121



GremlinProg, авторитет собеседника начинает падать в моих глазах, когда он пытается доказать что-то, чего он сам до конца не понимает, а вкупе с мальчишеской бронью в плане нежелания признать свою неправоту авторитет сводится в нулю, потому и у меня пропадает интерес. Давно бы поставил тебе минус, но считаю, что репа - это только твои положительные заслуги и свою личную неоправданную неприязнь переносить на рейтинг просто глупо. 
А вот с Зубковым правильно, почаще читай его. 


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
GremlinProg
Дата 29.4.2007, 12:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2706
Регистрация: 9.8.2005
Где: Тюмень

Репутация: 99
Всего: 106



Первое, с чего ты начал, это понижения моего авторитета вглазах других собеседников. Я ни кому это не позволял и позволять не буду. Ответная реакция не заставила себя долго ждать. Вместо того, чтобы спросить, почему я так считаю, ты сразу перешел в наступление, ну и чье тут ребячество проявляется? А свои слова я уже четко аргументировал. Тебе стоило просто извиниться за резкость с твоей стороны и мы бы мирно решили разногласия, тем более, я не думаю, что твои твои аргументы сильно противоречат моим, у нас просто разный взгляд на вещи. Бросаться обвинениями в некомпетентности было просто глупо, у меня за плечами большой опыт работы.


--------------------
"Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины."
PM WWW ICQ   Вверх
Rickert
Дата 29.4.2007, 13:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: нет
Всего: 52



Ну у вас тут детский сад, штаны на лямках: за минусы, плюсы боретесь smile 
W4FhLF, Спасибо

Solved

Это сообщение отредактировал(а) Rickert - 29.4.2007, 13:01


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
MAKCim
Дата 29.4.2007, 13:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 1
Всего: 207



Цитата(GremlinProg @  29.4.2007,  12:43 Найти цитируемый пост)
Вместо того, чтобы спросить, почему я так считаю, ты сразу перешел в наступление, ну и чье тут ребячество проявляется?

в том то и дело, что ты выдаешь за факт то, что фактом не является
если бы ты начал с фразы 
"Мне кажется...",
"Могу предположить, что...",
"ИМХО, ..." и пр., то я думаю вопрос решился бы тихо и мирно
Цитата(GremlinProg @  29.4.2007,  12:43 Найти цитируемый пост)
А свои слова я уже четко аргументировал

это не аргумент, а личные наблюдения (имхо) и их нельзя выдавать за факт, точнее это факт, но локального характера, который не претендует на обобщенность, всегда есть куча факторов, которые могли повлиять на работу твоей программы

Это сообщение отредактировал(а) MAKCim - 29.4.2007, 13:03


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
W4FhLF
Дата 29.4.2007, 13:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


Профиль
Группа: Участник Клуба
Сообщений: 2831
Регистрация: 2.12.2006

Репутация: 12
Всего: 121



Цитата(GremlinProg @  29.4.2007,  12:43 Найти цитируемый пост)
Первое, с чего ты начал, это понижения моего авторитета вглазах других собеседников. Я ни кому это не позволял и позволять не буду. Ответная реакция не заставила себя долго ждать. Вместо того, чтобы спросить, почему я так считаю, ты сразу перешел в наступление, ну и чье тут ребячество проявляется?


Не путай понятия. На фоне самого рационального решение, которое было предложено мною и MAKCim'om двуя постами выше ты берёшь и опровергаешь его правильность, приводя неверные доводы и вообще заставляя думать автора в другом направлении, после чего пытаешься мне доказать свою компетентность в этой области? Выводы о твоей некомпетентности в этом вопросе я сделал исходя из твоих сообщений и, видимо, при этом задел твоё самолюбие. Но это уже всё твои личные проблемы, мне всё равно. Решение проблемы было предложено вь втором посте, тему считаю исчерпанной. 



--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
MAKCim
Дата 29.4.2007, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 1
Всего: 207



Цитата(GremlinProg @  29.4.2007,  12:24 Найти цитируемый пост)
я и сам прекрасно могу прочитать об RDTSC, что, кстати я и сделал перед своим первым постом

OK
Цитата

Помещает в регистровую пару EDX:EAX текущее значение счетчика тактов - 64-битного машинно-специфичного регистра TSC, значение которого увеличивается на 1 каждый такт процессора с момента его последней перезагрузки

где тут про режим ядра и пользовательский режим написано?  smile 


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
GremlinProg
Дата 29.4.2007, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2706
Регистрация: 9.8.2005
Где: Тюмень

Репутация: 99
Всего: 106



MAKCim, с каких это пор практический опыт не является аргументом, скажи мне, чему ты поверишь, тому что написано в книжке, или тому, что ты видишь в работающей системе, собранной своими же руками? Я конечно понимаю, что если ты и ответишь, то ответ будет в рамках приоритетности, которую ты уже выбрал(ты ведь поддерживаешь W4FhLF).
Я вообще не особо дерусь за плюсы, говорил ведь уже, если уж я и отвечаю на что-то, значит в этом вопросе я сам принимал участие и у меня есть время. Вот этот пост был основой дискуссии 
Цитата

в WinAPI есть по-моему функции
QueryPerformanceCounter(), GetTicksCount()

Добавлено через 1 минуту и 24 секунды
W4FhLF, 
зачем так сложно? 
 
Я его поддерживал и W4FhLF, только не нужно говорить, что каждый специалист должен активно использовать асм в своем коде, это не так, асм нужен только там, где нет более простого выхода, в этом, я с MAKCim согласен, жертвовать удобочитаемостью кода ради "мальчишеской брони", как сказал W4FhLF...

PS: ИМХО - мы ведь все прекрасно знаем как эта абревеатура расшифровывается, зачем её использовать на каждом шагу, это невежливо.


--------------------
"Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины."
PM WWW ICQ   Вверх
MAKCim
Дата 29.4.2007, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 1
Всего: 207



Цитата(GremlinProg @  29.4.2007,  13:27 Найти цитируемый пост)
MAKCim, с каких это пор практический опыт не является аргументом, скажи мне, чему ты поверишь, тому что написано в книжке, или тому, что ты видишь в работающей системе, собранной своими же руками?

если то, что я увижу, будет противоречить официальной документации, буду у себя баг искать (честно)



--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
GremlinProg
Дата 29.4.2007, 15:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2706
Регистрация: 9.8.2005
Где: Тюмень

Репутация: 99
Всего: 106



Цитата(MAKCim @  29.4.2007,  16:56 Найти цитируемый пост)
если то, что я увижу, будет противоречить официальной документации, буду у себя баг искать (честно)

я тоже ), но только если, разложив все по полочкам, раз-за-разом  не буду убеждаться в обратном.


--------------------
"Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины."
PM WWW ICQ   Вверх
archimed7592
Дата 29.4.2007, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: нет
Всего: 93



Цитата(GremlinProg @  29.4.2007,  13:27 Найти цитируемый пост)
PS: ИМХО - мы ведь все прекрасно знаем как эта абревеатура расшифровывается, зачем её использовать на каждом шагу, это невежливо. 
в чем заключается невежливость?

Цитата(GremlinProg @  29.4.2007,  12:24 Найти цитируемый пост)
у меня зубков лежит перед глазами
ой, ребятки... не читайте Зубкова...
у меня вот в своё время перед глазами лежали IA-32 manual и зубков... зубков есть не что иное как перевод первого с кучей косяков и отсебятины... хотя... если всё воспринимать абстрактно, то при незнании английского почитать можно... ИМХО


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
dizzy1984
Дата 1.5.2007, 09:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 675
Регистрация: 15.2.2007

Репутация: нет
Всего: 25



Встречал вот такой вариант.
Вроде рабочий.
Код

volatile unsigned __int64 RDTSC()
{              
     __asm __emit 0fh __asm __emit 0a2h 
     __asm __emit 0fh __asm __emit 031h 
}


Это сообщение отредактировал(а) dizzy1984 - 1.5.2007, 09:28
PM MAIL   Вверх
MAKCim
Дата 1.5.2007, 09:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 1
Всего: 207



dizzy1984
зачем CPUID?

Это сообщение отредактировал(а) MAKCim - 1.5.2007, 09:32


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
dizzy1984
Дата 1.5.2007, 09:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 675
Регистрация: 15.2.2007

Репутация: нет
Всего: 25



Посмотрел что ты имеешь в виду. 
Качал этот код из интернета и был уверен, что он только возвращает значение TSC.
Звиняйте.

Код

volatile unsigned __int64 RDTSC()    
{
     __asm __emit 0fh __asm __emit 031h    
}


Зачем он там был я не знаю.
Поленился проверить.  smile 

PM MAIL   Вверх
W4FhLF
Дата 4.5.2007, 13:30 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


Профиль
Группа: Участник Клуба
Сообщений: 2831
Регистрация: 2.12.2006

Репутация: 12
Всего: 121



Цитата(MAKCim @  1.5.2007,  09:30 Найти цитируемый пост)
зачем CPUID?


Вообще правильно. Обычно, перед вызовом rdtsc, принято убеждаться в том, что все предыдущие операции были выполнены процессором. CPUID может быть выполнена только в случае завершённости все остальных инструкций(находящихся в очереди, на других конвейерах, в других блоках etc.), т.о. вызывая rdtsc после cpuid мы получаем более точные данные. 


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
MAKCim
Дата 4.5.2007, 14:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 1
Всего: 207



W4FhLF
точно, инструкция сериализации, совсем забыл  smile 


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
Страницы: (3) [Все] 1 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.1245 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.