@Ryan json encode and decode won't work with NaN and INFINITE values for float and potentially may have other issues I can't think of from the top of my head but for many cases it might be a better option. As for optimization, what it needs is context - let me plug a post I wrote on this subject evidentlycube.com/blog/game-optimization/when-to-optimize. the tl;dr being, don't optimize things that don't take huge chunk of the running time because the benefits are meaningless in the context of the whole application.