Ada_Ru форум

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

Re: [ada_ru] Re: Атомарные примитивы

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

Сообщения

Vadim Godunko
Re: [ada_ru] Re: Атомарные примитивы
2009-10-06 08:59:12

Ivan Levashew wrote:

 

64битные значения на x86 можно атомарно гонять с помощью

lock cmpxchg8b. CAS здесь ни к чему, зато он

атомарен и для восьми байт.

 

Низя, нет такой команды в i386 :-) И не надо указывать на документацию Pentium IV или Core 2, ведь никому не секрет что это не переносимое подмножество x86! :-)

 

Вадим что–то писал насчёт разницы в три раза для Qt строк в

C++ и в Аде. Не привлекательно.

Писал, было такое. А ещё писал, что есть реализация, лишенная этого недостатка. И в ней можно "подглядеть" как счётчик ссылок делатеся "красиво".

 

http://adaforge.qtada.com/cgi-bin/tracker.fcgi/matreshka/browser/trunk/matreshka/source/league

 

см. league-strings.ads как стартовую точку.

 

Интересно, если соптимизировать так:

 

type Fast_Reference_Counter is record

Common_Counter : Integer_32 := 0;

pragma Atomic (Common_Counter);

Origin_Thread_Id : Unsigned_32 := Current_Thread_Id;

Origin_Counter : Integer_32 := 0;

end record;

 

... это будет быстрее, чем обычный счётчик ссылок? Я сейчас

программированием занимаюсь в Windows XP, запущенной в VMWare

на Mac OS X. Для программирования нормально, но для

замеров не подходит.

 

Не совсем понятно зачем так сложно? Можно поподробнее?

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

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