Etiquetas de puesto para una tabla de clasificación

Empate

Requisito

Una tabla de clasificación ya viene ordenada por puntuación, de mayor a menor. Imprime una etiqueta de puesto por jugador —posición empezando en 1, nombre y puntuación—. Los datos están en el código de abajo; ambas versiones deben imprimir las líneas que aparecen bajo Salida esperada.

Salida esperada
1. Hana (982 pts)
2. Dan (951 pts)
3. Ava (917 pts)
4. Finn (862 pts)
5. Cara (840 pts)
6. Ben (799 pts)

Lado a lado

Dart nativo

FxDart

Por qué difieren

Solo en el nombre. El indexed de Dart 3 produce exactamente los mismos records (index, element) que produce zipWithIndex en FxDart, así que los dos callbacks de map son idénticos carácter por carácter: un empate limpio y un buen ejemplo de la librería básica de Dart poniéndose al día (antes de los records y de indexed, el lado nativo era un contador manual). Usa zipWithIndex cuando ya estés dentro de una cadena fx —también existe en las cadenas asíncronas— e indexed en todo lo demás.

Benchmark

Apple M1 Max, 32 GB de RAM · Dart 3.12.2 (compilado AOT) · 2026-08-24

N = 100

Tiempo Empate

Dart nativo 15 µs
FxDart 15 µs

Memoria pico Empate

Dart nativo 16.4 MB
FxDart 16.5 MB

N = 10,000

Tiempo Empate

Dart nativo 1.69 ms
FxDart 1.72 ms

Memoria pico Gana nativo

Dart nativo 34.8 MB
FxDart 37.8 MB

N = 1,000,000

Tiempo Empate

Dart nativo 226.0 ms
FxDart 232.7 ms

Memoria pico Gana FxDart

Dart nativo 239.5 MB
FxDart 223.1 MB

Las barras son medianas de iteraciones cronometradas repetidas en procesos nuevos por lado (los N pequeños se agrupan por resolución del temporizador). Dos lados a menos del 5% entre sí — o a menos de 0.6 ms, una diferencia que nadie puede percibir — cuentan como empate; las carreras relativas ajustadas se vuelven a medir hasta 5 veces. En una app, cualquier cosa por debajo de unos pocos milisegundos es invisible para el usuario, gane la barra que gane. La memoria es el RSS pico del proceso. La VM de Dart y el dataset son idénticos en ambos lados, así que la diferencia entre las dos barras es lo que retiene el pipeline en sí.