if, switch y objetos.

A raíz de este comentario en Twitter:

@Carles_Climent me respondía:

Tenéis todo el hilo en: https://twitter.com/oskarcalvo/status/763334363996127233

El caso es que decidí mirar como es el consumo de memoria y tiempo de ejecución de ese código, pero en este caso sacándolo de la función de preprocesamiento donde estaba y ejecutándolo en un script.

Y primero probé con los 10 ifs:

Luego probé con switch:

Y por último lo implemente como una clase:

El caso es que los resultados tanto de memoria usada como de tiempos son muy curiosos, sobre todo porque yo pensaba que Switch debería ser más rápido que if, y a su vez por la forma planteada al objeto este debería ser el más rápido de todos, aunque si tenemos en cuenta que tenemos un función str_replace hace que el objeto no seo la forma más óptima en este caso:

Operador Memoria inicial Memoria final Tiempo
if 224376 225608 0.00039439996083577474319734057495168144669150933623
switch 225000 226232 0.00000131527582804361977754945087909499434886129166
clase 230736 232360 0.00140011707941691074946755080077309685293585062027

Revisando el código veo que se puede mejorar un poco más, y las clase en vez de cargar dinámicamente el objeto también se podría usar el método mágico __call() para cargar el método en cuestión.