Форум: "Прочее";
Текущий архив: 2009.05.17;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.66 MB
Время: 0.009 c