Practical Bounds on Optimal Caching with Variable Object Sizes