zsh-bench
prezto
zsh-bench | prezto | |
---|---|---|
24 | 34 | |
494 | 13,793 | |
- | - | |
4.1 | 7.1 | |
6 months ago | 17 days ago | |
Shell | Shell | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
zsh-bench
-
Oh My Zsh
Someone's made a benchmarking system for zsh: https://github.com/romkatv/zsh-bench#premade-configs
Of course, their config is the best according to the benchmark (and ohmyzsh is the slowest option), but DIY configs are also covered, particularly possible performance optimizations.
-
Faster Shell Startup with Shell Switching
Unfortunately, running exit is not a great strategy for running benchmarks. For zsh specifically, plugin managers are optimized for fast exit.
romkatv did a great write-up and benchmark within the context of zsh[0]. It's a great read.
[0] https://github.com/romkatv/zsh-bench#how-not-to-benchmark
- Dynamic Aliases and Functions in Zsh
- Benchmark for interactive zsh – plugins, frameworks and plugin managers
- zsh-smartcache: another evalcache but can update the cache
-
Announcing Spaceship v4.0 — a customizable Zsh prompt with asynchronous rendering
Given the addition of async rendering in the latest release of spaceship, I wasn't sure whether I should include performance in the list of features found in powerlevel10kbut but not in spaceship. I used zsh-bench to benchmark powerlevel10k on my laptop running on battery (I'm writing this on a train) with a config that makes powerlevel10k looks similar to spaceship. I simply ran p10k configure and chose what looked most similar: Lean Style, UNICODE, 256 colors, two lines, etc. Here are the benchmark results:
-
7x slowdown when modify $fpath and add completion script
Obligatory link since you are engaging in profiling interactive zsh: https://github.com/romkatv/zsh-bench.
-
What is the best plugin manager in your opinion?
1.) It's fast. Like, really fast. 1.) It supports deferred loading via zsh-defer 1.) It supports local plugins as well as ones hosted via a git provider (aka: GitHub, GitLab, BitBucket, etc) 1.) The codebase is simple and easy to understand and contribute to 1.) It supports git branches (with tag/shas on the roadmap) 1.) It supports partial plugin loading such as loading Oh-My-Zsh plugins and Prezto modules without loading the whole framework. 1.) There's an easy migration path from legacy plugin managers like Antigen/Antibody. 1.) Plugins are managed via a simple plugins file that makes it easy to share your config with others. 1.) And lots more
-
Zsh significantly faster when sourced from bash with bash as default shell
In any case, slow zsh startup is always caused by whatever you put in zsh startup files and it's always possible to reduce zsh startup to imperceptible levels without sacrificing any functionality by editing said startup files. There is a bit of info on interactive zsh performance at https://github.com/romkatv/zsh-bench.
-
Zpy is a simple zsh plugin manager written in python that don't add to the shell startup time.what to y'all think?
Why is this a good thing? Is this a proxy for performance? If so, you can measure performance directly with zsh-bench. This way you can describe the advantage in terms that have real value to end users. For example, you can say that the first prompt appears N milliseconds faster when using Zpy than if you were using something-else.
prezto
-
Carapace: A multi-shell completion library and binary
Beyond zprof (https://www.bigbinary.com/blog/zsh-profiling) not really I'm afraid. I did the majority of my zsh-prompt hacking 10 years ago and haven't thought about it since. That snippet could be from anywhere.
You could peek at something like zprezto https://github.com/sorin-ionescu/prezto or pure https://github.com/sindresorhus/pure for tips.
Fetching git/hg/... info is always slow, so try and speed that up where you can (as to how to do that, uhh... I know my prompt has a dirty-state check nicked from pure for speed reasons). You can also cache any `asdf init zsh` or similar to a file and do the same "run in background" trick so the next shell will have any changes.
The biggest improvement I can remember was dropping zprezto for my own much smaller config, I really did not need much comparatively. Mostly some git info and "good default" options. I use zgenom for a plugin manager but only have 3 plugins, probably I should just dump it and inline the plugins to avoid getting owned one day.
-
I think Linux might be the superior platform for gaming at this point.
Is the command line really so scary? I enjoy using it from time-to-time (usually not for gaming related reasons) and I like things like Prezto to make it look pretty.
- no-my-zsh Killed My History
- What is the best alternative to the Guake terminal in macOS with the most closed-in look and functionality?
-
Best terminal app for MacOs
I switched from Oh My Zsh to Prezto years ago. OMZ at the time was excruciatingly slow, but that may have changed. Maybe I should take another look at it, but Prezto has been great.
-
I was frustrated with the way Windows handles Hebrew on Latin keyboards, so I wrote an open-source IME for Hebrew to make it easier! You download it, type in the phonetics, and it gives you the Hebrew.
I installed iTerm2 and zsh shell with Prezto and I love my command line on OSX I use homebrew to install any tools that are missing and use pyenv to manage my python version (which I also do on Linux) that and the clang/gcc from the OSX command line tools and I pretty much have a full Un*x shell for anything I need to do
-
Reasons to change the default terminal to Warp
Moreover, there are tools were made on top of those to provide more functionalities, and fill some of the gaps, for instance, oh-my-zsh, Prezto, oh-my-fish, and much more. However, the default embedded terminal in macOS is still lacking something. That's why iTerm and other terminal like Hyper. It provides you a set of customization to boost your productivity.
-
How do I move git branch from right side to inside the prompt in prezto?
See terminal below. On the left side is my prompt, and on the right side is information I presume came from the git module in prezto.
-
Master any CLI tool with this one weird trick
I recently heard about prezto which is a fork of ohmyzsh but haven't tried it yet (most of the plugins I use are in ohmyzsh) it is more customizable and less bloated than ohmyzsh.
-
Choosing ZSH framework
If you want to try a different preconfigured shell environment, big names are Prezto and zsh4humans. Prezto, like OMZ, comes with a plugin manager built in; zsh4humans does not.
What are some alternatives?
fisher - A plugin manager for Fish
zimfw - Zim: Modular, customizable, and blazing fast Zsh framework
zinit - 🌻 Flexible and fast ZSH plugin manager
oh-my-zsh - 🙃 A delightful community-driven (with 1700+ contributors) framework for managing your zsh configuration. Includes nearly 300 optional plugins (rails, git, OSX, hub, capistrano, brew, ant, php, python, etc), over 140 themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community. [Moved to: https://github.com/ohmyzsh/ohmyzsh]
sheldon - :bowtie: Fast, configurable, shell plugin manager
powerlevel10k - A Zsh theme
zsh-z - Jump quickly to directories that you have visited "frecently." A native Zsh port of z.sh with added features.
zsh4humans - A turnkey configuration for Zsh
fish-shell - The user-friendly command line shell.
oh-my-fish - The Fish Shell Framework
zsh-snap - ⚡️ Znap! Fast, easy-to-use tools for Zsh dotfiles & plugins, plus git repos