Size: a a a

2021 January 18

SZ

Sergey Zhmylove in Modern::Perl
Нет.
источник

SZ

Sergey Zhmylove in Modern::Perl
Но если ты сделаешь свой собственный хеш с блекджеком, то можно :)
источник

ММ

Максим Максимов... in Modern::Perl
Denis F
А в перле есть возможность узнать общую длину ключей и значений хэша?
есть, если заранеее туда счетчик положил
источник

DF

Denis F in Modern::Perl
эх, халява не прокатила :(
источник

SZ

Sergey Zhmylove in Modern::Perl
Denis F
эх, халява не прокатила :(
А тебе зачем?
источник

DF

Denis F in Modern::Perl
Sergey Zhmylove
А тебе зачем?
мне надо содержимое json резать по размеру с учетом всяких разных полей
источник

DF

Denis F in Modern::Perl
json из хэша или массива собирается и хотелось понимать примерный размер того, что получится до кодирования
источник

SZ

Sergey Zhmylove in Modern::Perl
Denis F
json из хэша или массива собирается и хотелось понимать примерный размер того, что получится до кодирования
Насколько примерный?
источник

DF

Denis F in Modern::Perl
ну процентов 10 погрешности устроит за глаза
источник

SZ

Sergey Zhmylove in Modern::Perl
Denis F
ну процентов 10 погрешности устроит за глаза
Там в каких единицах все? гб?
источник

SZ

Sergey Zhmylove in Modern::Perl
Devel::Size попробуй
источник

DF

Denis F in Modern::Perl
да не, килобайты
источник

SZ

Sergey Zhmylove in Modern::Perl
Denis F
да не, килобайты
А, ну тут у меня уже меньше уверенности :)
источник

SZ

Sergey Zhmylove in Modern::Perl
Но ты всё равно попробуй
источник

AK

Andrey Konovalov in Modern::Perl
Denis F
json из хэша или массива собирается и хотелось понимать примерный размер того, что получится до кодирования
И если размер не устраивает, то что делать?
источник

DF

Denis F in Modern::Perl
я вот думаю что один хер JSON::XS будет даже два раза рендерить сильно быстрее остальных операций
источник

DF

Denis F in Modern::Perl
Andrey Konovalov
И если размер не устраивает, то что делать?
резать поле которое должно быть обрезано
источник

DF

Denis F in Modern::Perl
Это логгер, там есть поле сообщения и всякая обвязка переменного размера. Надо чтобы вся эта красота влезала в заданный размер
источник

VO

Vyacheslav Olkhovche... in Modern::Perl
А разве это не np полная задача?
источник

AK

Andrey Konovalov in Modern::Perl
Кодируешь JSON'ом, обрезаешь... Подход конечно тупой, например, в том же Crystal почти все объекты-кодеры умеют делать запись в io-устройство, которому можно задать лимит размера. Но раз уж Perl так не умеет...
Можно ещё действительно на счётчиках сделать, пихая в кодируемый хеш объекты и подсчитывая количество текста счётчиками на уровне класса: перед кодированием сбросить счётчик, потом каждый объект в методе TO_JSON прибавляет свой объём добавленного текста. Если превысили - все последующие объекты вернуть пустую строку. В конце снова сбросить счётчик в 0.
источник