It does look like String.Concat is plain faster vs. String.Format.  String.Format jumps thru a lot of extra hoops to deal with argument formatting.

Also this...

```
return "[Viewport: X=" + X + " Y=" + Y + " Width=" + Width + " Height=" + Height + "]";
```

... is faster than the string.Format() version.  This is because the IL compiler (not the JIT) converts it into a string.Concat call.

So i think the best fix here is replacing `string.Format()` with `string.Concat()` on all platforms when no specialized argument formatting is required.