Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Зависание Thread-ов в функциях TMemoryManager (Delphi 2005) [WinXP]


Ученик ©   (2005-07-22 22:05:00) 

Кто-нибудь сталкивался с этим на процессорах с HyperThreading ?
Как "лечили" ?


Ученик   (2005-07-26 22:11:00) [1]

Похоже надо было задавать вопрос в WinApi, может модераторы переместят ?

Есть подходящее продолжение.

Выше было написано, что текущий вариант решения проблемы  -установка одного разрешенного процессора через SetProcessAffinityMask - устанавливается первый процессор, но хотелось бы устанавливать процессор на котором выполняется главный Thread (MainThreadID), отсюда вопрос

Как узнать номер по порядку текущего процессора ?

В Windows 2003 есть функция GetCurrentProcessorNumber, а как быть в предыдущих версиях ?


Ученик   (2005-07-25 07:17:00) [2]

>jack128 ©   (24.07.05 23:07) [4]
 Проблема была обнаружена при открытии формы на которой есть  TcxFontNameComboBox (потом в другой форме с поиском в отдельном thread) и проблема видимо "плавающая" - на компьютере более "старом" (тоже с HT), ее не было.

>Юрий Зотов ©   (24.07.05 23:56) [5]
Боюсь, что с отладчиком это не связано, отладчик подключался к работающему приложению, когда приложение "зависало".


Юрий Зотов   (2005-07-24 23:56:00) [3]

> jack128 ©   (24.07.05 23:07) [4]

Исходники у Макса. Там есть мой служебный класс - имитатор TThread, но работающий в основном потоке. Был сделан именно по причине жутких тормозов, иначе отлаживаться было практически невозможно. Предполагалось, что отладка идет с ним, а рабочий вариант компилируется уже с нормальным потоком. Там это как-то очень легко переключается, в одном месте, найдешь без проблем.

> Ученик   (24.07.05 20:57) [3]

Подозреваю, что это какая-то проблема взаимодействия дебаггера с XP и гипертрейдингом. А кто из них в этом виноват - дело темное.

Под ХP встречается еще одна проблема - дебаггер не видит символьных таблиц в DLL (причем после повторной загрузки этих таблиц все идет ОК).


jack128   (2005-07-24 23:07:00) [4]

Юрий Зотов ©   (24.07.05 20:10) [2]
Сталкивался в D7 под XP (точнее, были не зависания, а жуткие тормоза - минут по 5-8). Лечил отключением гипертрейдинга

воспроизводимый пример есть?


Ученик   (2005-07-24 20:57:00) [5]

>tesseract ©   (24.07.05 19:58) [1]
Проблема именно в HyperThreading или нескольких процессорах (не проверял), при его отключении или установки одного разрешенного процессора для программы (текущий вариант) проблема уходит.

Насчет фичи не понял, вопрос был Как "лечили" ?

>Юрий Зотов ©   (24.07.05 20:10) [2]
Возможно и тормоза, долго не ждал, при остановке процесса и повторного запуска, зависание проходит.

Косвенный вопрос: кто виноват ? :-)


Юрий Зотов   (2005-07-24 20:10:00) [6]

Сталкивался в D7 под XP (точнее, были не зависания, а жуткие тормоза - минут по 5-8). Лечил отключением гипертрейдинга.


tesseract   (2005-07-24 19:58:00) [7]

Я с этим сталикивался на всём от Peintium 166 до Atlon XP и не только на Delphi 2005. Объясни в чём фича :-)


Наверх

Титульная страница Поиск, карта сайта Написать письмо