Главная страница
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.067 c
14-1124354453
Е-клмн
2005-08-18 12:40
2005.09.18
Коллекция цитат.


1-1124952793
kyn66
2005-08-25 10:53
2005.09.18
Почему List index out of bounds(-1) ?


14-1124832548
тень отца Гамлета
2005-08-24 01:29
2005.09.18
Бамбук стал весьма популярной культурой также для Локомотива


1-1124785381
volser
2005-08-23 12:23
2005.09.18
Как приостановить поток?


14-1124442813
MadAngel
2005-08-19 13:13
2005.09.18
А где?