Сообщение Re[7]: clr perf problem от 30.06.2015 10:57
Изменено 30.06.2015 10:59 Yoriсk
Здравствуйте, mapnik, Вы писали:
Y>>Ну совсем как HashMap:
Y>>Но HashMap можно, а Dictionary — нет. Интересно.
M>Нет не совсем. Hashtable разрешает один writer вместе с multiple readers без locking, а Dictionary нет. Это именно мой сценарий использования. В Dictionary при таком варианте использования нужно использовать ReaderWriterLock, который делает его очень медленным.
M>Впрочем в CLR похоже все не быстрое.
Еще раз, по порядку: cравниваются реализации на Java и С#. Вы говорите, что реализация на HashMap, который thread-safe только в случае immutable на java вас устраивает, а на Dictionary на .net — нет. Потому что в Dictionary нужен ReaderWriterLock, а в HashMap, ... какая-то аналогичная конструкция на java(ReadWritLock?).
Вот я и спрашиваю: а в чём, собственно, разница?
Y>>Ну совсем как HashMap:
Y>>Но HashMap можно, а Dictionary — нет. Интересно.
M>Нет не совсем. Hashtable разрешает один writer вместе с multiple readers без locking, а Dictionary нет. Это именно мой сценарий использования. В Dictionary при таком варианте использования нужно использовать ReaderWriterLock, который делает его очень медленным.
M>Впрочем в CLR похоже все не быстрое.
Еще раз, по порядку: cравниваются реализации на Java и С#. Вы говорите, что реализация на HashMap, который thread-safe только в случае immutable на java вас устраивает, а на Dictionary на .net — нет. Потому что в Dictionary нужен ReaderWriterLock, а в HashMap, ... какая-то аналогичная конструкция на java(ReadWritLock?).
Вот я и спрашиваю: а в чём, собственно, разница?
Re[7]: clr perf problem
Здравствуйте, mapnik, Вы писали:
Y>>Ну совсем как HashMap:
Y>>Но HashMap можно, а Dictionary — нет. Интересно.
M>Нет не совсем. Hashtable разрешает один writer вместе с multiple readers без locking, а Dictionary нет. Это именно мой сценарий использования. В Dictionary при таком варианте использования нужно использовать ReaderWriterLock, который делает его очень медленным.
M>Впрочем в CLR похоже все не быстрое.
Еще раз, по порядку: cравниваются реализации на Java и С#. Вы говорите, что реализация на HashMap, который thread-safe только в случае immutable на java вас устраивает, а на Dictionary на .net — нет. Поэому в Dictionary нужен ReaderWriterLock, а в HashMap, ... какая-то аналогичная конструкция на java(ReadWritLock?).
Вот я и спрашиваю: а в чём, собственно, разница?
Y>>Ну совсем как HashMap:
Y>>Но HashMap можно, а Dictionary — нет. Интересно.
M>Нет не совсем. Hashtable разрешает один writer вместе с multiple readers без locking, а Dictionary нет. Это именно мой сценарий использования. В Dictionary при таком варианте использования нужно использовать ReaderWriterLock, который делает его очень медленным.
M>Впрочем в CLR похоже все не быстрое.
Еще раз, по порядку: cравниваются реализации на Java и С#. Вы говорите, что реализация на HashMap, который thread-safe только в случае immutable на java вас устраивает, а на Dictionary на .net — нет. Поэому в Dictionary нужен ReaderWriterLock, а в HashMap, ... какая-то аналогичная конструкция на java(ReadWritLock?).
Вот я и спрашиваю: а в чём, собственно, разница?