Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.09.18;
Скачать: CL | DM;

Вниз

Зависание Thread-ов в функциях TMemoryManager (Delphi 2005)   Найти похожие ветки 

 
Ученик   (2005-07-22 22:05) [0]

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


 
tesseract ©   (2005-07-24 19:58) [1]

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


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

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


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

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

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

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

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


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

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

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


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

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

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

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

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

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


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

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

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


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

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

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

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

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

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



Страницы: 1 вся ветка

Текущий архив: 2005.09.18;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.056 c
14-1124864739
BKV
2005-08-24 10:25
2005.09.18
Нужен программист Санкт-Петербург


4-1122374103
lord Zeratul
2005-07-26 14:35
2005.09.18
Активно ли окно?


3-1123078921
angel_b
2005-08-03 18:22
2005.09.18
Что надо для выполнения обединения (SQL) с участием MEMO полей?


3-1123231655
Elvis
2005-08-05 12:47
2005.09.18
DBGridEh забитый в ручную


14-1125068503
P.N.P.
2005-08-26 19:01
2005.09.18
Фрилансер