|

ptop: la copia de vtop en Rust que usa 93% menos RAM

En pocas palabras: ptop es una reescritura en Rust de vtop 0.6.1, el monitor de recursos para terminal hecho en Node.js. En el benchmark de su autor sobre un Apple M2 Max, ptop 0.1.0 usó 7,31 MiB de RAM propia contra 111,18 MiB de vtop, con licencia MIT y 12 temas.

El ptop monitor Rust es una reescritura en Rust de vtop, el monitor de sistema para terminal que corre sobre Node.js. Según el benchmark que publicó su autor, ptop 0.1.0 usó 7,31 MiB de RAM contra 111,18 MiB de vtop 0.6.1, en una Mac con Apple M2 Max.

ptop («Pate’s top») es un monitor de recursos para terminal que muestra historial de CPU y memoria con gráficos de puntos, una lista de procesos agrupados y controles de teclado y mouse. Es una copia de vtop escrita en Rust, tiene licencia MIT y trae 12 temas incluidos. Corre en macOS y Linux, aunque el binario precompilado por npm hoy es solo para Apple Silicon.

En 30 segundos

  • ptop es una copia en Rust de vtop 0.6.1, con los mismos gráficos de puntos, la misma lista de procesos y 12 temas.
  • En el benchmark del autor, la RAM propia bajó de 111,18 MiB a 7,31 MiB (≈93% menos) y el CPU de 27,20% a 23,02% de un núcleo (≈15% menos).
  • Se instala con npm install -g @patebryant/ptop en Apple Silicon con macOS 15 o superior; en Linux se compila con cargo install.
  • Mac Intel y otras distribuciones de Linux todavía no están todas verificadas.

¿Qué diferencias tiene el ptop monitor Rust frente a vtop?

Por dentro, todo: ptop es Rust y vtop es JavaScript. Por fuera, casi nada, porque el objetivo declarado es que se vea y se comporte igual. Las diferencias deliberadas son cuatro: el nombre ptop, un footer sin link, actualizaciones manuales y ninguna consulta a npm en segundo plano ni llamadas a sudo para autoactualizarse.

vtop es el original: según su repositorio, se instala con npm install -g vtop, dibuja los gráficos con caracteres braille Unicode mediante drawille y agrupa los procesos con el mismo nombre. En macOS a veces pide sudo para instalarse.

El autor, que publica como patebryant, lo explica sin vueltas en su post de dev.to: «quería una versión más performante que funcione exactamente igual» (traducción mía del original en inglés). Es un proyecto personal, no un producto de una empresa.

Una aclaración que importa: tanto el artículo original como el proyecto declaran que se desarrollaron con asistencia de IA. No invalida nada, pero conviene saberlo antes de ponerlo en una máquina de producción. Para más detalles técnicos, mirá soporte de Linux para el chip T1.

¿Cuánta RAM y CPU ahorra ptop frente a vtop?

Según el benchmark publicado por el autor en dev.to, ptop 0.1.0 usó 7,31 MiB de memoria propia (RSS) contra 111,18 MiB de vtop 0.6.1, unas 93% menos. En CPU, 23,02% contra 27,20% de un núcleo, alrededor de 15% menos.

Mediciónvtop 0.6.1ptop 0.1.0Diferencia
RSS medio (memoria propia)111,18 MiB7,31 MiB≈93% menos
CPU medio (% de un núcleo)27,20%23,02%≈15% menos
ptop monitor rust diagrama explicativo

Las condiciones: tres pares de corridas de 20 segundos en un Apple M2 Max con macOS 15.4.1, terminal de 100×30, intervalo de 300 ms, tema parallax y mouse deshabilitado. ptop corrió en su modo de compatibilidad con vtop. El CPU incluye los procesos hijos de los sensores, mientras que el RSS mide solo al monitor, no todo su árbol de procesos.

Mi lectura: la RAM es el dato fuerte (de 111 a 7 MiB no se discute como orden de magnitud), pero el CPU mejora poco. Y ojo, es un benchmark del propio autor, con una sola máquina y una sola carga. Además, no mide las versiones 0.1.1 o posteriores, así que el número no aplica tal cual al paquete que instalarías hoy.

¿Cómo se instala ptop en macOS y Linux?

En una Mac con Apple Silicon y macOS 15 o superior, se instala con npm install -g @patebryant/ptop y se ejecuta con ptop. En Linux hay que compilar con cargo install --git https://github.com/patebry/ptop --locked. Se sale con la tecla q.

  • macOS (Apple Silicon): el paquete npm trae el ejecutable nativo ya compilado. No necesitás Rust, y según el README no hay wrapper de Node residente ni descarga del binario durante la instalación.
  • Linux: requiere Rust 1.92.0 y las herramientas ps, free, hostname y killall. Lee el CPU desde /proc/stat. Ubuntu corre en CI junto con macOS.
  • Límites: el paquete npm incluye solo el binario macOS ARM64. Las otras distribuciones y arquitecturas no están todas verificadas, y las compilaciones desde código fuente en Mac Intel tampoco.

El autor aclara que lo del binario es una limitación de empaquetado, no del programa. Si tenés una Mac Intel, probar el build desde fuente es una apuesta tuya: nadie verificó que funcione. Cubrimos ese tema en detalle en el caso de Omarchy en las Mac.

¿Qué tan compatible es ptop con vtop?

La referencia es vtop 0.6.1 y el harness de pruebas compara 90 cuadros de fixtures contra el renderer original, más un cuadro aparte para el branding de ptop. Eso es evidencia concreta de compatibilidad visual, no una garantía de que toda terminal y toda carga de trabajo se comporten idéntico.

