Как можно это исправить?
*trans - это двухмерный слайс, состоящий из таких же слайсов, каждый заполнен 256 интами. На скрине продемонстрирована функция лукапа по слега странному префиксному дереву
в общем, вопрос стоит лишь в том, как это горлышко можно исправить. Да и подозрительным выглядит тот факт, что БОЛЬШАЯ часть времени уходит как раз на то, чтобы сделать 3 обращения по индексу к слайсу
Если 256 это константа, то попробуйте массив [256] int
Можно попробовать добиться от компилятора того, чтобы он убрал проверки границ в цикле
а что за утилита показывает время выполнения каждой строки?
go tool pprof <cpu.profile> И в строке ввода ввести list <FuncName> Тут про это есть https://go.dev/blog/pprof
go test . -bench=. -cpuprofile=cpu.out дальше остается только разобрать через go tool pprof cpu.out
Обсуждают сегодня