The BIP158 compact block filters make a compromise between performance and security by re-keying the filter for each block. That means every block requires re-hashing and re-sorting for every script pub key before matching against the filter.
To improve on the performance we can simply generate filters using per index random keys (rather than per filter keys). We don’t share these filters with any attacker so there is no security risk.
I don’t use synthetic benchmarks for this as we have only a single data set we’re ever processing.
On an arbitrary server: No filters: 132 minutes Block filters: 45 minutes Wallet filters: 7 minutes