]> git.llucax.com Git - z.facultad/75.00/informe.git/blob - source/conclusion.rst
Agregar lista preliminar de trabajos relacionados y futuros
[z.facultad/75.00/informe.git] / source / conclusion.rst
1
2 .. Se presentan las conclusiones del trabajo, comparando los resultados
3    obtenidos con el punto de partida. Se mencionan puntos pendientes o
4    nuevas líneas de investigación.
5    ESTADO: SIN EMPEZAR
6
7
8 .. _conclusion:
9
10 Conclusión
11 ============================================================================
12
13 TODO
14
15
16
17 Trabajos relacionados
18 ----------------------------------------------------------------------------
19
20 TODO
21
22 * Diamond:
23   http://thecybershadow.net/d/Memory_Management_in_the_D_Programming_Language.pdf
24
25
26 Trabajos futuros
27 ----------------------------------------------------------------------------
28
29 TODO
30
31 * Cambiar el layout de memoria (mostrar lo encontrado en el post). Se podría
32   usar un tamaño de bloque por cada tipo de dato (y por lo tanto una lista de
33   libres por cada tipo de dato). Esto podría ahorrar muchos bits (mark,
34   freebits, scan, etc.), el puntero al pointer mask se guardaría una sola vez,
35   no hay ningún desperdicio de espacio salvo algún padding, pero podrían haber
36   esquemas donde ni siquiera (si siempre se alocan tantas páginas como sean
37   necesarias para evitar el padding para un tamaño de bloque). Un tipo de dato
38   NO_SCAN no alocaría directamente bits de noscan, mark y scan. Se podría
39   tratar de forma especial a strings.
40 * Lazy sweeping.
41 * Concurrent sweeping (lanzar fase de sweep en un thread que no pertenezca al
42   mutator).
43 * Continuous collection (lanzar un thread que esté haciendo fullcollect() en
44   un loop). Lo bueno es que el sweep podría correr en ese thread, bajando aún
45   más el tiempo máximo de pausa (aunque esto se puede hacer más allá de hacer
46   continuous collection, ver "concurrent sweeping"), lo malo es que tal vez se
47   estaría recolectando demasiado sin ninguna ganancia substancial.
48 * Medir mejor cuando lanzar una recolección cuando se usa early collection
49   (por ejemplo medir la tasa de alocación y el tiempo de recolección y así
50   hallar el momento ideal para lanzar la recolección).
51 * Emprolijar todavía más el código (o reescribirlo).
52 * Hacer preciso el static data por el tema de los TypeInfo's que ocupan mucha
53   memoria que debe ser escaneada.
54
55
56 .. vim: set ts=3 sts=3 sw=3 et tw=78 :