Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Performance Issues #3485

Open
VisenDev opened this issue Aug 31, 2024 · 4 comments
Open

Performance Issues #3485

VisenDev opened this issue Aug 31, 2024 · 4 comments

Comments

@VisenDev
Copy link

In testing Nyxt for the last few days, Nyxt seems noticably slower than other "developer" themed browsers.

In particular, when comparing nyxt to vimb (another browser which uses webkit). Nyxt is significantly slower in responding to user inputs.

Actions like opening the command input bar have a significant delay of a second or two.

I think this project is very cool and I would like to use is more, but these input processing delays make the browser almost unusable for me.

Precise recipe to reproduce the issue

I have tested nyxt version 3.11 on archlinux (installed from aur) and on voidlinux (installed with xbps). The same performance difference compared to vimb was present on both systems.

Information
Nyxt version 3.11

robertb@archlinux ~> neofetch
                   -`                    robertb@archlinux
                  .o+`                   -----------------
                 `ooo/                   OS: Arch Linux x86_64
                `+oooo:                  Host: 20HDCTO1WW ThinkPad T470
               `+oooooo:                 Kernel: 6.10.7-arch1-1
               -+oooooo+:                Uptime: 36 mins
             `/:-:++oooo+:               Packages: 565 (pacman)
            `/++++/+++++++:              Shell: fish 3.7.1
           `/++++++++++++++:             Resolution: 1920x1080
          `/+++ooooooooooooo/`           WM: i3
         ./ooosssso++osssssso+`          Theme: Adwaita [GTK3]
        .oossssso-````/ossssss+`         Icons: Adwaita [GTK3]
       -osssssso.      :ssssssso.        Terminal: alacritty
      :osssssss/        osssso+++.       CPU: Intel i7-7500U (4) @ 3.500GHz
     /ossssssss/        +ssssooo/-       GPU: Intel HD Graphics 620
   `/ossssso+/:-        -:/+osssso+-     Memory: 1523MiB / 31863MiB
  `+sso+:-`                 `.-/+oso:
 `++:.                           `-/+/
 .`                                 `/

Nyxt version: 3.11.8
Renderer: GI-GTK
Operating system kernel: Linux 6.10.7-arch1-1
Lisp implementation: SBCL 2.4.6 (Dynamic space size: 3221225472)
Features: (:NYXT-GI-GTK :NYXT-GTK :NYXT-GI-GTK :NYXT-GTK :NYXT-3.11 :NYXT-3 :NYXT-3.11.8
 :CLIPBOARD-CONTENT-METHOD :SWANK :SLYNK :PLUMP-UTF-32 :PARENSCRIPT :NSYMBOLS
 :FSET-EXT-STRINGS :SBCL+SAFE-STANDARD-READTABLE :NAMED-READTABLES :GLOBAL-VARS
 :CL-FAD :LPARALLEL :21BIT-CHARS :CUSTOM-HASH-TABLE-NATIVE :CL-PPCRE-UNICODE
 :CL-UNICODE :CL-JSON-DOUBLE-FLOAT-IS-SUBSUMED
 :CL-JSON-SINGLE-FLOAT-IS-SUBSUMED :CHUNGA :FLEXI-STREAMS :CL-PPCRE :WEBKIT2
 :WEBKIT-2.44.2 :WEBKIT-2.44 :WEBKIT-2 :WEBKIT2-CORS-ALLOWLIST
 :WEBKIT2-PASTE-PLAINTEXT :WEBKIT2-TRACKING :WEBKIT2-MUTE :WEBKIT2-EMOJI
 :WEBKIT2-MEDIA :WEBKIT2-SANDBOXING :GTK-3-22 :GTK-3-20 :GTK-3-18 :GTK-3-16
 :GTK-3-14 :GTK-3-12 :GTK-3-10 :GTK-3-8 :GTK-3-6 :GTK-3-4 :GTK :GDK-3-22
 :GDK-3-20 :GDK-3-18 :GDK-3-16 :GDK-3-14 :GDK-3-12 :GDK-3-10 :GDK-3-8 :GDK-3-6
 :GDK-3-4 :CAIRO-1-10 :CAIRO-1-12 :GDK-PIXBUF :CLOSER-MOP :GLIB-2-30 :GLIB-2-32
 :GLIB-2-34 :GLIB-2-36 :GLIB-2-38 :GLIB-2-40 :GLIB-2-42 :GLIB-2-44 :GLIB-2-46
 :GLIB-2-48 :GLIB-2-50 :GLIB-2-52 :GLIB-2-54 :GLIB-2-56 :GLIB-2-58 :GLIB
 :BORDEAUX-THREADS :LPARALLEL.WITH-CLTL2 :LPARALLEL.WITH-CAS
 :LPARALLEL.WITH-STEALING-SCHEDULER :SPLIT-SEQUENCE
 CFFI-FEATURES:FLAT-NAMESPACE CFFI-FEATURES:X86-64 CFFI-FEATURES:UNIX :CFFI
 CFFI-SYS::FLAT-NAMESPACE ALEXANDRIA::SEQUENCE-EMPTYP :FAST-IO-SV :FAST-IO
 :CL-JSON-CLOS :CL-JSON :SBCL-USES-SB-ROTATE-BYTE CHIPZ-SYSTEM:GRAY-STREAMS
 :THREAD-SUPPORT :ASDF3.3 :ASDF3.2 :ASDF3.1 :ASDF3 :ASDF2 :ASDF :OS-UNIX
 :NON-BASE-CHARS-EXIST-P :ASDF-UNICODE :ARENA-ALLOCATOR :X86-64 :GENCGC :64-BIT
 :ANSI-CL :COMMON-LISP :ELF :IEEE-FLOATING-POINT :LINUX :LITTLE-ENDIAN
 :PACKAGE-LOCAL-NICKNAMES :SB-CORE-COMPRESSION :SB-LDB :SB-PACKAGE-LOCKS
 :SB-THREAD :SB-UNICODE :SBCL :UNIX)

