Borland продал подразделение CodeGear компании Embarcadero T

Любые обсуждения, не нарушающие правил форума.

Модератор: Модераторы

Re: Borland продал подразделение CodeGear компании Embarcadero T

Сообщение Mirage » 19.05.2008 19:28:05

FPC рулит, не вопрос. И рано или поздно обгонит Дельфю, если конечно те не займутся оптимизацией.:)

Sergei I. Gorelkin писал(а):Кроме того, в многопоточном приложении менеджер памяти FPC входит в критическую секцию только тогда, когда один поток пытается освободить память, выделенную другим потоком (что не есть большинство случаев).


Интересно как это сделано. Своя куча каждому потоку?
Mirage
энтузиаст
 
Сообщения: 881
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia

Re: Borland продал подразделение CodeGear компании Embarcadero T

Сообщение Sergei I. Gorelkin » 19.05.2008 20:13:05

Mirage писал(а):Интересно как это сделано. Своя куча каждому потоку?


Если мне память не изменяет, список свободных блоков один на всех, а список выделенных - свой для каждого потока.
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1405
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Re: Borland продал подразделение CodeGear компании Embarcadero T

Сообщение Mirage » 19.05.2008 22:56:46

Sergei I. Gorelkin писал(а):Если мне память не изменяет, список свободных блоков один на всех, а список выделенных - свой для каждого потока.


Тогда может быть коллизия при выделении.
Кстати, а что-то "своё" для потока как делается? threadvar? Так оно медленное вроде. Или у потока UID можно получить?
Mirage
энтузиаст
 
Сообщения: 881
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia

Re: Borland продал подразделение CodeGear компании Embarcadero T

Сообщение *vmr » 19.05.2008 23:43:03

Mirage писал(а):Кстати, а что-то "своё" для потока как делается? threadvar? Так оно медленное вроде. Или у потока UID можно получить?

TLS? Теоретически содержимое threadvar можно запихнуть в стек потока. Но кажется мне что так не делается.....

И еще, если поток насильно прибить(вместе с TLS), получается что грохнется и менеджер памяти?
Аватара пользователя
*vmr
постоялец
 
Сообщения: 168
Зарегистрирован: 08.01.2007 01:46:07
Откуда: Киев

Re: Borland продал подразделение CodeGear компании Embarcadero T

Сообщение Sergei I. Gorelkin » 20.05.2008 00:04:13

Скорость threadvar отличается на разных платформах, но в менеджере памяти число обращений к threadvar минимизировано, грубо говоря, одно выделение памяти - одно обращение к threadvar. Всяко должно быть не медленнее, чем вход/выход из критической секции + связанное try..finally.

Прибивание потока никак не влияет на менеджер памяти, да и как оно может повлиять? Запросов от прибитого потока больше не будет, и выделенная ему память просто останется висеть до окончания процесса.
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1405
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Re: Borland продал подразделение CodeGear компании Embarcadero T

Сообщение *vmr » 20.05.2008 00:13:59

Sergei I. Gorelkin писал(а):Скорость threadvar отличается на разных платформах, но в менеджере памяти число обращений к threadvar минимизировано, грубо говоря, одно выделение памяти - одно обращение к threadvar. Всяко должно быть не медленнее, чем вход/выход из критической секции + связанное try..finally.

Ну сдесь можно спорить... хотя не буду.... лучше поизучаю TLS :)

Sergei I. Gorelkin писал(а):Прибивание потока никак не влияет на менеджер памяти, да и как оно может повлиять? Запросов от прибитого потока больше не будет, и выделенная ему память просто останется висеть до окончания процесса.

А разве она не может освобождатся в другом потоке???


Чет мы разоффтопились :)))
Аватара пользователя
*vmr
постоялец
 
Сообщения: 168
Зарегистрирован: 08.01.2007 01:46:07
Откуда: Киев

Re: Borland продал подразделение CodeGear компании Embarcadero T

Сообщение Sergei I. Gorelkin » 20.05.2008 02:14:54

*vmr писал(а):А разве она не может освобождатся в другом потоке???


Может, но при этом нет обращений к структурам выделявшего потока. Если освобождает не тот, кто выделял - прежний "владелец" освобождаемой памяти просто забывается, и память приписывается освобождающему потоку (естественно, это происходит в критической секции - мало ли чего...)

Вообще, исходные тексты - занятный материал для изучения :)
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1405
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Пред.

Вернуться в Потрепаться

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13

Рейтинг@Mail.ru