Curiosidad sobre __hash__()

Francesc Alted faltet en pytables.org
Mie Feb 11 20:31:15 CET 2009


A Wednesday 11 February 2009, Jesus Cea escrigué:
> Francesc Alted wrote:
> > No sé, todo esto me parece, como mínimo, sospechoso (bug?). 
> > Alguien tiene alguna explicación?
>
> Puede ser un tema de fragmentación de la "freelist" y de las cachés
> de objetos python.

Lo he estado pensando, y yo más bien creo que se trata de un tema de 
slots disponibles.  Es decir, cuando la memoria del sistema está 
bastante vacía los id() devuelven valores de memoria baja, y las hashes 
funcionan bastante bien.  Sin embargo, cuando la memoria empieza 
a 'llenarse', el id() de los nuevos objetos empieza a ser alto, con lo 
que el algoritmo de la hash ya no funciona tan bien para este caso.  Y 
parece que, para que esto pase es suficiente con ocupar algo más de 128 
MB, lo cual es poquísimo para los estándares de hoy en día.

Si esto es cierto, me pregunto si, dado que las máquinas empiezan a 
tener cantidades de memoria bastante grandes, los de Python deberían 
plantearse subir el esquema 16bit/16bit (el que nos comentaba Chema) a 
24bit/24bit (por decir algo), sobretodo para máquinas de 64-bits.

Saludos,

-- 
Francesc Alted
------------ próxima parte ------------
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes


Más información sobre la lista de distribución Python-es