Найдите минимальную идеальную хэш-функцию с помощью gperf

Я обнаружил, что gperf подходит для моего проекта, и теперь ищу способ оптимизировать размер сгенерированной таблицы. Поскольку ключи -i и -j детерминистически влияют на длину таблицы, я написал небольшой скрипт, перебирающий эти значения в поисках минимальной длины таблицы. Сценарий хранит значения -i и -j для извлечения текущей минимальной таблицы, а также текущие проверенные значения, когда сценарий завершается, поэтому он может продолжить поиск позже.

Теперь я увидел, что существует ключ -m, который утверждает, что он делает именно то, что я делаю с моим маленьким скриптом. Я предполагаю, что использование этого параметра намного быстрее, чем вызов gperf только для одной итерации. Но мне нужно знать две вещи для замены вызова gperf, которые я не смог найти в справке gperf:

  1. Какие значения, если используются -i и -j, если я использую ключ -m?
  2. Как мне узнать, какие значения для -i и -j фактически используются, то есть, какие значения приводят к минимальной длине найденной таблицы для текущего вызова gperf?

1 ответ

Какие значения, если используются -i и -j, если я использую ключ -m?

Вы найдете эту информацию в исходном коде, строки 1507..1515.

Как мне узнать, какие значения для -i и -j фактически используются, то есть, какие значения приводят к минимальной длине найденной таблицы для текущего вызова gperf?

Вам не нужно знать. Эти значения просто описывают начальную точку внутреннего пути gperf через пространство поиска.

Другие вопросы по тегам