Size: a a a

2020 December 24

SZ

Sergey Zhmylove in use Perl or die;
Роман Тихонов
Неужели этой извращённой конструкцией кто-то пользуется?
Ну я, например
источник

SZ

Sergey Zhmylove in use Perl or die;
Ivan Bessarabov
> Да и тем более, они сломали старые скрипты.
Реально у тебя где-то это используется в коде? Я думал что это штука чисто для дебага — вывел инфу на экран в супер важных местах во время разработки, понял что лучше бы заранее выделить побольше бакетов и убрал этот print из кода. У тебя реально что-то динамически делается на основании этих данных?
Нет конечно :)
Но всё равно ощущения неприятные
источник

SZ

Sergey Zhmylove in use Perl or die;
Anton Petrusevich
в три раза на записи у меня вышло, если не пересоздавать хеш и массив. 5.26.
А если не тратить время на создание скляров, тогда ещё быстрее: https://perlbanjo.com/975e8acb42
источник

SZ

Sergey Zhmylove in use Perl or die;
Приколы начинаются, если сделать так: https://perlbanjo.com/c78b62fe58
источник

AO

Alexander Onokhov in use Perl or die;
Sergey Zhmylove
Ну это ведь идиоматическое выражение, не буду
Да и тем более, они сломали старые скрипты. У меня ещё нет нигде 5.25+ скорее всего, а уже что-то поломано может быть после обновления. «обратная совместимость, да?»
Да, в старой документации  пишут про «used buckets / allocated buckets» без предупреждений, что полагаться на это нельзя
источник

SZ

Sergey Zhmylove in use Perl or die;
Alexander Onokhov
Да, в старой документации  пишут про «used buckets / allocated buckets» без предупреждений, что полагаться на это нельзя
Когда даже в хороший проект приходят школьники, он начинает превращаться в линукс
источник

АК

Алексей Клименко... in use Perl or die;
Sergey Zhmylove
А если не тратить время на создание скляров, тогда ещё быстрее: https://perlbanjo.com/975e8acb42
keys %h = 400;

А что это вы сделали, память выделили что ли?
источник

SZ

Sergey Zhmylove in use Perl or die;
Алексей Клименко
keys %h = 400;

А что это вы сделали, память выделили что ли?
Ага, 512 бакетов, но это не влияет в данном случае
источник

SZ

Sergey Zhmylove in use Perl or die;
Он и сам быстро наращивает число бакетов
источник

АК

Алексей Клименко... in use Perl or die;
Sergey Zhmylove
Ага, 512 бакетов, но это не влияет в данном случае
Что обозначает исходное число, примерное количество ключей?
источник

АК

Алексей Клименко... in use Perl or die;
Alexander Onokhov
частота. Outer быстрее
         Rate array  hash
array   965/s    --  -92%
hash  12444/s 1189%    --


А здесь, хеш быстрее?
источник

SZ

Sergey Zhmylove in use Perl or die;
Алексей Клименко
Что обозначает исходное число, примерное количество ключей?
Число бакетов, которое я хочу
источник

SZ

Sergey Zhmylove in use Perl or die;
Хотя если его не хватит, перл сам увеличит. Ну и он сразу его округляет до степени двойки вверх
источник

IB

Ivan Bessarabov in use Perl or die;
Алексей Клименко
         Rate array  hash
array   965/s    --  -92%
hash  12444/s 1189%    --


А здесь, хеш быстрее?
Для того чтобы понять что быстрее проще всего смотеть на колонку Rate.

Код array может выполняться со скоростью 965  раз в секунду

Код hash12444 раз в секунду.

12 тысяч раз в секунду — это быстрее чем 965 раз в секунду.
источник

АК

Алексей Клименко... in use Perl or die;
Ivan Bessarabov
Для того чтобы понять что быстрее проще всего смотеть на колонку Rate.

Код array может выполняться со скоростью 965  раз в секунду

Код hash12444 раз в секунду.

12 тысяч раз в секунду — это быстрее чем 965 раз в секунду.
Да я уже понял, что Rate понятнее.

Почему array к hash – «минус 92%», это «100% минус обратная величина к 1189%» что ли?..
источник

IB

Ivan Bessarabov in use Perl or die;
Алексей Клименко
Да я уже понял, что Rate понятнее.

Почему array к hash – «минус 92%», это «100% минус обратная величина к 1189%» что ли?..
Не знаю. Я исключительно редко использую benchmark, не умею им пользоваться.
источник

АК

Алексей Клименко... in use Perl or die;
Sergey Zhmylove
Число бакетов, которое я хочу
А может массиву тоже заранее много памяти выделить?

Или так нельзя?
источник

SZ

Sergey Zhmylove in use Perl or die;
Алексей Клименко
А может массиву тоже заранее много памяти выделить?

Или так нельзя?
Можно присвоить ему в последний элемент
источник

SZ

Sergey Zhmylove in use Perl or die;
Но ты ж понимаешь, современный перл делает массив с дыркой, там это немного оптимизировано. Но не очень
источник

AP

Anton Petrusevich in use Perl or die;
Sergey Zhmylove
Но ты ж понимаешь, современный перл делает массив с дыркой, там это немного оптимизировано. Но не очень
я так думаю (сорцы не смотрел), что массивы в перле не с дыркой, а с пропусками в начале, чтобы шифт работал быстрее.
источник