Skip to content

ribeiro-boll/FastprocV2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

linux license badge usage

🖥️ FastprocV2

CLI Demo

Índice

Português

English


🇧🇷 Português

Visão Geral

fastprocV2 é um gerenciador de processos em modo terminal desenvolvido em C com ncurses. O projeto foca em oferecer uma interface compacta e eficiente, realizando leitura direta do /proc para monitoramento em tempo real, com uso de concorrência e manipulação otimizada de dados.

FastprocV2 aberto junto com outro programa

CLI Demo res


Funcionalidades

  • Listagem de processos em tempo real

  • Exibição de:

    • PID
    • Nome do processo
    • Uso de CPU
    • Uso de memória (RAM)
    • Número de threads
  • Ordenação por:

    • RAM
    • CPU
    • PID
    • Threads
  • Filtro por nome de processo

  • Atualização contínua dos dados

  • Navegação interativa via teclado

  • Encerramento de processos (SIGTERM)


Controles

  • W / → mover seleção para cima
  • S / → mover seleção para baixo
  • K → encerrar processo selecionado
  • 1 → ordenar por RAM
  • 2 → ordenar por CPU
  • 3 → ordenar por PID
  • 4 → ordenar por Threads
  • Enter → iniciar/parar busca por nome
  • Q → sair

Instalação

1. Compilar

make

2. Executar

./fastproc

3. Instalar no sistema

Instala o binário em /usr/local/bin e adiciona o atalho no menu:

sudo make install

4. Remover

sudo make remove

5. Limpar build

make clean

Como Funciona (Internamente)

1. Coleta de dados (thread separada)

Uma thread dedicada:

  • Percorre /proc
  • Identifica processos
  • /proc/[pid]/stat
  • Extrai CPU, memória e threads
  • Calcula uso de CPU com base na diferença de ticks

Utiliza:

  • HashMap para armazenar CPU anterior por PID
  • Diferença entre leituras de /proc/stat

2. Interface (thread principal)

Responsável por:

  • Renderização com ncurses
  • Entrada do usuário
  • Controle de ordenação e filtro

Para evitar inconsistência:

  • Uso de mutex
  • Deep copy dos dados antes de renderizar

3. Filtro e Ordenação

  • Filtro por prefixo (strncmp)
  • Ordenação manual com base no critério selecionado

Tecnologias Utilizadas

  • C
  • pthread
  • ncurses
  • /proc (Linux)

🇺🇸 English

Overview

fastprocV2 is a terminal-based process manager written in C using ncurses. The project focuses on providing a compact and efficient interface, performing direct /proc parsing for real-time monitoring, with the use of concurrency and optimized data handling.

FastprocV2 running with a other program

CLI Demo res


Features

  • Real-time process listing

  • Displays:

    • PID
    • Process name
    • CPU usage
    • Memory usage
    • Thread count
  • Sorting by:

    • RAM
    • CPU
    • PID
    • Threads
  • Name filtering

  • Continuous updates

  • Interactive navigation

  • Process termination (SIGTERM)


Controls

  • W / → move up
  • S / → move down
  • K → kill process
  • 1 → sort by RAM
  • 2 → sort by CPU
  • 3 → sort by PID
  • 4 → sort by Threads
  • Enter → toggle search
  • Q → quit

Installation

1. Build

make

2. Run

./fastproc

3. Install system-wide

Installs the binary to /usr/local/bin and adds a desktop entry:

sudo make install

4. Remove

sudo make remove

5. Clean

make clean

How It Works (Internals)

1. Data collection (separate thread)

  • Scans /proc
  • Reads /proc/[pid]/stat
  • Extracts CPU, memory, threads
  • Computes CPU usage using tick differences

Uses:

  • HashMap for previous CPU values
  • /proc/stat comparison

2. Interface (main thread)

  • Renders UI with ncurses
  • Handles input
  • Manages sorting and filtering

Ensures safety with:

  • Mutex
  • Deep copy before rendering

3. Filtering and Sorting

  • Prefix-based filtering (strncmp)
  • Manual sorting

Technologies Used

  • C
  • pthread
  • ncurses
  • /proc (Linux)

About

Terminal-based process manager written in C using ncurses. Featuring a compact UI, displaying CPU, memory, threads, and allows real-time sorting and filtering of processes.

Topics

Resources

License

Stars

Watchers

Forks

Contributors