Capacidad de una lista en Mojo
Un List duplica su buffer al crecer, y por eso los append salen baratos.
def main():
var grown = List[Int]()
for i in range(5):
grown.append(i)
print(len(grown), grown.capacity)
var sized = List[Int](capacity=64)
sized.reserve(128)
print(len(sized), sized.capacity)
Cómo funciona
- Imprimir
lenycapacityen cada append deja ver la duplicación. List[Int](capacity=64)pide lugar por adelantado.reserveagranda más el buffer sin agregar ningún elemento.
Palabras clave y builtins usados aquí
IntListdefforlenprintrangevar
El intento, en números
- Líneas
- 8
- Caracteres a escribir
- 192
- Tokens
- 60
- Ritmo de tres estrellas
- 75 tpm
Al ritmo de tres estrellas de 75 tokens por minuto, este intento toma unos 48 segundos.
Paso 3 de 4 en Memoria; paso 19 de 22 en Parámetros y SIMD.