Instead of creating a new tile grid you could use `goog.array.binaryInsert` to insert the new resolution into the tile grid's resolutions array.

```
goog.array.binaryInsert(tileGrid.getResolutions(), newResolution, function(a, b) { return b - a; });
```

This would lead to less pressure on the garbage collector. And `binaryInsert` is O(log n) while `sort` is O(n log n).

The only problem that I see with that is that tileGrid.maxZoom will need to be updated as well.