Hi
Philip you asked what the difference is, its more than you think.
A public resolver like google dns or cloudflare will have lots and lots of traffic, meaning all widely used hostnames will rarely be served to you cold, they will almost always be from their cache.
I know how it works, but typically for most of us we will visit similar websites during our day. pfSense will also cache all the results, it will also cache lookups to find the various authoritative servers/name servers. Regardless if pfSense needs to do a few lookups more initially for a new address, we are still talking about a handful of packets, and the data transferred is nothing, and the processing is nothing.
As evidence to this as I posted further up, running a DNS benchmark that is making thousands of DNS lookups against the pfSense resolver for random addresses I certainly would never have visited and so would not be cached locally, the benchmark shows the fastest DNS server is my pfSense, with Google etc coming further down the list, even though Google shows a
small percentage of cached results, less than you might expect on the random list of addresses the benchmark picks, pfSense is by far the fastest, responds 100% of the time, and was 100% error free.
So whilst that benchmark is running, hammering pfSense DNS Resolver, also hammering a dozen or more other DNS servers to benchmark against all at the same time, pfSense shows nothing to indicate extra loading, a continuous ping to the BBC shows every ping still taking 8ms, so no change or jitter in latency, and the BQM chart shows nothing different during the period of the test. Ergo, DNS is nothing, it places very little demand on a home network, uses next to no CPU cycles, and the data it uses is insignificant.
A DNS Resolver in pfSense is not a resource hog and is not the cause of slowing things down, that is ludicrous to suggest and shows a lack of appreciation to what DNS is technically, that is tiny packets of data and the network is dealing with more traffic processing the BQM chart pings from Thinkbroadband than it does dealing with DNS resolution! pfSense works fine across the planet using its own DNS Resolver, but there is something odd happening when the resolver is enabled on Virgin.
Regards
Phil
Edit, evidence is better than assumptions. I've attached the DNS Result from another test that did as many DNS lookups in 5 minutes than most people will do in a lifetime! pfSense shows CPU around 5% (normal idle amount) so loading unchanged and even the CPU didn't feel the need to throttle up from it's minimum 600MHz (APU2 motherboard). The test result is pfSense is the fastest. Feel free to download and do the same test from GRC.com and then peer review if you like.