1
0
Fork 0
mirror of https://github.com/romkatv/powerlevel10k.git synced 2024-11-11 00:00:06 +00:00

update benchmarks

This commit is contained in:
romkatv 2019-03-12 14:01:20 +01:00
parent c9ee989e38
commit bd06a514d7
2 changed files with 24 additions and 31 deletions

View file

@ -71,6 +71,10 @@ are still using the `POWERLEVEL9K` prefix though.
them with the "dirty" color (yellow by default) whether they are dirty or not. This makes git them with the "dirty" color (yellow by default) whether they are dirty or not. This makes git
prompt much faster on huge repositories. prompt much faster on huge repositories.
* `POWERLEVEL9K_EXPERIMENTAL_TIME_REALTIME (STRING) [default="false"]`
If set to true, `time` segment will update every second, turning into a realtime clock.
## Try it out ## Try it out
Try Powerlevel10k without making any changes to your setup. If you like it, see Try Powerlevel10k without making any changes to your setup. If you like it, see
@ -127,64 +131,53 @@ docker run -e LANG=C.UTF-8 -e LC_ALL=C.UTF-8 -e TERM=$TERM -it --rm ubuntu bash
## How fast is it? ## How fast is it?
Powerlevel10k renders prompt about 50 times faster than powerlevel9k/master (stable version) and Powerlevel10k renders prompt between 10 and 100 times faster than powerlevel9k.
about 15 times faster than powerlevel9k/next (beta version).
Here are benchmark results obtained with Here are benchmark results obtained with
[zsh-prompt-benchmark](https://github.com/romkatv/zsh-prompt-benchmark) on Intel i9-7900X [zsh-prompt-benchmark](https://github.com/romkatv/zsh-prompt-benchmark) on Intel i9-7900X
running Ubuntu 18.04. running Ubuntu 18.04.
| Theme | / | ~/nerd-fonts | | Theme | / | ~/linux |
|---------------------|----------:|-------------:| |---------------------|----------:| ---------:|
| powerlevel9k/master | 135 ms | 233 ms | | powerlevel9k/master | 101 ms | 280 ms |
| powerlevel9k/next | 27 ms | 107 ms | | powerlevel9k/next | 26 ms | 255 ms |
| **powerlevel10k** | **2 ms** | **6 ms** | | **powerlevel10k** | **1 ms** | **22 ms** |
| naked zsh | 1 ms | 1 ms | | naked zsh | 0.05 ms | 0.05 ms |
Columns define the current directory where the prompt was rendered. Columns define the current directory where the prompt was rendered.
* `/` -- root directory, not a git repo. * `/` -- root directory, not a git repo.
* `~/nerd-fonts` -- [nerd-fonts](https://github.com/ryanoasis/nerd-fonts) git repo * `~/linux` -- [https://github.com/torvalds/linux](https://github.com/torvalds/linux) git repo
with 4k files. with 60k files. It was checked out to an M.2 SSD.
powerlevel9k/master is the stable branch of powerlevel9k, the one that virtually everyone uses.
powerlevel9k/next is the development branch for the next release.
Here's how the prompt looked like during benchmarking. Here's how the prompt looked like during benchmarking.
![](https://raw.githubusercontent.com/romkatv/powerlevel10k/master/prompt.png) ![](https://raw.githubusercontent.com/romkatv/powerlevel10k/master/prompt.png)
It was identical in Powerlevel10k and Powerlevel9k. Even though Powerlevel10k can dynamically It was identical in Powerlevel10k and Powerlevel9k. Even though Powerlevel10k can dynamically
switch to async prompts, it wasn't happening here because latencies were low. Prompts with both switch to async prompts, it wasn't happening during the benchmark because latencies were low.
themes were essentially synchronous with every prompt having up-to-date git info. Prompts with both themes were essentially synchronous, with every prompt having up-to-date git info
(no greyed-out vcs/git segments).
_This table used to have another column for Linux kernel git repo, which is massive. It's
been removed because it's not a fair comparison. Powerlevel10k automatically detects that
fetching git status is slow and switches to async prompt generation, which allows it to
achieve 2 ms prompt latency but not all its prompt have up-to-date git info. Those that don't,
have vcs segment greyed out._
Configuration that was used: Configuration that was used:
```zsh ```zsh
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(dir_writable dir vcs) POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(dir_writable dir vcs)
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(status background_jobs time custom_rprompt) POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(status time)
POWERLEVEL9K_MODE=nerdfont-complete POWERLEVEL9K_MODE=nerdfont-complete
POWERLEVEL9K_PROMPT_ON_NEWLINE=true POWERLEVEL9K_PROMPT_ON_NEWLINE=true
POWERLEVEL9K_CUSTOM_RPROMPT=custom_rprompt POWERLEVEL9K_ROOT_ICON=\\uF09C
POWERLEVEL9K_ROOT_ICON=\\uF09CPOWERLEVEL9K_TIME_ICON=\\uF017 POWERLEVEL9K_TIME_ICON=\\uF017
POWERLEVEL9K_CUSTOM_RPROMPT_ICON=\\uF005
POWERLEVEL9K_TIME_BACKGROUND=magenta POWERLEVEL9K_TIME_BACKGROUND=magenta
POWERLEVEL9K_CUSTOM_RPROMPT_BACKGROUND=blue
POWERLEVEL9K_STATUS_OK_BACKGROUND=grey53 POWERLEVEL9K_STATUS_OK_BACKGROUND=grey53
POWERLEVEL9K_BACKGROUND_JOBS_BACKGROUND=orange1
POWERLEVEL9K_BACKGROUND_JOBS_FOREGROUND=black
function custom_rprompt() echo -E "hello world"
sleep 86400 & # spawn two background jobs
sleep 86400 &
``` ```
Powerlevel10k shows similar performance on Mac OS, FreeBSD, WSL, and Raspberry Pie. Powerlevel10k shows similar performance advantage over Powerlevel9k on Mac OS, FreeBSD, WSL, and
Raspberry Pie.
## What's the catch? ## What's the catch?

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 6 KiB