@ agnasg

agnasg


… era irresistiblemente atractiva, y no me pude zafar a tiempo

13-01-2013 12:24 PM

Este es un interesantísimo artículo sobre un sistema de recolección de memoria no utilizada (garbage collector) de Gmail. El artículo describe las pesquisas que el grupo de soporte hizo sobre un deterioro en el desempeño de gmail cuando era ejecutado en IE 6 (¡impactante!). Habla cómo Jon Perlow descubrió el problema y cómo lo solucionó, haciendo un hacking en el sistema para que IE 6 utilizara un mecanismo de recolección más eficiente y rápido de forma que el desempeño fuese mejor. Lo más sorprendente es el final:  el cambio impactó negativamente el tamaño de ciertas librerías y generaron problemas en el mecanismo de compresión GZIP. Como consecuencia de ello, el cambio fue eliminado. La sorpresa de este final me recordó mi tesis de grado: durante años estuvimos usando un emulador de máquina virtual para el curso de sistema operativos (era algo así como un predecesor de VMWARE o Virtual box, pero solamente ejecuta un sistema operativo muy simple). A mi tutor se le ocurrió que el desempeño del software podría mejorar si en vez de emular procesos (que ejecutan los programas), creábamos procesos reales corriendo en unix y los controlábamos utilizando la llamada al sistema ptrace. Esta es un llamada al sistema que permite controlar e inspeccionar a otro proceso. Mi presentación de la tesis fue como la de uno de esos trovadores que narran con todo tipo de adornos una gesta heroica, llena de vicisitudes y actos de valentía y nobleza. Describí mi implementación en C, las rutinas, los trucos, todo con lujo de detalles. Uno de los jurados (David Padua) no estaba al tanto del desenlace de la tesis porque no se la había leído (los jurados deben leer la tesis escrita antes de la presentación para que estén al tanto de lo que se va a hablar. En mi caso creo que era un documento de 200 páginas). Preguntó qué pasó, “¿en qué porcentaje fue la mejoría en el desempeño del emulador?”. “Ninguno” contesté, “el desempeño fue peor”. David literalmente pegó un brinco en su asiento. Estoy seguro que mi tesis fue el más exitoso fracaso que se ha presentado en mucho tiempo en mi universidad. Mi tesis fue aprobada, aunque Walter Cunto, otro de los jurados, me hizo la observación que debí tomar otra dirección al detectar que la solución no funcionaba. Lamentablemente ptrace, como solución, era irresistiblemente atractiva, y no me pude zafar a tiempo. La historia de mi vida.