?

Log in

No account? Create an account

Оптимизация selective receive в Erlang (OTP-8623) - Joyfolk

окт. 15, 2014

05:05 pm - Оптимизация selective receive в Erlang (OTP-8623)

Previous Entry Поделиться Next Entry

Это врядли кому-то из моих читателей интересно, но напишу здесь, чтобы самому не забыть.
Результаты маленького исследования условий срабатывания оптимизатора selective receive в эрланге.

Итак оно работает, если:
1. Ref создается в той же области видимости, что и блок receive
2. Все ветки блока receive в шаблонах содержат Ref в явном виде
3. Уровень вложенности и местоположение Ref в шаблоне receive (вроде) не важно - хоть {Ref, ...}, хоть {..., Ref, ...}, хоть {..., {Ref, ...}, ...}, но если сделать X = {Ref, ...} и в receive написать {X, ...}, то оптимизация не сработает‏.

Дизассемблер наше всё )

upd: использование нескольких Ref в одном блоке receive тоже ломает оптимизацию.

Comments:

[User Picture]
From:dimon_w
Date:Октябрь 15, 2014 01:28 pm
(Link)
Привет! Ты завтра вечером в городе?
(Ответить) (Thread)
[User Picture]
From:joyfolk
Date:Октябрь 15, 2014 01:28 pm
(Link)
Кажется да
(Ответить) (Parent) (Thread)
[User Picture]
From:dimon_w
Date:Октябрь 15, 2014 01:35 pm
(Link)
Гы я тогда подъеду, фотоатиквариат заберу.
(Ответить) (Parent) (Thread)
[User Picture]
From:joyfolk
Date:Октябрь 15, 2014 08:07 pm
(Link)
Заходи конечно
(Ответить) (Parent) (Thread)
[User Picture]
From:dimon_w
Date:Октябрь 16, 2014 04:02 pm
(Link)
Брось мне в личку твой телефон, тот что у меня есть не отвечает.
(Ответить) (Parent) (Thread)
[User Picture]
From:joyfolk
Date:Октябрь 16, 2014 05:55 pm
(Link)
Черт я и не подумал, что его у кого-то может не быть.
+79258020581
(Ответить) (Parent) (Thread)