-
Notifications
You must be signed in to change notification settings - Fork 1
Benchmarks
Sam edited this page Jul 12, 2024
·
4 revisions
Comparing against;
- CrabFetch - Built from Commit 8f61867 w/ 'music' feature flag.
- FastFetch - Version 2.18.1 as shipped by FastFetch's releases.
- NeoFetch (Deprecated) - Version 7.1.0-2 as shipped by Arch Linux.
CrabFetch Config
modules = [
"hostname",
"underline:16",
"cpu",
"gpu",
"memory",
"swap",
"mounts",
"host",
"displays",
"os",
"packages",
"desktop",
"terminal",
"shell",
"editor",
"uptime",
"locale",
"music",
"initsys",
"processes",
"space",
"colors",
"bright_colors"
]
seperator = " > "
title_color = "bright_magenta"
title_bold = false
title_italic = false
decimal_places = 2
inline_values = false
underline_character = '―'
segment_top = "{color-white}[======------{color-brightmagenta} {name} {color-white}------======]"
segment_bottom = "{color-white}[======------{color-brightmagenta} {name_sized_gap} {color-white}------======]"
progress_left_border = '['
progress_right_border = ']'
progress_progress = '='
progress_empty = ' '
progress_target_length = 20
use_ibis = true
suppress_errors = true
percentage_color_thresholds = [
"75:brightgreen",
"85:brightyellow",
"90:brightred"
]
[ascii]
display = true
colors = ["bright_magenta"]
margin = 4
[hostname]
title = ""
format = "{color-brightmagenta}{username}{color-white}@{color-brightmagenta}{hostname}"
[cpu]
title = "CPU"
format = "{name} ({core_count}c {thread_count}t) @ {max_clock_ghz} GHz"
[gpu]
method = "pcisysfile"
cache = false
amd_accuracy = true
ignore_disabled_gpus = false
title = "GPU"
format = "{vendor} {model} ({vram})"
[memory]
title = "Memory"
format = "{used} / {max} ({percent})"
[swap]
title = "Swap"
format = "{used} / {total} ({percent})"
[mounts]
title = "Disk ({mount})"
format = "{space_used} used of {space_total} ({percent}) [{filesystem}]"
ignore = ["/boot", "/snap", "tmpfs", "vfat"]
[host]
title = "Host"
[displays]
title = "Display ({name})"
format = "{width}x{height} @ {refresh_rate}Hz"
[os]
title = "Operating System"
format = "{distro} ({kernel})"
[packages]
title = "Packages"
format = "{count} ({manager})"
ignore = []
[desktop]
title = "Desktop"
format = "{desktop} ({display_type})"
[terminal]
title = "Terminal"
chase_ssh_pts = false
[shell]
title = "Shell"
format = "{shell}"
show_default_shell = false
[uptime]
title = "Uptime"
[editor]
title = "Editor"
format = "{name}"
fancy = true
[locale]
title = "Locale"
format = "{language} ({encoding})"
[music]
title = "Music"
format = "{track} by {track_artists} ({album})"
player = "spotify"
[battery]
title = "Battery"
format = "{percentage}%"
[initsys]
title = "Init System"
[processes]
title = "Total Processes"
FastFetch Config
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"logo": {
"color": {
"1": "35",
"2": "35"
}
},
"display": {
"color": "35",
"separator": " > "
},
"general": {
"detectVersion": false
},
"modules": [
"title",
"separator",
"cpu",
"gpu",
"memory",
"swap",
"disk",
"host",
"display",
"os",
"kernel",
"packages",
"wm",
"terminal",
"shell",
"editor",
"uptime",
"locale",
"media",
"initsystem",
"processes",
"break",
"colors"
]
}
NeoFetch Config
print_info() {
info title
info underline
info "CPU" cpu
info "GPU" gpu
info "Memory" memory
info "Disk" disk
info "Host" model
info "Resolution" resolution
info "OS" distro
info "Kernel" kernel
info "Packages" packages
info "DE" de
info "Terminal" term
info "Shell" shell
info "Uptime" uptime
info "Locale" locale # This only works on glibc systems.
info "Song" song
info cols
}
title_fqdn="off"
kernel_shorthand="on"
distro_shorthand="off"
os_arch="on"
uptime_shorthand="on"
memory_percent="off"
memory_unit="mib"
package_managers="on"
shell_path="off"
shell_version="on"
speed_type="bios_limit"
speed_shorthand="off"
cpu_brand="on"
cpu_speed="on"
cpu_cores="logical"
cpu_temp="off"
gpu_brand="on"
gpu_type="all"
refresh_rate="off"
gtk_shorthand="off"
gtk2="on"
gtk3="on"
public_ip_host="http://ident.me"
public_ip_timeout=2
de_version="on"
disk_show=('/')
disk_subtitle="mount"
disk_percent="on"
music_player="auto"
song_format="%artist% - %album% - %title%"
song_shorthand="off"
mpc_args=()
colors=(13 5 15 13 15 15)
bold="on"
underline_enabled="on"
underline_char="-"
separator=":"
block_range=(0 15)
color_blocks="on"
block_width=3
block_height=1
col_offset="auto"
bar_char_elapsed="-"
bar_char_total="="
bar_border="on"
bar_length=15
bar_color_elapsed="distro"
bar_color_total="distro"
cpu_display="off"
memory_display="off"
battery_display="off"
disk_display="off"
image_backend="ascii"
image_source="auto"
ascii_distro="auto"
ascii_colors=(13)
ascii_bold="on"
image_loop="off"
thumbnail_dir="${XDG_CACHE_HOME:-${HOME}/.cache}/thumbnails/neofetch"
crop_mode="normal"
crop_offset="center"
image_size="auto"
gap=3
yoffset=0
xoffset=0
background_color=
stdout="off"
All benchmarks we're done using the "hyperfine" tool, version 1.18.0
All benchmarks were done on the same system running the following specs;
- CPU: Ryzen 7 5800HS
- GPU: Built-in APU
- Memory: 22.88 GiB
- Form-Factor: Laptop
Some benchmarks were performed in live-boot environments, these benchmarks are noted as such.
To transfer exact binaries and config files between systems, everything was put on a singular USB stick with a script used to place in config files into their default positions. From there the binaries on those USB sticks were ran, meaning the same version and builds were running at the same time. Another script simply runs the binaries to ensure that they work and have correct configs, and a finals script was used to run the hyperfine benchmark.
create-configs.sh
#/bin/sh
ROOT_DIR=$(dirname `realpath $0`)
mkdir ~/.config/CrabFetch
mkdir ~/.config/fastfetch
mkdir ~/.config/neofetch
cp c-crabfetch ~/.config/CrabFetch/config.toml
cp c-fastfetch ~/.config/fastfetch/config.jsonc
cp c-neofetch ~/.config/neofetch/config.conf
verify.sh
#!/bin/sh
chmod +x ./crabfetch
chmod +x ./fastfetch
chmod +x ./neofetch
echo CrabFetch:
./crabfetch
echo FastFetch:
./fastfetch
echo NeoFetch:
./neofetch
bench.sh
#!/bin/sh
./hyperfine "./crabfetch" "./fastfetch" "./neofetch" -N --warmup 50