Главная страница
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.035 c
1-1124902261
ArtemESC
2005-08-24 20:51
2005.09.18
Активировать Button


2-1123761508
hunn
2005-08-11 15:58
2005.09.18
вызов хелпа


14-1124434556
boriskb
2005-08-19 10:55
2005.09.18
"Научная" реформа


4-1122445245
MegaVolt
2005-07-27 10:20
2005.09.18
Как отловить двойной клик на заголовке ListView возле разделителя


3-1123224024
Juice
2005-08-05 10:40
2005.09.18
IB Expert показал системные таблицы