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

Вниз

AnsiString и его изменение потокобезопасно?   Найти похожие ветки 

 
Eraser ©   (2009-03-12 16:16) [80]

> [77] It"s not me   (12.03.09 16:09)


> DVM, во, видишь! Грамотные наезжальщики оперируют фамилиями
> Руссинович. Рихтер не в моде ужо.

если ты это про меня, то первым был упомянут дядя Рихтер )

> не используется новая функция появившееся в w2k+, не просто
> initializecriticalsection (или как там), а ...AndSpinCount

странный довод. эта функциональность не нужна, где попало.

> пример места, где он тормозной?

набросай простенький тест и посмотри.


 
Тын-Дын ©   (2009-03-12 16:18) [81]

Вобщем видно, что автор, претендуя на знание предметной области, раздувает пустой флейм, походя поливая всех по поводу своего флуда.


 
Тын-Дын ©   (2009-03-12 16:20) [82]


> не используется новая функция появившееся в w2k+, не просто
> initializecriticalsection (или как там), а ...AndSpinCount


А тебе она зачем - эта функция? Для чего?
Чтобы пофлудить просто?
Для тебя конкретно где ты видишь область её применения, в каких задачах?


 
It's not me   (2009-03-12 16:24) [83]


> По твоим высказываниям как раз это и следует.

как всегда забыл кое-что дописать.


> Это не наезд, а именно совет ознакомиться с темой

это не совет, это попытка пропонтоваться на пустом месте, абсолютно не въезжаю в нить беседы.


> Вах! Какой бред!
> Лишний раз подтверждаешь ПОЛНОЕ незнание темы

Вах! лишний раз подтверждаешь ПОЛНОЕ отсутствие ЧЮ


> если ты это про меня, то первым был упомянут дядя Рихтер
> )

и за это тебе несомненно незачот!


> набросай простенький тест и посмотри.

зачем. Ты ведь утверждаешь, что он ТОРМОЗНОЙ.

Так прокодируй сюда это место, где будут возникать тормоза, раскажи как бы ты намного лучше и быстрее бы сделал это место.


 
It's not me   (2009-03-12 16:27) [84]


> Для тебя конкретно где ты видишь область её применения,
> в каких задачах?

в таких же, в каких видят ее все адекватные программисты, вроде дядьки рихтера и руссиновича. Когда среднее время работы с разделяемым ресурсом меньше, чем совокупное среднее время входа и выхода нити из режима ядра.


 
Тын-Дын ©   (2009-03-12 16:38) [85]


> это не совет, это попытка пропонтоваться на пустом месте,
>  абсолютно не въезжаю в нить беседы.


Ты бы нить сам в руках хоть держал.
Выкрики из толпы без аргументов и всё.

Для понимания элементарщины иди в конференцию "Начинающие" - там может и разъяснят более подробно такие вещи как работа со строками и целыми числами из разных потоков.


 
Тын-Дын ©   (2009-03-12 16:39) [86]


> Когда среднее время работы с разделяемым ресурсом меньше,
>  чем совокупное среднее время входа и выхода нити из режима
> ядра.


Интересно, а ты знаешь, что нити не обязательно переходить в режим ядра для синхронизации?


 
DVM ©   (2009-03-12 16:39) [87]


> It"s not me   (12.03.09 16:09) [77]


> DVM, во, видишь! Грамотные наезжальщики оперируют фамилиями
> Руссинович. Рихтер не в моде ужо.

А я то тут причем? Я не Рихтера, ни Руссиновича, ни даже Фленова не упоминал.


> пример, в каком месте он глючный?
>
> Ах да, ты уже наверное не помнишь и лезть в старые дельфи
> влом, короче бла бла бла

Это ты не помнишь, а я как раз помню. В версиях Delphi ниже 7 иногда приводил к взаимоблокировке потоков. Про 7 не знаю, после D6 перестал пользоваться TMREWS из за глюков.


> пример места, где он тормозной?

В реализации. TMREWS проектировался для очень узкого круга применений и так до ума был не доведен из-за узости применения и редкости использования.
Производительность его ВНЕ области его применения крайне низка. Уж по крайней мере гораздо ниже крит. секций. Выигрыш с его помощью перед крит секциями получить можно, но редко. Мне такая задача попадалась всего раз.
Не веришь - возьми сравни. Я уже сравнивал в свое время, лично для убеждения тебя никаких сравнений проводить не буду.


 
Тын-Дын ©   (2009-03-12 16:39) [88]

