La bandera --benchmark muestra información de tiempo para la fase de sondeo paralelo y la ejecución total:
xfetch --benchmark
Ejemplo de salida:
Parallel probes: 127ms
Total time: 189ms
La medición de tiempo cubre:
thread::scope)xfetch almacena en caché ciertos datos para mejorar el rendimiento en ejecuciones repetidas.
La caché se almacena como un archivo JSON en:
| Plataforma | Ruta |
|---|---|
| Linux | ~/.cache/xfetch/cache.json |
| macOS | ~/Library/Caches/xfetch/cache.json |
| Windows | %LOCALAPPDATA%/xfetch/cache.json |
| Dato | TTL | Propósito |
|---|---|---|
| Conteos de paquetes | 5 minutos | Evitar ejecutar múltiples comandos de gestores de paquetes |
| IP pública | 5 minutos | Evitar peticiones HTTP repetidas |
# Limpiar todos los datos en caché
xfetch --clean-cache
Establezca disable_cache: true en su configuración para deshabilitar el almacenamiento en caché por completo:
{
"disable_cache": true
}
Esto es útil en entornos donde el estado del sistema cambia frecuentemente o cuando desea los datos más actualizados en cada ejecución.
xfetch proporciona opciones para controlar el acceso a la red y la recopilación de datos.
El módulo public_ip realiza una petición HTTP a un servicio externo. Para deshabilitarlo por privacidad:
{
"disable_ip_fetching": true
}
Cuando está habilitado, el módulo public_ip devolverá "Disabled" en lugar de intentar obtener la dirección IP.
El módulo meteorológico basado en plugins también realiza llamadas a API externas. Para deshabilitarlo, simplemente elimine el plugin de su configuración.
| Módulo | Acceso a Red | Servicio Externo |
|---|---|---|
public_ip | Sí | ifconfig.me, api.ipify.org, icanhazip.com |
plugin:weather | Sí (si está instalado) | wttr.in |
plugin:github-stats | Sí (si está instalado) | api.github.com |
| Todos los demás módulos | No | N/A |
xfetch se adapta automáticamente al sistema operativo.
| Módulo | Linux | macOS | Windows |
|---|---|---|---|
| GPU | lspci -mm | system_profiler SPDisplaysDataType | wmic o PowerShell |
| Batería | /sys/class/power_supply/BAT* | pmset -g batt | wmic path Win32_Battery |
| Shell | $SHELL | $SHELL | Verificación de $PSModulePath |
| Fecha/Hora | Comando date | Comando date | PowerShell |
| Paquetes | pacman, dpkg, rpm, flatpak, snap, apk, nix-env | brew | scoop, choco |
| Ruta de configuración | ~/.config/xfetch/ | ~/Library/Application Support/xfetch/ | %APPDATA%/xfetch/ |
| Ruta de caché | ~/.cache/xfetch/ | ~/Library/Caches/xfetch/ | %LOCALAPPDATA%/xfetch/ |
| Nombre de binario | xfetch-plugin-<nombre> | xfetch-plugin-<nombre> | xfetch-plugin-<nombre>.exe |
xfetch usa cadenas de fallback graceful para funcionalidades específicas de plataforma:
/etc/timezone > enlace simbólico /etc/localtime > timedatectlxfetch emplea varias optimizaciones de rendimiento:
Los siguientes sondeos se ejecutan concurrentemente usando thread::scope de Rust:
Esto reduce el tiempo total de ejecución al ejecutar operaciones de E/S en paralelo.
Los recursos del sistema se inicializan solo cuando se solicita el módulo correspondiente:
sysinfo::System (CPU, memoria, discos, redes) -- inicializado perezosamentesysinfo::Disks -- inicializado solo si un módulo de disco está configuradosysinfo::Networks -- inicializado solo si un módulo de red está configuradosysinfo::Components -- inicializado solo si se configuraron módulos de temperaturaLos conteos de paquetes y las consultas de IP pública se almacenan en caché con TTL para evitar llamadas redundantes al sistema y peticiones de red.
| Variable | Descripción | Usado Por |
|---|---|---|
USER / LOGNAME | Nombre de usuario actual | Módulos del núcleo (user) |
SHELL | Ruta del shell actual | Módulos del núcleo (shell) |
HOME | Ruta del directorio home | Módulos del núcleo, descubrimiento de plugins |
TERM_PROGRAM | Nombre del emulador de terminal | Módulos del núcleo (terminal) |
TERM | Tipo de terminal | Módulos del núcleo (terminal) |
WT_SESSION | Sesión de Windows Terminal | Módulos del núcleo (terminal) |
XDG_CURRENT_DESKTOP | Entorno de escritorio | Módulos del núcleo (wm) |
DESKTOP_SESSION | Nombre de la sesión de escritorio | Módulos del núcleo (wm) |
XFETCH_PLUGIN_REPO | URL del repositorio de plugins | Instalación de plugins |
XFETCH_PLUGIN_DEV_DIR | Directorio de desarrollo de plugins | Descubrimiento de plugins |
GITHUB_USER | Nombre de usuario de GitHub | Plugin github-stats |
CARGO_NET_GIT_FETCH_WITH_CLI | Forzar git CLI fetch | Compilaciones de plugins |