Size: a a a

Эликсир и Вунш

2019 August 27

SS

Sergey Samokhvalov in Эликсир и Вунш
ну send/recv с ним умеют быстрее работать, потому что на уровне ос поддерживаются scatter/gather операции
источник

SS

Sergey Samokhvalov in Эликсир и Вунш
плюс там еще какой-то оверхед
источник

AB

Alexey Bolshakov in Эликсир и Вунш
а то если туда начать смотреть, то выясняется много чего
источник

SS

Sergey Samokhvalov in Эликсир и Вунш
хотя нет
источник

AB

Alexey Bolshakov in Эликсир и Вунш
например вот такое
iex(2)> :erlang. term_to_binary(nil)
<<131, 100, 0, 3, 110, 105, 108>>
iex(3)> :erlang. term_to_binary([])
<<131, 106>>
источник

SS

Sergey Samokhvalov in Эликсир и Вунш
term_to_binary это вообще по сути не освсем то
источник

SS

Sergey Samokhvalov in Эликсир и Вунш
это сериализация, для передачи по сети
источник

SS

Sergey Samokhvalov in Эликсир и Вунш
это упакованные данные
источник

AB

Alexey Bolshakov in Эликсир и Вунш
а как получить sizeof?
источник

SS

Sergey Samokhvalov in Эликсир и Вунш
вот когда ты их начинаешь распаковывать, чтобы удобно было работать именно в памяти с ними — они больше начинают занимать
источник

AB

Alexey Bolshakov in Эликсир и Вунш
вот для етс таблиц я нашел способ
источник

SS

Sergey Samokhvalov in Эликсир и Вунш
интересный вопрос, по-моему я когда-то узнавал это, но щас гляну
источник

SS

Sergey Samokhvalov in Эликсир и Вунш
источник

AB

Alexey Bolshakov in Эликсир и Вунш
:ets.info(TableName, :memory) * :erlang.system_info(:wordsize)
источник

SS

Sergey Samokhvalov in Эликсир и Вунш
ну и это тоже помогает http://erlang.org/doc/efficiency_guide/advanced.html
источник

AB

Alexey Bolshakov in Эликсир и Вунш
а. да. у меня записано. еще есть flat_size
источник

SS

Sergey Samokhvalov in Эликсир и Вунш
насчет ets-а, очень примерно можно посчитать как sizeof(Key) + sizeof(Value)
источник

AB

Alexey Bolshakov in Эликсир и Вунш
но тут вопросов не меньше:
[] |> :erts_debug.size()
0
источник

SS

Sergey Samokhvalov in Эликсир и Вунш
плюс там наверняка еще есть доп оверхед небольшой константный
источник

AB

Alexey Bolshakov in Эликсир и Вунш
Sergey Samokhvalov
насчет ets-а, очень примерно можно посчитать как sizeof(Key) + sizeof(Value)
ets дает свою инфу. я выше написал
источник