Ada_Ru форум

Обсуждение языка Ада

Re: [ada_ru] Высвобождение памяти.

Оставить новое сообщение

Сообщения

sve
Re: [ada_ru] Высвобождение памяти.
2007-07-17 10:19:25

 

>С атомарным счётчиком там всё в порядке.

 

>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

Новое сообщение:
Страницы: 1

Чтобы оставить новое сообщение необходимо Зарегистрироваться и Войти