ASDF version: 3.3.1
ASDF registries: (NYXT-SOURCE-REGISTRY ENVIRONMENT-SOURCE-REGISTRY)
Critical dependencies: (/build/nyxt/src/_build/cl-cffi-gtk/gtk/cl-cffi-gtk.asd
 /build/nyxt/src/_build/cl-gobject-introspection/cl-gobject-introspection.asd
 /build/nyxt/src/_build/cl-webkit/webkit2/cl-webkit2.asd)

Output when started from a shell

robertb@archlinux ~/.a/yay (master)> nyxt
Nyxt version 3.11.8
<INFO> [14:01:26] Source location: #P"/usr/share/nyxt/"
<INFO> [14:01:26] Loading Lisp file #P"/home/robertb/.config/nyxt/auto-config.3.lisp".
<INFO> [14:01:26] Listening to socket: #P"/run/user/1000/nyxt/nyxt.socket"

(nyxt:21358): libenchant-WARNING **: 14:01:26.725: broker.vala:159: Error loading plugin: libaspell.so.15: cannot open shared object file: No such file or directory

(nyxt:21358): libenchant-WARNING **: 14:01:26.725: broker.vala:159: Error loading plugin: libhspell.so.0: cannot open shared object file: No such file or directory

(nyxt:21358): libenchant-WARNING **: 14:01:26.725: broker.vala:159: Error loading plugin: libhunspell-1.7.so.0: cannot open shared object file: No such file or directory

(nyxt:21358): libenchant-WARNING **: 14:01:26.725: broker.vala:159: Error loading plugin: libnuspell.so.5: cannot open shared object file: No such file or directory

(nyxt:21358): libenchant-WARNING **: 14:01:26.726: broker.vala:159: Error loading plugin: libvoikko.so.1: cannot open shared object file: No such file or directory
<INFO> [14:01:27] Loading #P"/home/robertb/.local/share/nyxt/history/default.lisp".
<INFO> [14:01:27] Restoring 3 buffers from history.
<INFO> [14:01:27] Loading #P"/home/robertb/.local/share/nyxt/auto-rules.lisp".
<INFO> [14:01:27] Loading #P"/home/robertb/.local/share/nyxt/hostlist-stevenblack.txt".
<WARN> [14:01:30] Warning: Error while processing the "nyxt:" URL: Required argument NYXT:CALLBACK missing.
<INFO> [14:01:30] Failed to load URL nyxt:new in buffer 5621.

** (process:2): WARNING **: 14:01:30.698: Error writing credentials to socket: Error sending message: Broken pipe
<INFO> [14:01:30] Loading "https://github.com/login".
<INFO> [14:01:31] Finished loading "https://github.com/login".
@aadcg
Copy link
Member

aadcg commented Sep 2, 2024

Actions like opening the command input bar have a significant delay of a second or two.

Thanks for the report @VisenDev. I can't reproduce these delays. Could you share a screen recording where you're using a utility such as screenkeys?

@fictitiousexistence
Copy link

@VisenDev how big is your ~/.local/share/nyxt/history/default.lisp ?
I've always noticed that nyxt is slower than vimb/luakit but I found that I have to delete the default.lisp history file often or nyxt will really choke up.

Especially when opening nyxt, it will take some time to load the default tab/page and then flash the screen.

If I open the prompt buffer before the flash then any website I go to will be blank until I reopen the prompt buffer.

I noticed deleting default.lisp resolves the issue for a little bit.

@aadcg
Copy link
Member

aadcg commented Oct 9, 2024

@fictitiousexistence interesting find. Rewriting history persistence to disk is definitely in our plans.

@VisenDev
Copy link
Author

VisenDev commented Oct 9, 2024

I noticed deleting default.lisp resolves the issue for a little bit.

Okay I will try this, thanks

Actions like opening the command input bar have a significant delay of a second or two.

Thanks for the report @VisenDev. I can't reproduce these delays. Could you share a screen recording where you're using a utility such as screenkeys?

Sorry I made a recording a month ago and then forgot to post it. I will try to make a new one

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

3 participants