Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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
2-1238587647
Alex34
2009-04-01 16:07
2009.05.17
Как обратиться к определенной записи в таблице


2-1238660648
DmitriyR
2009-04-02 12:24
2009.05.17
Си и Delphi


11-1200570250
Rocket
2008-01-17 14:44
2009.05.17
OpenDirDialog.InitialPath при UNICODE_CTRLS...


15-1237192980
asafr
2009-03-16 11:43
2009.05.17
2D barcodes


2-1238746934
Iriss
2009-04-03 12:22
2009.05.17
работа с Gridom





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский