Are you aware of any benchmarks or do you have any practical experience regarding performance degradation caused by large gap limits? I'm genuinely curious as I'm lacking the intuition for this particular use case.
You could create a new wallet, set the gap limit to 1, measure the amount of memory your wallet software is using, then set the gap limit to say 10,000 and measure memory use again. This should give you an idea as to how much memory each address being monitored uses. The gap limit should monitor both receiving and change addresses.
I wonder why you only mention memory? I/O and CPU might be concern if you use local database. Percentage of non-empty address also might change memory, I/O and CPU usage significantly.