I thought this would be faster since it's only called once, immediately after the cache is set.

Maybe speed is not so important and it's better to use the field API anyway?