Motivación
~~~~~~~~~~
* Recolección de basura
-* Lenguaje de programación **D**
+* Lenguaje de programación D
* Utilidad → Software Libre → Contribución
Banco de Pruebas
--------------------------------------------------
-Diapositiva 1
+Generalidades
~~~~~~~~~~~~~
-Diapositiva 1
+* Múltiples corridas (20-50)
-Diapositiva 2
-~~~~~~~~~~~~~
-Diapositiva 2
+ * Minimizar error en la medición
+ * Resultados expresados en función de:
+ * Mínimo
+ * Media
+ * Máximo
+ * Desvío estándar
-Tiempo de Stop-The-World
---------------------------------------------------
+* Minimizar variación entre corridas
-Diapositiva 1
-~~~~~~~~~~~~~
-Diapositiva 1
+ * ``cpufreq-set(1)``
+ * ``nice(1)``
+ * ``ionice(1)``
-Diapositiva 2
-~~~~~~~~~~~~~
-Diapositiva 2
+Programas
+~~~~~~~~~
+* Triviales (7)
+ * Ejercitar aspectos puntuales
+ * No realizan una tarea útil
+ * Casos patológicos
-Tiempo de Pausa Real
---------------------------------------------------
+* Programas pequeños - *Olden Benchmark* (5)
-Diapositiva 1
-~~~~~~~~~~~~~
-Diapositiva 1
+ * Relativamente pequeños (400-1000 *SLOC*)
+ * Realizan una tarea útil
+ * Manipulan mucho listas y árboles asignando mucha memoria
+ * No son ideales para probar un *GC*
-Diapositiva 2
-~~~~~~~~~~~~~
-Diapositiva 2
+* Programas reales - **Dil** (1)
+ * Compilador de D escrito en D
+ * Grande y complejo (32K+ *SLOC*, 86 módulos, 300+ *clases*)
+ * Programado sin (limitaciones ni ventajas del) *GC* en mente
+ * Manipulación de *strings*, arreglos dinámicos y asociativos
+
+Métricas
+~~~~~~~~
+* Tiempo total de ejecución
+* Tiempo máximo de *stop-the-world*
+* Tiempo máximo de pausa real
+* Cantidad máxima de memoria utilizada
+* Cantidad total de recolecciones realizadas
-Tiempo de Ejecución
+
+Gráficos de Corridas
--------------------------------------------------
-Diapositiva 1
-~~~~~~~~~~~~~
-Diapositiva 1
+Tiempo Máximo de Stop-The-World
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.. image:: img/norm-hist-stw.pdf
+ :width: 12.5cm
+
+Tiempo Máximo de Pausa Real
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.. image:: img/norm-hist-pause.pdf
+ :width: 12.5cm
+
+
+Tiempo Total de Ejecución
+~~~~~~~~~~~~~~~~~~~~~~~~~
+.. image:: img/norm-hist-time.pdf
+ :width: 12.5cm
+
+Cantidad total de recolecciones realizadas
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.. image:: img/norm-hist-ncol.pdf
+ :width: 12.5cm
+
+Cantidad máxima de memoria utilizada
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.. image:: img/norm-hist-mem.pdf
+ :width: 12.5cm
-Diapositiva 2
-~~~~~~~~~~~~~
-Diapositiva 2
Conclusión
Problemas, Limitaciones y Puntos Pendientes
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-* Predicción de *early collection*
* Explosión de uso de memoria con *eager allocation*
+* Eficiencia del marcado preciso
+* Mejorar predicción de *early collection*
* Experimentar con ``clone(2)``
-* Eficiencia de marcado
Trabajos Relacionados
~~~~~~~~~~~~~~~~~~~~~