Size: a a a

2020 July 29

A

Andrey in ErlangRus
с ним можно сделать только одно  - вырезать
источник

EK

Evgeny Khramtsov in ErlangRus
Vladimir Sekisov
, {lager, [
          {crash_log, false},
          {error_logger_redirect, false},
          {handlers, []}
         ]}
да, пока так
источник

V

Vasilii Demidenok in ErlangRus
JFYI наткнулся на поведение что запись в ets, начавшаяся до ets:rename, успешно завершается после успешного завершения ets:rename =(.
т.е. строить какие-либо локи поверх rename примитива просто нельзя. Грусть, печаль.
источник

P

PsyDebug in ErlangRus
write_concurrency в фолс если перевести- тож самое?
источник

AK

Aleksey Kluchnikov in ErlangRus
и обе операции на одно ядро? Ато кто их знает кто там первый кто второй
источник

V

Vasilii Demidenok in ErlangRus
PsyDebug
write_concurrency в фолс если перевести- тож самое?
нет, оно с этим не связано. rename - работает с метой
если например ets:update_element идёт на именованый tid, то сперва лочится мета - берётся хендел, разлочивается мета,и идёт апдейт. а rename чисто лочит/анлочит мету. Таким образом даже если rename отработал - нет гарантий, что не висят какие-то процессы с апдейтом, которые уже прочитал хендел и поэтому запишут позднее.
источник

V

Vasilii Demidenok in ErlangRus
Aleksey Kluchnikov
и обе операции на одно ядро? Ато кто их знает кто там первый кто второй
разные конечно. только получается, что чтение после rename не сериализуется с записью
источник

s

snakeduse in ErlangRus
Всем привет. Не подскажете, есть ли функция, которая как timer:tc только для измерения памяти? То есть, ты ей функцию, а она тебе - сколько памяти потратилось при выполнении функции.
источник

DZ

Danil Zagoskin in ErlangRus
snakeduse
Всем привет. Не подскажете, есть ли функция, которая как timer:tc только для измерения памяти? То есть, ты ей функцию, а она тебе - сколько памяти потратилось при выполнении функции.
я не знаю о такой.
Но я и не очень понял задачу.
Если функция 1000 раз аллоцировала мегабайтный бинарь и тут же его отпустила — она потратила мегабайт или гигабайт?
источник

s

snakeduse in ErlangRus
Danil Zagoskin
я не знаю о такой.
Но я и не очень понял задачу.
Если функция 1000 раз аллоцировала мегабайтный бинарь и тут же его отпустила — она потратила мегабайт или гигабайт?
Задача такая - надо померить сколько памяти выделяется при выполнении функции.

Из вашего примера под мою ситуацию подходит гигабайт.
источник

DZ

Danil Zagoskin in ErlangRus
snakeduse
Задача такая - надо померить сколько памяти выделяется при выполнении функции.

Из вашего примера под мою ситуацию подходит гигабайт.
я с разбегу не нашёл, есть ли такая статистика вообще, но для вашего сценария интуитивно кажется правильным такой подход:
 * найти метрики «всего байт было когда-либо аллоцировано» в статистике аллокаторов
 * взять чистую ноду (чтобы больше никто не аллоцировал параллельно)
 * снять метрики
 * выполнить функцию
 * снять метрики ещё раз и посчитать разницу

беда в том, что аллокаторы в эрланге имеют божественный статус, и их пути большей частью неисповедимы.
источник

ИИ

Иванов Иванов... in ErlangRus
Danil Zagoskin
я с разбегу не нашёл, есть ли такая статистика вообще, но для вашего сценария интуитивно кажется правильным такой подход:
 * найти метрики «всего байт было когда-либо аллоцировано» в статистике аллокаторов
 * взять чистую ноду (чтобы больше никто не аллоцировал параллельно)
 * снять метрики
 * выполнить функцию
 * снять метрики ещё раз и посчитать разницу

беда в том, что аллокаторы в эрланге имеют божественный статус, и их пути большей частью неисповедимы.
не сработает же - будет 0 на выходе. ну или 1мегабайт, но никак не гигабайт
источник

DZ

Danil Zagoskin in ErlangRus
Иванов Иванов
не сработает же - будет 0 на выходе. ну или 1мегабайт, но никак не гигабайт
«всего байт было когда-либо аллоцировано», написал же
источник

ИИ

Иванов Иванов... in ErlangRus
snakeduse
Задача такая - надо померить сколько памяти выделяется при выполнении функции.

Из вашего примера под мою ситуацию подходит гигабайт.
какой памяти-то? системной? или чисто на состояние функции. у нас же типа функциональный язык без побочных поведений. значит гипотетически можно посчитать
источник

ИИ

Иванов Иванов... in ErlangRus
Danil Zagoskin
«всего байт было когда-либо аллоцировано», написал же
а, ну там можно получить статистику по процессу например текущему. и про аллокаторы что-то помню. http://erlang.org/doc/efficiency_guide/profiling.html#memory-profiling
источник

DZ

Danil Zagoskin in ErlangRus
Иванов Иванов
а, ну там можно получить статистику по процессу например текущему. и про аллокаторы что-то помню. http://erlang.org/doc/efficiency_guide/profiling.html#memory-profiling
насколько я видел, там все описанные метрики — «аллоцировано сейчас», а не требуемый аналог ВВП
источник

ИИ

Иванов Иванов... in ErlangRus
Danil Zagoskin
насколько я видел, там все описанные метрики — «аллоцировано сейчас», а не требуемый аналог ВВП
вот не знаю. надо вникать
источник

DZ

Danil Zagoskin in ErlangRus
snakeduse
Задача такая - надо померить сколько памяти выделяется при выполнении функции.

Из вашего примера под мою ситуацию подходит гигабайт.
есть такая штука https://github.com/falkevik/erl_bpftrace
я не пользовался, но, возможно, на её основе можно сделать трейсер под вашу задачу
источник

ИИ

Иванов Иванов... in ErlangRus
Danil Zagoskin
насколько я видел, там все описанные метрики — «аллоцировано сейчас», а не требуемый аналог ВВП
вообще статистика "всего когда-то было аллоцировано" вызвает сомнения. представь что годами работает нода? если такое и есть, то специальными флагами должно включаться. аккурат как у аллокаторов разметка памяти включается
источник

DZ

Danil Zagoskin in ErlangRus
Иванов Иванов
вообще статистика "всего когда-то было аллоцировано" вызвает сомнения. представь что годами работает нода? если такое и есть, то специальными флагами должно включаться. аккурат как у аллокаторов разметка памяти включается
в моей картине мира этот тезис несколько противоречит существованию erlang:statistics(reductions).
источник