>С атомарным счётчиком там всё в порядке.
>mov eax, 1
>lock xadd [ecx], eax
>inc eax
>Этого достаточно.
кто бы спорил!
инструкция с LOCK
выполняется раз в 100 дольше
чем без него (наверняка более чем в 100 раз)
LOCK -это full barrier (и наверняка еще и инвалидация всего кэша).
http://www.openoffice.org/servlets/ReadMsg?list=dev&msgNo=16619
user time: 41.696s 38.742s
mean: 41.64s 38.52s
Comparing the wall clock times showed essentially the same value of 8% overhead for the "lock" case.
На *одном*, однопоточном CPU, на таком дурацком тесте ( дна переменная - гарантировано в кэше )это может быть так (однако ниже - другие цифры, а именно в 2-8 раз медленнее). Чтобы сказать точно, нужно смотреть тайминг в доке по CPU и принимать во внимание то, что называют cache locality, которая при подсчете ссылок - никакая. Т.е. всякий раз процессор вынужден грузить полностью cache line для элементарного доступа к одному слову, вместо того, чтобы взять его из кэша. Плюс lock - это полное блокирование шины одним процессором т.е. чем больше процессоров и чем больше обращений к памяти - тем дороже плата.
В общем вряд ли это хорошее место для подобных дискуссий. То, что для smp приложений подсчет ссылок это плохо - факт общепризнанный. В www полно информации на эту тему.
sve wrote:
В общем вряд ли это хорошее место для подобных дискуссий. То, что для smp
приложений подсчет ссылок это плохо - факт общепризнанный. В www полно
информации на эту тему.
Ну почему же плохое? Как никак Ada имеет склонность к параллелизму, использование на современных параллельных машинах как раз интересная тема. :)
On Tue, 17 Jul 2007 14:38:05 +0400, you wrote:
sve wrote:
В общем вряд ли это хорошее место для подобных дискуссий. То, что для smp приложений подсчет ссылок это плохо - факт общепризнанный. В www полно информации на эту тему.
Ну почему же плохое? Как никак Ada имеет склонность к параллелизму, использование на современных параллельных машинах как раз интересная тема. :)
Если счетчики плохо, то GC - уж совсем нехорошо, при любых раскладах. Больше стеков, хороших, и разных.
--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de
Чтобы оставить новое сообщение необходимо Зарегистрироваться и Войти