У тебя почему-то везде звучит про эти переходы?


 
Palladin ©   (2009-03-12 16:42) [89]


> DVM ©   (12.03.09 16:39) [87]

Хем. А можно пример ситуации когда TMREWS приводит к дидлоку?


 
Сергей М. ©   (2009-03-12 16:48) [90]


> It"s not me   (12.03.09 16:16) [78]


> Очевидность


Что ж ты тогда лепишь горбатого про "лениво", в то время как в [67] сам двигаешь оглобли в сторону крит.секций ?


 
DVM ©   (2009-03-12 16:59) [91]


> Palladin ©   (12.03.09 16:42) [89]

Я немного перепутал, в версиях Delphi ниже 6 дедлок наблюдается.
А пример ситуации - надо подумать. Я уж забыл в чем проблема была. Помню, что надо было править SysUtils.pas, на сайте борланда даже что-то в виде патча лежало. А висло все когда очень много потоков пыталось получить доступ к  TMREWS.


 
DVM ©   (2009-03-12 17:03) [92]


> на сайте борланда даже что-то в виде патча лежало

вот оно вроде http://cc.embarcadero.com/Item/17761
Хотя не вроде в D6 тоже видать глюк остался, раз это патч для D6.


 
It's not me   (2009-03-12 17:05) [93]


> Хем. А можно пример ситуации когда TMREWS приводит к дидлоку?

тоже интересно


> TMREWS проектировался для очень узкого круга применений

какая разница для чего он проектировался. Ты можешь в его КОДЕ показать место, которое написано неоптимально, где можно написать лучше и так далее?


> лично для убеждения тебя никаких сравнений проводить не
> буду

да и не надо. Фигли тогда об этом говорить вообще )


> нити не обязательно переходить в режим ядра для синхронизации?

смотря что называть синхронизацией.
Для засыпания (suspend), чтобы чего-то ждать без траты процессорного времени - обязательно.


> в то время как в [67] сам

в [67] любому очевидно приведен стёбный, избыточный код


 
It's not me   (2009-03-12 17:07) [94]

гы, в [67] откуда-то вкрался FOpenDev, чудеса ) Вот так было запланировано:

а что мешает делать так?

var
tl: TThreadList;

.......

var
List: TList;
begin
FCritSect.Enter;
try
  List := tl.LockList;
  try
    РАБОТАЕМ!
  finally
    tl.UnlockList;
  end;
finally
  FCritSect.Leave;
end;
end;


 
Palladin ©   (2009-03-12 17:09) [95]


> DVM ©   (12.03.09 17:03) [92]

От спасибо. А то я тут как раз синхронизацию потока с ReadDirectoryChangesW на них замутил, но еще не запустил в эскплуатацию... щаз бы сидел волосы рвал на экзотических местах )


 
DVM ©   (2009-03-12 17:09) [96]


> It"s not me   (12.03.09 17:05) [93]


> какая разница для чего он проектировался.

Разница есть. Использовать класс надо по назначению, если желаешь получить хоть какой-то выигрыш от его использования. Иначе получишь только проблемы.


> Ты можешь в его КОДЕ показать место, которое написано неоптимально

Какая разница какое место написано неоптимально? Есть факт - использование TMREWS замедляет работу программы, и этот факт легко проверить экспериментально. Если не веришь и не хочешь проверить - ради бога оставайся при своем, мне то что до того. что твой код будет работать медленне, а если ниже D7 так еще и с глюками.


 
Сергей М. ©   (2009-03-12 17:19) [97]


> в [67] любому очевидно приведен стёбный, избыточный код


Так вот, г-н агрессивный, если ты занялся "стёбом", то и будь готов что и сам будешь "отстебан" по полной программе).. А как же иначе ?

Собссно, как ты должно быть понимаешь, стебут тебя здесь уже давно и от души - напросился же ! - и тебе это, видимо, доставляет наслаждение.


 
It's not me   (2009-03-12 17:19) [98]


> Использовать класс надо по назначению

с чего это ты взял. Если женские колготки отлично подходят для хранения лука - почему бы их так не использовать?
Ни на одной упаковке женских колготок никогда не читал, что их можно использовать для хранения и сушки лука.

