Gregory Maxwell wrote:
In any case, from the second page onwards pages typically display in <100ms for me, and the cold cache (first page) load time for me looks like it's about 230ms, which is also not bad. The grade 'f' is hardly deserved.
That's because it's an uploaded image. It is cached in the squids, but not outside. So people will need to check if it's modified, but it can be modified at any time.
Howard Chen wrote:
Have a simple policy to generate unique URI for each resources, and expire as far as possible.
That's what is being used for site js and css (the appened query string) and that's why it can have the expire header.
We could provide a per-image unique URI with a large caching, based on some id or simply in the image hash. The tradeoff is that then you can set a large expiry time, but you need to purge all the pages including the image when it's reuploaded, whereas with the current system that would only be needed when it's deleted (or uploaded for the first time).
Meybe the html caches aren't even purged when the image is deleted on commons, given that there is no single table for that (the CheckUsage problem). Anyone can confirm? But it degrades gracefully, something a hash-based path wouldn't do.