We haven’t done benchmarking. Sorry to say that I am not fond of benchmarks.
I usually choose something over other by visible difference in performance and ease of use/maintenance.
w3tc gives you fine grain control so that you can choose which files to add to minify/combine. It gives you way too many options to control every aspect of process.
I started with pagespeed recently so can’t talk about internal much. It seemed easy to use and maintain. It has less “options” for minify/combine but many more other “features” like CDN, image resize, lazyload. The list is really long - https://developers.google.com/speed/pagespeed/module/filters
– does it create a file when the first request is made and serves it until expiry
I think W3TC and pagespeed creates minified files on first request, if it doesn’t exist.
– how does it handle when the content of the css is changed?
In case of W3TC, cache need to purged manually. I guess pagespeed relies on “Last modified” timestamp so it can detect css/js file changes.
I will recommend using whatever works for you. Goal is to reduce pagesize and number of overall requests.
In future, we will add a command to enable/disable pagespeed easily in EE so that you can try that easily. So far pagespeed is working good on all sites on which we have added it so we hope to add support for it in EE main release soon.