Además de los cuadros, el repositorio prueba la salida de línea de comandos, el manejo de entrada, los tiempos de los sensores y la restauración de la terminal al salir. Ese último punto es el que más se agradece cuando un monitor se cierra mal y te deja la consola hecha un desastre (a todos nos pasó alguna vez).

Hay dos flags para tener en cuenta. --vtop-parity restaura el nombre, el footer y el comportamiento de actualización de vtop, incluido el uso de npm/sudo en la tecla de update, y está pensado para pruebas de referencia. --fix corrige la aritmética de memoria de vtop en macOS; por defecto se mantiene el comportamiento de compatibilidad.

¿Cómo se usa ptop? Atajos y temas

Los controles son los de vtop: j y k mueven la selección, c ordena por CPU, m por memoria y q sale. El tema se cambia al arrancar con ptop -t nord, y los 12 temas vienen dentro del binario. Relacionado: errores de trust policy con OIDC en AWS.

  • Navegación: g y G van al primer y último proceso; H, M y L al tope, medio y fin de la lista visible; Ctrl-d, Ctrl-b y Ctrl-f paginan.
  • Gráficos: h y l cambian el zoom.
  • Mouse: el clic selecciona y la rueda mueve dos filas. Con --no-mouse se desactiva.
  • Terminar procesos: según el README, dd termina los procesos del comando seleccionado, igual que en vtop. Fijate bien qué tenés seleccionado antes de apretarlo, porque mata todo el grupo.
  • Actualizar: u o Ctrl-u sale limpio y muestra el comando manual de npm. No actualiza solo.

La lista completa está en el README del repositorio.

¿Cómo comprobar el ahorro en tu propia máquina?

Una propuesta editorial (no sale de la fuente ni la probamos nosotros): corré ambos monitores en terminales del mismo tamaño y con el mismo intervalo de actualización, dejalos 20 segundos y leé el RSS de cada proceso con ps -o rss= -p <PID>, que devuelve KiB. Repetí tres veces y promediá.

El repositorio de ptop tiene sus propias instrucciones de benchmark, que incluyen el CPU de los procesos hijos. Si tu lista de procesos es mucho más larga que la del autor, o si usás otro intervalo, los números van a variar. Eso es esperable y no refuta nada.

¿Qué está confirmado y qué no?

Confirmado por las fuentesPendiente o sin verificar
Reescritura en Rust de vtop, licencia MIT, 12 temasFuncionamiento en Mac Intel (compilación desde fuente)
Binario npm para Apple Silicon con macOS 15 o superiorTodas las distribuciones y arquitecturas de Linux
90 cuadros comparados contra el renderer de vtop 0.6.1Idéntico comportamiento en toda terminal y carga
Benchmark de ptop 0.1.0 vs. vtop 0.6.1 en un M2 MaxResultados de las versiones 0.1.1 o posteriores

Las cifras de rendimiento salen del propio autor y no encontré una réplica independiente en las fuentes. Tomalas como un punto de partida.

Errores comunes

  • Esperar el 93% en cualquier equipo. Ese número vale para una carga, una terminal y un intervalo concretos. Medilo antes de contarlo como hecho en tu entorno.
  • Instalar por npm en Linux o en una Mac Intel. El paquete trae solo el binario macOS ARM64. En Linux, usá cargo install.
  • Buscar actualizaciones automáticas. ptop no consulta npm ni usa sudo por su cuenta. Para actualizar, corré de nuevo npm install -g @patebryant/ptop.
  • Apretar dd sin mirar. Termina todos los procesos del grupo seleccionado, no solo uno.

Preguntas Frecuentes

¿Qué es ptop y en qué se diferencia de vtop?

ptop es una reescritura en Rust de vtop, un monitor de sistema para terminal. Mantiene gráficos de puntos, lista de procesos y 12 temas, pero cambia el nombre, quita el link del footer y no se actualiza solo. Esto se conecta con lo que analizamos en monitorear GitHub Actions desde la terminal.

¿Cómo se instala ptop en una Mac con Apple Silicon?

Con macOS 15 o superior, ejecutá npm install -g @patebryant/ptop y después ptop. No necesitás Rust, porque el paquete trae el binario nativo ya compilado.

¿Cuánta memoria menos usa ptop que vtop?

En el benchmark del autor, ptop 0.1.0 usó 7,31 MiB contra 111,18 MiB de vtop 0.6.1, alrededor de 93% menos. Es una medición propia sobre un Apple M2 Max y una sola carga.

¿ptop funciona en Linux o en Mac con Intel?

En Linux funciona y se instala desde código fuente con Rust 1.92.0; Ubuntu se prueba en CI. En Mac Intel, las compilaciones desde fuente todavía no están verificadas.

¿Cómo cambio el tema o el orden de procesos en ptop?

El tema se elige al arrancar, por ejemplo ptop -t nord. Dentro del programa, c ordena por CPU y m por memoria.

Conclusión

ptop no inventa nada: toma una interfaz que ya funcionaba y le saca peso. Si usás vtop en una Mac con Apple Silicon y te molesta tener un monitor que gasta más memoria que muchas de las cosas que monitorea, probarlo cuesta un comando de npm. Si estás en Linux, vas a compilar; si tenés una Mac Intel, esperá a que se verifique.

Antes de reemplazar a vtop en todos tus equipos, medí con tu propia carga, porque los números publicados son del autor y de un solo equipo. Eso sí: la RAM es el argumento más sólido de ptop, y el CPU, por ahora, es una mejora menor.

Fuentes

Te puede interesar...