Найдите минимальную идеальную хэш-функцию с помощью gperf
Я обнаружил, что gperf подходит для моего проекта, и теперь ищу способ оптимизировать размер сгенерированной таблицы. Поскольку ключи -i и -j детерминистически влияют на длину таблицы, я написал небольшой скрипт, перебирающий эти значения в поисках минимальной длины таблицы. Сценарий хранит значения -i и -j для извлечения текущей минимальной таблицы, а также текущие проверенные значения, когда сценарий завершается, поэтому он может продолжить поиск позже.
Теперь я увидел, что существует ключ -m, который утверждает, что он делает именно то, что я делаю с моим маленьким скриптом. Я предполагаю, что использование этого параметра намного быстрее, чем вызов gperf только для одной итерации. Но мне нужно знать две вещи для замены вызова gperf, которые я не смог найти в справке gperf:
- Какие значения, если используются -i и -j, если я использую ключ -m?
- Как мне узнать, какие значения для -i и -j фактически используются, то есть, какие значения приводят к минимальной длине найденной таблицы для текущего вызова gperf?
1 ответ
Какие значения, если используются -i и -j, если я использую ключ -m?
Вы найдете эту информацию в исходном коде, строки 1507..1515.
Как мне узнать, какие значения для -i и -j фактически используются, то есть, какие значения приводят к минимальной длине найденной таблицы для текущего вызова gperf?
Вам не нужно знать. Эти значения просто описывают начальную точку внутреннего пути gperf через пространство поиска.