![]() |
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]() ![]() ![]() |
|
Kuvaldis |
|
|||
![]() механик-вредитель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1189 Регистрация: 16.6.2006 Где: Минск Репутация: нет Всего: 61 |
Всем доброго времени суток
Есть проект, в котором тестится время работы блока: вычисление суммы эл-тов массива, а также скорость доступа в зависимости от доступа через индекс или через указатель Проблема в том, что работает не всегда корректно: через раз, через 2 выводятся нули, хотя этого быть НЕ ДОЛЖНО. Я не совсем врубаюсь, где я не прав. У меня VS 2005 Вот функция окна:
Причем такие приколы с Release версией С debug тоже есть прикол (хотя и не критичный) : в данном случае доступ через индеск получается быстрее (должно быть наоборот) Прикрепляю проект и хотел бы услышать конструктивную критику по теме. СУВ, Kuvaldis Это сообщение отредактировал(а) Kuvaldis - 24.7.2007, 22:04 Присоединённый файл ( Кол-во скачиваний: 4 ) ![]() -------------------- Помни - когда ты спишь, враг не дремлет Спи чаще и дольше, изматывай врага бессоницей |
|||
|
||||
dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 27 Всего: 158 |
вместо этого надо делать декремент dword'а в цикле в течение 1 миллисекунды, смотреть сколько "нащелкало" и потом соотносить это с твоим count1. ибо несколько десятков таких итераций врядли выйдут за пределы миллисекунды. первое, что попалось на глаза - очепятка: HightTime... ![]() ну а основной косяк - округление 64х-битного результата rdtsc до dword'а: DWORD time = HightTime(); а младший dword довольно интенсивно "колбасит" через 0. |
|||
|
||||
Kuvaldis |
|
|||
![]() механик-вредитель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1189 Регистрация: 16.6.2006 Где: Минск Репутация: нет Всего: 61 |
dumb,
Спасибо за помощь и толковые советы. Это помогло (поэтому репой по фейсу ![]() Но оставались несуразные цифры в вычислениях: т.е. вычисление контрольного участка по времени было соизмеримо с накладными затратами. Путем долгих мучений это было вылечено настройками оптимизации: 1. Оптимизация была просто отключена 2. Взведен флаг Inline Function Expansion в Any Suitable -------------------- Помни - когда ты спишь, враг не дремлет Спи чаще и дольше, изматывай врага бессоницей |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Системное программирование и WinAPI" | |
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |