2012-07-06 12 views
5

Estoy analizando cientos de millones de registros JSON y almacenando los componentes relevantes de cada uno en un dict. El problema es que debido a la cantidad de registros que estoy procesando, Python se ve obligado a aumentar varias veces el tamaño de la tabla hash subyacente de dict. Esto tiene como resultado MUCHOS datos que se deben volver a generar. La gran cantidad de repetición parece costar mucho tiempo. Por lo tanto, me pregunto si hay una manera de establecer un tamaño mínimo en la tabla hash subyacente de dict para minimizar el número de operaciones de cambio de tamaño.python dict set min_size

He leído this en la optimización del pitón dict, a partir de una respuesta en this question, pero no puedo encontrar la manera de cambiar el tamaño inicial de un dict 's tabla hash. Si alguien puede ayudarme con esto, estaría muy agradecido.

Gracias

Respuesta

2

Si hace esto:

a = dict.fromkeys(range(n)) 

que obligará al tamaño del diccionario para acomodar n elementos. Es bastante rápido después de eso, pero se necesitan 3s para hacerlo.

+0

Claro, eso me da el tamaño correcto. Pero no me da las llaves correctas. Tendría que eliminar todas las 'n' muchas claves y repoblar con las correctas, ya que proceso cada registro JSON. ¿No sería eso lento? – inspectorG4dget

+0

Debería ayudar con la velocidad. Escribe una pequeña prueba que lo haga. Creará un dict de un tamaño conocido con todos los valores predeterminados como Ninguno o un valor de su elección –

+0

¿No hay una solución más ordenada que el artificial que sopla la estructura de datos con valores basura? :( – comiventor

Cuestiones relacionadas