А некоторые вообще делают дырки в пластиковых бутылках аква минерале и используют бутылки черте знает как.


> Какая разница какое место написано неоптимально?

принципиальная. Это позволяет проанализировать правду ты говоришь или нет.

Ты же утверждаешь, что TMREWS работает медленно. Я подумал почему-то, что ты знаешь почему именно медленно он работает, ибо на первый взгляд он ничем не хуже, а при множественном чтении так и гораздо лучше TCriticalSection. Но как оказалось ты не знаешь.

Ты просто когда-то делал какие-то тесты. Я тоже сейчас могу тест сделать, где будет 100 читающих потоков и 1 пишущий. И я уверен на 99%, что TMREWS будет работать быстрее TCriticalSection. Я тебе об этом сообщу, ты попросишь код теста, я тебе приведу код, ты скажешь - у тебя тест неправильный. Ну и нахрен мне это нужно.


 
DVM ©   (2009-03-12 17:31) [99]


> где будет 100 читающих потоков и 1 пишущий. И я уверен на
> 99%, что TMREWS будет работать быстрее TCriticalSection

Будет быстрее, тут даже проверять нечего. Это как раз тот случай, когда применение его оправдано. Если конечно не зависнет при таком то количестве потоков.


> Это позволяет проанализировать правду ты говоришь или нет.

Да вру я конечно, чтобы тебя преубедить. Мне делать больше нечего.


> Я подумал почему-то, что ты знаешь почему именно медленно
> он работает, ибо на первый взгляд он ничем не хуже, а при
> множественном чтении так и гораздо лучше TCriticalSection.
>

Я не знаю, не копался во внутренностях. Просто использовал. И замерял время. Нашел что работает неоптимально. При множественном чтении вообще в нем нет смысла, если нет записи, как впрочем и в крит. секциях, если есть более одного писателя, то тоже в нем нет смысла, крит секции будут работать быстрее.


 
Palladin ©   (2009-03-12 17:41) [100]


> если есть более одного писателя, то тоже в нем нет смысла,
>  крит секции будут работать быстрее.

Не совсем так. Дело не в соотнешнии количества читателей к количеству писателей, дело в соотношений частоты чтения к частоте записи.


 
Palladin ©   (2009-03-12 17:45) [101]

чет я сморозил совсем не то, что сказать хотел... )


 
It's not me   (2009-03-12 17:59) [102]


> Я не знаю, не копался во внутренностях

понятно.


 
DVM ©   (2009-03-12 18:01) [103]


> Palladin ©   (12.03.09 17:41) [100]


> Дело не в соотнешнии количества читателей к количеству писателей,
>  дело в соотношений частоты чтения к частоте записи.

А это не одно и то же? :)


 
Palladin ©   (2009-03-12 18:05) [104]


> DVM ©   (12.03.09 18:01) [103]

одно и тоже :)
я термин "количество" просто слишком буквально воспринял не добавил в уме "одновременно читающих/пишущих" :)


 
Leonid Troyanovsky ©   (2009-03-12 20:17) [105]


> DVM ©   (12.03.09 16:59) [91]

> Я немного перепутал, в версиях Delphi ниже 6 дедлок наблюдается.

У него был еще один недостаток был (а может и остался, не проверял).
Множество читателей не давали работать писателю.
Хотя, у SWMRG object by D.Richter (WFP 2 ed.) был тот же деффект.

Ну, а если уж вспомнили Джефа, то нельзя пройти мимо одной
из моих любимых ссылок:
http://msdn.microsoft.com/en-us/magazine/cc302329.aspx

Многие "легкие мьютексы" в win32 пошли, IMHO, с тех времен.

--
Regards, LVT.


 
Игорь Шевченко ©   (2009-03-12 20:22) [106]

"Один дурак может задать вопрос, на который и сто мудрецов не ответят" (с) фольклор



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

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

Наверх




Память: 0.67 MB
Время: 0.022 c
2-1238746934
Iriss
2009-04-03 12:22
2009.05.17
работа с Gridom


9-1179837261
evg123
2007-05-22 16:34
2009.05.17
Загрузка ЦП 100%


15-1236699497
Кое кто
2009-03-10 18:38
2009.05.17
Включить "Администратор"


2-1238564131
Руслан
2009-04-01 09:35
2009.05.17
update


15-1237156549
Германн
2009-03-16 01:35
2009.05.17
Это интересно