GNU bug report logs - #67981
Poor shr performance on text-only webpage

Previous Next

Package: emacs;

Reported by: Karthik Chikmagalur <karthikchikmagalur <at> gmail.com>

Date: Sat, 23 Dec 2023 03:04:02 UTC

Severity: wishlist

To reply to this bug, email your comments to 67981 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#67981; Package emacs. (Sat, 23 Dec 2023 03:04:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Karthik Chikmagalur <karthikchikmagalur <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Sat, 23 Dec 2023 03:04:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Karthik Chikmagalur <karthikchikmagalur <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: Poor shr performance on text-only webpage
Date: Fri, 22 Dec 2023 19:02:59 -0800
[Message part 1 (text/plain, inline)]
The function shr-descend (part of shr.el) performs very poorly when
rendering web pages.  This is not noticeable for small documents, but
when loading https://orgmode.org/manual.html, it locks up Emacs for
10+ seconds at 100% CPU utilization on one core.  In comparison, it
loads in 2-3 seconds in Firefox without a CPU spike.  (I have a
reasonably fast three year old laptop.)

--8<---------------cut here---------------start------------->8---
;; -*- lexical-binding: t; -*-

(let ((now (float-time)))
  (add-hook 'eww-after-render-hook
	    (lambda ()
	      (message "EWW took %f seconds" (- (float-time) now))))
  (eww "https://orgmode.org/org.html"))

;; => EWW took 10.606935 seconds
--8<---------------cut here---------------end--------------->8---

Note that the above link is a long text only page with little to no CSS
and no Javascript.

I did some profiling to see what is slowing it down.  If I'm reading
the profile correctly, 

- About 240,587,126,505 bytes (240 GB) of memory are allocated, and
  almost all of it is split evenly between shr-render-td and
  shr-render-td-1.

- about 54% of the the rendering time (10+ seconds) is spent in
  shr-descend, split between shr-tag-table and shr-tag-div.

- About 35% of the time is spent doing GC.

Is there some reason it's this slow and allocates so much memory?  The
only thing I noticed is that shr-descend and shr-render-td both use
intern a lot, perhaps that's one source of the allocation?

If you would like me to try something specific, I can give it a shot.
Please let me know.

The CPU and memory profiles are attached, and can be loaded with M-x
profiler-find-profile.  The test was run in `emacs -q'.

Karthik

In GNU Emacs 29.1 (build 1, x86_64-pc-linux-gnu, X toolkit, cairo
version 1.16.0, Xaw3d scroll bars)
Windowing system distributor 'The X.Org Foundation', version 11.0.12101009
System Description: NixOS 23.05 (Stoat)

Configured using:
 'configure
 --prefix=/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1
 --disable-build-details --with-modules --with-x-toolkit=lucid
 --with-xft --with-cairo --with-native-compilation --with-tree-sitter
 --with-xinput2'

Configured features:
CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG JSON
LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES NATIVE_COMP NOTIFY
INOTIFY PDUMPER PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF
TOOLKIT_SCROLL_BARS TREE_SITTER WEBP X11 XAW3D XDBE XIM XPM LUCID ZLIB

Important settings:
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Fundamental

Minor modes in effect:
  tooltip-mode: t
  global-eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  blink-cursor-mode: t
  buffer-read-only: t
  line-number-mode: t
  indent-tabs-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
/home/karthik/.nix-profile/share/emacs/site-lisp/site-start hides /nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/site-lisp/site-start
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/emacs-lisp/let-alist hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/let-alist-1.0.6/let-alist
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ob-lua hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ob-lua
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ox-texinfo hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ox-texinfo
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/org-clock hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/org-clock
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/org-entities hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/org-entities
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ox-odt hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ox-odt
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/org-num hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/org-num
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ol-docview hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ol-docview
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/org-inlinetask hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/org-inlinetask
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ob-clojure hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ob-clojure
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ob-java hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ob-java
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ob-sass hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ob-sass
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/org-footnote hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/org-footnote
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ol-bbdb hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ol-bbdb
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ob-sed hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ob-sed
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ob-js hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ob-js
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ob-ref hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ob-ref
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ol-info hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ol-info
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ol-gnus hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ol-gnus
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/org-mobile hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/org-mobile
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ob-eshell hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ob-eshell
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/org-feed hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/org-feed
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/org-lint hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/org-lint
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ol-man hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ol-man
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ox-koma-letter hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ox-koma-letter
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ob-eval hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ob-eval
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/org-id hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/org-id
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/org-faces hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/org-faces
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ob-forth hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ob-forth
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/org-attach-git hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/org-attach-git
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ol-irc hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ol-irc
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ol-mhe hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ol-mhe
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ox-md hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ox-md
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ox-html hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ox-html
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ob-shell hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ob-shell
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/oc-biblatex hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/oc-biblatex
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/org-protocol hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/org-protocol
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/org-cycle hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/org-cycle
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ob-latex hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ob-latex
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/org-ctags hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/org-ctags
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/org-habit hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/org-habit
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ob-maxima hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ob-maxima
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ol-eww hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ol-eww
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ob-processing hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ob-processing
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ob-R hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ob-R
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/org-archive hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/org-archive
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/org-timer hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/org-timer
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ob hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ob
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ob-sqlite hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ob-sqlite
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ob-groovy hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ob-groovy
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ol-doi hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ol-doi
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ob-scheme hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ob-scheme
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ob-matlab hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ob-matlab
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/org-mouse hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/org-mouse
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/org-compat hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/org-compat
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ob-css hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ob-css
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ox-ascii hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ox-ascii
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/org-datetree hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/org-datetree
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ob-julia hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ob-julia
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/oc-natbib hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/oc-natbib
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ob-awk hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ob-awk
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/org-macro hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/org-macro
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ob-ditaa hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ob-ditaa
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ox-icalendar hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ox-icalendar
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ol-eshell hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ol-eshell
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/org-indent hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/org-indent
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/org-pcomplete hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/org-pcomplete
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ob-haskell hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ob-haskell
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/oc-basic hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/oc-basic
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ob-makefile hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ob-makefile
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ob-ruby hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ob-ruby
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ob-sql hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ob-sql
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/org-src hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/org-src
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ol-bibtex hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ol-bibtex
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ox-publish hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ox-publish
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/org-refile hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/org-refile
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/org-crypt hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/org-crypt
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ob-python hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ob-python
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/org-attach hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/org-attach
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ol hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ol
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ob-lilypond hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ob-lilypond
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ob-comint hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ob-comint
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ob-calc hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ob-calc
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ob-dot hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ob-dot
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ob-screen hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ob-screen
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ox hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ox
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/oc-csl hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/oc-csl
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ob-C hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ob-C
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ob-ocaml hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ob-ocaml
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ol-w3m hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ol-w3m
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ol-rmail hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ol-rmail
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ob-gnuplot hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ob-gnuplot
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/org-version hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/org-version
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/org-persist hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/org-persist
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/org-loaddefs hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/org-loaddefs
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ox-beamer hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ox-beamer
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/org hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/org
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/org-list hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/org-list
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/org-element hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/org-element
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ox-latex hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ox-latex
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/org-keys hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/org-keys
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/org-goto hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/org-goto
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/org-macs hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/org-macs
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/org-agenda hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/org-agenda
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ox-man hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ox-man
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ob-plantuml hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ob-plantuml
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/org-colview hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/org-colview
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ob-tangle hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ob-tangle
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ob-octave hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ob-octave
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/org-capture hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/org-capture
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/org-fold-core hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/org-fold-core
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ob-emacs-lisp hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ob-emacs-lisp
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ob-table hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ob-table
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/org-tempo hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/org-tempo
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ob-lob hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ob-lob
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ox-org hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ox-org
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ob-fortran hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ob-fortran
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ob-org hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ob-org
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/org-plot hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/org-plot
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/oc-bibtex hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/oc-bibtex
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/org-fold hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/org-fold
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ob-perl hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ob-perl
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/org-duration hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/org-duration
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ob-exp hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ob-exp
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/org-table hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/org-table
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/oc hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/oc
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ob-core hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ob-core
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/org/ob-lisp hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/org-9.6.6/ob-lisp
/nix/store/hxzlg5ydvndk1n4ajcsnzj8g9b8yf93g-emacs-29.1/share/emacs/29.1/lisp/transient hides /home/karthik/.nix-profile/share/emacs/site-lisp/elpa/transient-20230602.2121/transient

Features:
(shadow sort mail-extr emacsbug message mailcap yank-media puny dired
dired-loaddefs rfc822 mml mml-sec password-cache epa derived epg rfc6068
epg-config gnus-util text-property-search time-date mm-decode mm-bodies
mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader cl-loaddefs
comp comp-cstr warnings icons subr-x rx cl-seq cl-macs gv cl-extra
help-mode bytecomp byte-compile cl-lib sendmail rfc2047 rfc2045
ietf-drums mm-util mail-prsvr mail-utils rmc iso-transl tooltip cconv
eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type
elisp-mode mwheel term/x-win x-win term/common-win x-dnd tool-bar dnd
fontset image regexp-opt fringe tabulated-list replace newcomment
text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow
isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax
font-core term/tty-colors frame minibuffer nadvice seq simple cl-generic
indonesian philippine cham georgian utf-8-lang misc-lang vietnamese
tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek
romanian slovak czech european ethiopic indian cyrillic chinese
composite emoji-zwj charscript charprop case-table epa-hook
jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs
theme-loaddefs faces cus-face macroexp files window text-properties
overlay sha1 md5 base64 format env code-pages mule custom widget keymap
hashtable-print-readable backquote threads dbusbind inotify
dynamic-setting system-font-setting font-render-setting cairo x-toolkit
x multi-tty make-network-process native-compile emacs)

Memory information:
((conses 16 80574 10107)
 (symbols 48 7212 0)
 (strings 32 20748 1634)
 (string-bytes 1 675308)
 (vectors 16 15789)
 (vector-slots 8 330368 14645)
 (floats 8 29 46)
 (intervals 56 357 0)
 (buffers 984 12))

[shr-descend-original-profile-memory (application/octet-stream, attachment)]
[shr-descend-original-profile-cpu (application/octet-stream, attachment)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#67981; Package emacs. (Sat, 23 Dec 2023 08:14:01 GMT) Full text and rfc822 format available.

Message #8 received at 67981 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Karthik Chikmagalur <karthikchikmagalur <at> gmail.com>
Cc: 67981 <at> debbugs.gnu.org
Subject: Re: bug#67981: Poor shr performance on text-only webpage
Date: Sat, 23 Dec 2023 10:12:50 +0200
> From: Karthik Chikmagalur <karthikchikmagalur <at> gmail.com>
> Date: Fri, 22 Dec 2023 19:02:59 -0800
> 
> The function shr-descend (part of shr.el) performs very poorly when
> rendering web pages.  This is not noticeable for small documents, but
> when loading https://orgmode.org/manual.html, it locks up Emacs for
> 10+ seconds at 100% CPU utilization on one core.  In comparison, it
> loads in 2-3 seconds in Firefox without a CPU spike.  (I have a
> reasonably fast three year old laptop.)
> 
> --8<---------------cut here---------------start------------->8---
> ;; -*- lexical-binding: t; -*-
> 
> (let ((now (float-time)))
>   (add-hook 'eww-after-render-hook
> 	    (lambda ()
> 	      (message "EWW took %f seconds" (- (float-time) now))))
>   (eww "https://orgmode.org/org.html"))
> 
> ;; => EWW took 10.606935 seconds
> --8<---------------cut here---------------end--------------->8---
> 
> Note that the above link is a long text only page with little to no CSS
> and no Javascript.
> 
> I did some profiling to see what is slowing it down.  If I'm reading
> the profile correctly, 

The "memory" profile is not interesting if your system can produce the
"cpu" profile.  I attach a fully expanded "cpu" profile below.

> - About 240,587,126,505 bytes (240 GB) of memory are allocated, and
>   almost all of it is split evenly between shr-render-td and
>   shr-render-td-1.

I don't think it's interesting to look at the "memory" profile counts.
Emacs allocates memory a lot, but the counts you see don't tell you
which parts are immediately freed (e.g., used within a single function
as temporary storage, and freed before the function returns).  Also,
most of that memory is not Lisp memory, i.e. not for Lisp objects.

> - about 54% of the the rendering time (10+ seconds) is spent in
>   shr-descend, split between shr-tag-table and shr-tag-div.
> 
> - About 35% of the time is spent doing GC.
> 
> Is there some reason it's this slow and allocates so much memory? The
> only thing I noticed is that shr-descend and shr-render-td both use
> intern a lot, perhaps that's one source of the allocation?

I'm not sure allocation of Lisp memory can be avoided, the way shr.el
works.  Rendering 23K lines of HTML does require to cons a lot of Lisp
objects.

You can slash the time a little by making the following
customizations:

  (setopt textsec-check nil)
  (setopt shr-use-fonts nil)

Here's the profile in human-readable format.  Looking at it, I don't
see how we could speed this up considerably.  Ideas and patches
welcome.

        2837  50% - ...
        2837  50%    Automatic GC
        2760  49% - url-http-generic-filter
        2760  49%  - url-http-chunked-encoding-after-change-function
        2759  49%   - url-http-activate-callback
        2759  49%    - apply
        2759  49%     - eww-render
        2759  49%      - let*
        2759  49%       - unwind-protect
        2759  49%        - progn
        2759  49%         - cond
        2759  49%          - eww-display-html
        2759  49%           - let
        2691  47%            - save-current-buffer
        2688  47%             - let
        2688  47%              - funcall-with-delayed-message
        2688  47%               - #<lambda 0x73cd2989dcfe>
        2688  47%                - shr-insert-document
        2688  47%                 - let
        2688  47%                  - unwind-protect
        2688  47%                   - progn
        2637  47%                    - shr-fill-lines
        2637  47%                     - if
        2637  47%                      - save-restriction
        2635  46%                       - while
        2629  46%                        - if
        2629  46%                         - progn
        2629  46%                          - shr-fill-line
        2629  46%                           - let
        2321  41%                            - let
        2312  41%                             - if
        2312  41%                              - progn
        2312  41%                               - put-text-property
        2311  41%                                - shr-face-background
        2311  41%                                 - and
        2311  41%                                  - or
        2311  41%                                   - let
        2311  41%                                    - let
        2311  41%                                     - while
        2311  41%                                      - let
        2311  41%                                       - if
        2310  41%                                        - shr-descend
        2310  41%                                         - let
        2310  41%                                          - if
        2310  41%                                           - cond
        2310  41%                                            - funcall
        2071  36%                                             - shr-tag-h5
        2071  36%                                              - shr-heading
        2071  36%                                               - apply
        2071  36%                                                - shr-fontize-dom
        2071  36%                                                 - let
        2070  36%                                                  - shr-generic
        2070  36%                                                   - let
        2070  36%                                                    - while
        2070  36%                                                     - let
        2070  36%                                                      - if
        2070  36%                                                       - shr-descend
        2070  36%                                                        - let
        2070  36%                                                         - if
        2070  36%                                                          - cond
        2040  36%                                                           - funcall
        1968  35%                                                            - shr-tag-table
        1967  35%                                                             - let*
        1967  35%                                                              - if
        1944  34%                                                               - if
        1944  34%                                                                - let
        1941  34%                                                                 - shr-tag-table-1
        1941  34%                                                                  - let*
        1739  30%                                                                   - or
        1739  30%                                                                    - shr-make-table
        1739  30%                                                                     - or
        1739  30%                                                                      - let
        1739  30%                                                                       - shr-make-table-1
        1739  30%                                                                        - let
        1739  30%                                                                         - let
        1739  30%                                                                          - while
        1739  30%                                                                           - let
        1739  30%                                                                            - if
        1739  30%                                                                             - progn
        1737  30%                                                                              - let
        1736  30%                                                                               - while
        1734  30%                                                                                - if
        1731  30%                                                                                 - progn
        1724  30%                                                                                  - if
        1720  30%                                                                                   - progn
        1718  30%                                                                                    - let
        1712  30%                                                                                     - shr-render-td
        1707  30%                                                                                      - let
        1682  29%                                                                                       - or
        1642  29%                                                                                        - let*
        1636  29%                                                                                         - shr-render-td-1
        1635  29%                                                                                          - let
        1599  28%                                                                                           - save-current-buffer
        1598  28%                                                                                            - unwind-protect
        1561  27%                                                                                             - progn
        1557  27%                                                                                              - let
        1516  27%                                                                                               - let
        1025  18%                                                                                                - shr-descend
        1018  18%                                                                                                 - let
        1014  18%                                                                                                  - if
        1005  17%                                                                                                   - cond
        1003  17%                                                                                                    - shr-generic
        1002  17%                                                                                                     - let
        1002  17%                                                                                                      - while
        1002  17%                                                                                                       - let
        1001  17%                                                                                                        - if
         994  17%                                                                                                         - shr-descend
         993  17%                                                                                                          - let
         984  17%                                                                                                           - if
         981  17%                                                                                                            - cond
         981  17%                                                                                                             - funcall
         979  17%                                                                                                              - eww-tag-a
         977  17%                                                                                                               - let
         945  16%                                                                                                                - shr-tag-a
         944  16%                                                                                                                 - let
         862  15%                                                                                                                  - if
         862  15%                                                                                                                   - progn
         628  11%                                                                                                                    - let*
         626  11%                                                                                                                     - and
         624  11%                                                                                                                      - or
         623  11%                                                                                                                       - textsec-suspicious-p
         349   6%                                                                                                                        - textsec-url-suspicious-p
         246   4%                                                                                                                         - textsec-domain-suspicious-p
         185   3%                                                                                                                          - textsec-ascii-confusable-p
         185   3%                                                                                                                           - textsec-restriction-level
         170   3%                                                                                                                            - textsec-covering-scripts
          73   1%                                                                                                                             - seq-union
          53   0%                                                                                                                              - seq-reduce
          27   0%                                                                                                                               - seq-do
          25   0%                                                                                                                                - mapc
          18   0%                                                                                                                                 - #<compiled -0x1c81e23f96f80b01>
          14   0%                                                                                                                                  - #<compiled -0x54db5cc1ce55b54>
          10   0%                                                                                                                                   - seq-contains-p
           1   0%                                                                                                                                      seq-do
          14   0%                                                                                                                               - seq-empty-p
           4   0%                                                                                                                                  apply
          72   1%                                                                                                                             - seq-difference
          44   0%                                                                                                                              - seq-reduce
          30   0%                                                                                                                               - seq-do
          28   0%                                                                                                                                - mapc
          23   0%                                                                                                                                 - #<compiled -0x1cedde8780de0b01>
          21   0%                                                                                                                                  - #<compiled -0x54da0d04063ff54>
          15   0%                                                                                                                                   - seq-contains-p
           6   0%                                                                                                                                    - seq-do
           4   0%                                                                                                                                     - mapc
           2   0%                                                                                                                                        #<compiled -0x1dff8a621eb643fa>
           4   0%                                                                                                                               - seq-empty-p
           1   0%                                                                                                                                  apply
          11   0%                                                                                                                              - seq-reverse
           5   0%                                                                                                                               - apply
           4   0%                                                                                                                                  #<compiled -0x47b1d72b2461ccc>
          14   0%                                                                                                                             - textsec-scripts
          14   0%                                                                                                                              - seq-map
          10   0%                                                                                                                               - apply
           8   0%                                                                                                                                - #<compiled 0x184c52027f5d6bf4>
           7   0%                                                                                                                                   mapcar
          30   0%                                                                                                                          - puny-highly-restrictive-domain-p
          18   0%                                                                                                                           - seq-every-p
          16   0%                                                                                                                            - seq-do
          16   0%                                                                                                                             - mapc
          15   0%                                                                                                                              - #<compiled -0x7437d996da07cda>
          14   0%                                                                                                                               - puny-highly-restrictive-string-p
           9   0%                                                                                                                                - seq-map
           9   0%                                                                                                                                 - apply
           9   0%                                                                                                                                  - #<compiled 0x184c52027f5d6bf4>
           8   0%                                                                                                                                     mapcar
           4   0%                                                                                                                                - seq-uniq
           4   0%                                                                                                                                   apply
           5   0%                                                                                                                             split-string
          16   0%                                                                                                                            textsec--ipvx-address-p
           5   0%                                                                                                                            split-string
           5   0%                                                                                                                          - seq-do
           4   0%                                                                                                                             mapc
          74   1%                                                                                                                         - url-generic-parse-url
          37   0%                                                                                                                          - #<compiled -0x1dfea4210cf1bf87>
           7   0%                                                                                                                           - kill-buffer
           6   0%                                                                                                                            - replace-buffer-in-windows
           1   0%                                                                                                                               unrecord-window-buffer
          14   0%                                                                                                                            generate-new-buffer
         194   3%                                                                                                                        - textsec-link-suspicious-p
         135   2%                                                                                                                         - url-generic-parse-url
          76   1%                                                                                                                          - #<compiled -0x1dfea5121584ff87>
          16   0%                                                                                                                           - kill-buffer
          15   0%                                                                                                                            - replace-buffer-in-windows
           4   0%                                                                                                                             - unrecord-window-buffer
           2   0%                                                                                                                                assq-delete-all
          23   0%                                                                                                                            generate-new-buffer
           5   0%                                                                                                                         - string-trim
           2   0%                                                                                                                            string-trim-right
           1   0%                                                                                                                            string-trim-left
           1   0%                                                                                                                         - textsec-domain-suspicious-p
           1   0%                                                                                                                          - textsec-ascii-confusable-p
           1   0%                                                                                                                           - textsec-restriction-level
           1   0%                                                                                                                            - textsec-covering-scripts
           1   0%                                                                                                                             - seq-difference
           1   0%                                                                                                                              - seq-reduce
           1   0%                                                                                                                               - seq-do
           1   0%                                                                                                                                - mapc
           1   0%                                                                                                                                 - #<compiled -0x1cedde8780de0b01>
           1   0%                                                                                                                                  - #<compiled -0x54da0d04063ff54>
           1   0%                                                                                                                                     seq-contains-p
          25   0%                                                                                                                        - cons
          15   0%                                                                                                                         - shr-expand-url
           8   0%                                                                                                                          - if
           6   0%                                                                                                                           - progn
           6   0%                                                                                                                            - setq
           6   0%                                                                                                                             - string-trim
           2   0%                                                                                                                                string-trim-left
           2   0%                                                                                                                                string-trim-right
           1   0%                                                                                                                             =
           4   0%                                                                                                                          - cond
           1   0%                                                                                                                             concat
           1   0%                                                                                                                             =
          22   0%                                                                                                                        - require
          21   0%                                                                                                                         - byte-code
          19   0%                                                                                                                          - require
          12   0%                                                                                                                           - byte-code
          12   0%                                                                                                                            - ucs-normalize-make-translation-table-from-alist
           2   0%                                                                                                                               make-translation-table-from-alist
           4   0%                                                                                                                           - load-with-code-conversion
           3   0%                                                                                                                              eval-buffer
           1   0%                                                                                                                            - hack-read-symbol-shorthands
           1   0%                                                                                                                               hack-local-variables--find-variables
           1   0%                                                                                                                         - require
           1   0%                                                                                                                            load-with-code-conversion
          18   0%                                                                                                                        - shr-expand-url
          11   0%                                                                                                                         - if
          10   0%                                                                                                                          - progn
          10   0%                                                                                                                           - setq
          10   0%                                                                                                                            - string-trim
           8   0%                                                                                                                               string-trim-right
           1   0%                                                                                                                            =
           5   0%                                                                                                                         - cond
           3   0%                                                                                                                          - or
           1   0%                                                                                                                             string-match-p
           1   0%                                                                                                                            =
           1   0%                                                                                                                            eq
         231   4%                                                                                                                    - shr-urlify
         152   2%                                                                                                                     - add-text-properties
         150   2%                                                                                                                      - list
         145   2%                                                                                                                       - let
          84   1%                                                                                                                        - url-generic-parse-url
          24   0%                                                                                                                         - #<compiled -0x1dfea5bf967ff787>
           3   0%                                                                                                                          - kill-buffer
           2   0%                                                                                                                           - replace-buffer-in-windows
           2   0%                                                                                                                            - unrecord-window-buffer
           1   0%                                                                                                                               assq-delete-all
          19   0%                                                                                                                         - or
          16   0%                                                                                                                          - condition-case
          16   0%                                                                                                                           - progn
          15   0%                                                                                                                            - decode-coding-string
          13   0%                                                                                                                               url-unhex-string
          13   0%                                                                                                                           generate-new-buffer
          19   0%                                                                                                                        - if
          19   0%                                                                                                                         - progn
          17   0%                                                                                                                          - progn
          14   0%                                                                                                                           - let*
          13   0%                                                                                                                            - aset
          10   0%                                                                                                                             - puny-encode-domain
           3   0%                                                                                                                              - progn
           3   0%                                                                                                                               - or
           3   0%                                                                                                                                - progn
           2   0%                                                                                                                                 - and
           1   0%                                                                                                                                    memq
           2   0%                                                                                                                           - or
           1   0%                                                                                                                            - progn
           1   0%                                                                                                                               and
           1   0%                                                                                                                          - or
           1   0%                                                                                                                             progn
           7   0%                                                                                                                        - setq
           1   0%                                                                                                                           url-recreate-url
          30   0%                                                                                                                     - funcall
          14   0%                                                                                                                      - eww--transform-url
          14   0%                                                                                                                       - if
          14   0%                                                                                                                        - progn
          14   0%                                                                                                                         - let
          14   0%                                                                                                                          - while
          13   0%                                                                                                                           - let
          12   0%                                                                                                                            - setq
          11   0%                                                                                                                             - funcall
          11   0%                                                                                                                              - eww-remove-tracking
          10   0%                                                                                                                                 replace-regexp-in-string
          14   0%                                                                                                                      - shr-expand-url
          12   0%                                                                                                                       - if
          10   0%                                                                                                                        - progn
           8   0%                                                                                                                         - setq
           8   0%                                                                                                                          - string-trim
           5   0%                                                                                                                             string-trim-right
           2   0%                                                                                                                       - cond
           1   0%                                                                                                                        - or
           1   0%                                                                                                                           string-match-p
          19   0%                                                                                                                     - shr-add-font
          16   0%                                                                                                                      - save-excursion
          14   0%                                                                                                                       - while
           5   0%                                                                                                                        - if
           4   0%                                                                                                                           <
           4   0%                                                                                                                        - add-face-text-property
           4   0%                                                                                                                           min
          12   0%                                                                                                                     - while
           8   0%                                                                                                                      - let
           5   0%                                                                                                                       - if
           1   0%                                                                                                                          put-text-property
           1   0%                                                                                                                         next-single-property-change
           8   0%                                                                                                                     - if
           7   0%                                                                                                                      - progn
           1   0%                                                                                                                         add-text-properties
           1   0%                                                                                                                        <
          80   1%                                                                                                                  - shr-generic
          79   1%                                                                                                                   - let
          78   1%                                                                                                                    - while
          74   1%                                                                                                                     - let
          74   1%                                                                                                                      - if
          67   1%                                                                                                                       - shr-insert
          64   1%                                                                                                                        - cond
          63   1%                                                                                                                         - let
          49   0%                                                                                                                          - let
          31   0%                                                                                                                           - save-restriction
          10   0%                                                                                                                            - shr--translate-insertion-chars
           8   0%                                                                                                                               while
           1   0%                                                                                                                               goto-char
           9   0%                                                                                                                              while
           6   0%                                                                                                                            - if
           2   0%                                                                                                                               progn
           1   0%                                                                                                                              goto-char
           4   0%                                                                                                                           - if
           4   0%                                                                                                                            - if
           4   0%                                                                                                                             - progn
           1   0%                                                                                                                                put-text-property
           8   0%                                                                                                                          - if
           4   0%                                                                                                                             progn
           3   0%                                                                                                                           - and
           3   0%                                                                                                                              string-match-p
           2   0%                                                                                                                        - if
           2   0%                                                                                                                         - and
           1   0%                                                                                                                            not
           1   0%                                                                                                                            get-text-property
           7   0%                                                                                                                       - shr-descend
           7   0%                                                                                                                        - let
           5   0%                                                                                                                         - if
           3   0%                                                                                                                          - or
           1   0%                                                                                                                           - equal
           1   0%                                                                                                                              cdr
           1   0%                                                                                                                          - cond
           1   0%                                                                                                                             funcall
           1   0%                                                                                                                         - intern
           1   0%                                                                                                                          - concat
           1   0%                                                                                                                             symbol-name
           1   0%                                                                                                                           cdr
           1   0%                                                                                                                  - cdr
           1   0%                                                                                                                     assq
           1   0%                                                                                                                  - let*
           1   0%                                                                                                                   - and
           1   0%                                                                                                                    - and
           1   0%                                                                                                                       not
          31   0%                                                                                                                - if
          28   0%                                                                                                                 - put-text-property
          28   0%                                                                                                                  - if
          14   0%                                                                                                                     mm-images-in-region-p
           2   0%                                                                                                               - eww-handle-link
           2   0%                                                                                                                - let*
           1   0%                                                                                                                   cdr
           1   0%                                                                                                              - eww-tag-meta
           1   0%                                                                                                               - if
           1   0%                                                                                                                  and
           2   0%                                                                                                            - or
           2   0%                                                                                                             - equal
           2   0%                                                                                                                cdr
           6   0%                                                                                                           - intern
           1   0%                                                                                                              concat
           1   0%                                                                                                             cdr
           4   0%                                                                                                         - shr-insert
           4   0%                                                                                                          - cond
           3   0%                                                                                                           - let
           2   0%                                                                                                            - let
           1   0%                                                                                                             - save-restriction
           1   0%                                                                                                                if
           3   0%                                                                                                   - let*
           2   0%                                                                                                    - and
           2   0%                                                                                                     - cdr
           2   0%                                                                                                        assq
           2   0%                                                                                                   - or
           1   0%                                                                                                      equal
         476   8%                                                                                                - unwind-protect
         351   6%                                                                                                 - progn
         266   4%                                                                                                  - if
         178   3%                                                                                                   - let
         130   2%                                                                                                    - shr-fill-lines
         130   2%                                                                                                     - if
         129   2%                                                                                                      - save-restriction
         123   2%                                                                                                       - if
         123   2%                                                                                                        - progn
         122   2%                                                                                                         - shr-fill-line
         122   2%                                                                                                          - let
         115   2%                                                                                                           - if
         114   2%                                                                                                            - progn
          94   1%                                                                                                             - shr-vertical-motion
          94   1%                                                                                                              - if
           1   0%                                                                                                                 if
          18   0%                                                                                                             - while
          12   0%                                                                                                              - shr-vertical-motion
          12   0%                                                                                                               - if
           1   0%                                                                                                                  vertical-motion
           6   0%                                                                                                              - if
           5   0%                                                                                                               - or
           5   0%                                                                                                                - not
           1   0%                                                                                                                   pixel-fill-find-fill-point
           1   0%                                                                                                               - progn
           1   0%                                                                                                                  delete-char
           2   0%                                                                                                               if
           2   0%                                                                                                           - let
           1   0%                                                                                                            - if
           1   0%                                                                                                             - progn
           1   0%                                                                                                                put-text-property
           1   0%                                                                                                           - or
           1   0%                                                                                                              get-text-property
           3   0%                                                                                                       - while
           2   0%                                                                                                          setq
           1   0%                                                                                                        - if
           1   0%                                                                                                         - progn
           1   0%                                                                                                          - shr-fill-line
           1   0%                                                                                                           - let
           1   0%                                                                                                            - if
           1   0%                                                                                                             - progn
           1   0%                                                                                                              - shr-vertical-motion
           1   0%                                                                                                                 if
          48   0%                                                                                                    - setq
          47   0%                                                                                                     - shr-pixel-buffer-width
          47   0%                                                                                                      - if
          47   0%                                                                                                       - if
          44   0%                                                                                                          car
          87   1%                                                                                                   - setq
          85   1%                                                                                                    - or
          84   1%                                                                                                     - let
          80   1%                                                                                                      - max
          70   1%                                                                                                       - shr-pixel-buffer-width
          70   1%                                                                                                        - if
          70   1%                                                                                                         - if
          69   1%                                                                                                            car
           9   0%                                                                                                       - shr-dom-max-natural-width
           9   0%                                                                                                        - if
           6   0%                                                                                                         - let
           5   0%                                                                                                          - while
           4   0%                                                                                                           - let
           3   0%                                                                                                            - if
           3   0%                                                                                                             - setq
           3   0%                                                                                                              - max
           3   0%                                                                                                               - shr-dom-max-natural-width
           3   0%                                                                                                                - if
           3   0%                                                                                                                 - let
           3   0%                                                                                                                  - while
           3   0%                                                                                                                   - let
           1   0%                                                                                                                      setq
           2   0%                                                                                                           eq
           2   0%                                                                                                        dom-set-attribute
           1   0%                                                                                                     and
          12   0%                                                                                                  - set-window-buffer
          10   0%                                                                                                   - record-window-buffer
           2   0%                                                                                                      push-window-buffer-onto-prev
          59   1%                                                                                                 - set-window-configuration
          56   0%                                                                                                  - frame-windows-min-size
          53   0%                                                                                                   - window-min-size
          36   0%                                                                                                    - window--min-size-1
          16   0%                                                                                                     - window-size-fixed-p
           7   0%                                                                                                      - window--size-fixed-1
           3   0%                                                                                                       - window--preserve-size
           3   0%                                                                                                          window-preserved-size
           2   0%                                                                                                         window-child
           1   0%                                                                                                        window-normalize-window
           1   0%                                                                                                       window-child
           1   0%                                                                                                     - window-safe-min-size
           1   0%                                                                                                        window-normalize-window
          23   0%                                                                                               - list
          13   0%                                                                                                  split-string
           2   0%                                                                                                - if
           2   0%                                                                                                 - cdr
           2   0%                                                                                                    assq
           1   0%                                                                                                  count-lines
           5   0%                                                                                               - shr--set-target-ids
           5   0%                                                                                                - if
           3   0%                                                                                                 - let
           2   0%                                                                                                    seq-group-by
           4   0%                                                                                               - cdr
           4   0%                                                                                                  assq
           1   0%                                                                                               - delete-region
           1   0%                                                                                                  progn
          37   0%                                                                                             - and
          11   0%                                                                                              - kill-buffer
          10   0%                                                                                               - replace-buffer-in-windows
           3   0%                                                                                                - unrecord-window-buffer
           3   0%                                                                                                 - assq-delete-all
           1   0%                                                                                                    assoc-delete-all
          19   0%                                                                                             generate-new-buffer
           2   0%                                                                                           dom-set-attribute
          38   0%                                                                                        - and
          35   0%                                                                                         - let
          34   0%                                                                                          - let
          34   0%                                                                                           - while
          32   0%                                                                                            - let
          24   0%                                                                                             - let
          19   0%                                                                                              - if
           5   0%                                                                                               - progn
           5   0%                                                                                                - let
           3   0%                                                                                                 - if
           2   0%                                                                                                    and
           2   0%                                                                                                   string-to-number
           1   0%                                                                                                symbol-name
           1   0%                                                                                               setq
          25   0%                                                                                         intern
           3   0%                                                                                     - if
           1   0%                                                                                        and
           1   0%                                                                                      - if
           1   0%                                                                                       - setq
           1   0%                                                                                          cons
           2   0%                                                                                   - setq
           1   0%                                                                                      cdr
           1   0%                                                                                     >=
           2   0%                                                                                  - let*
           2   0%                                                                                   - and
           2   0%                                                                                    - cdr
           1   0%                                                                                       assq
           1   0%                                                                                    setq
           1   0%                                                                                    progn
           1   0%                                                                                 - and
           1   0%                                                                                    not
           1   0%                                                                                - setq
           1   0%                                                                                   if
         175   3%                                                                   - shr-insert-table
         158   2%                                                                    - let*
         158   2%                                                                     - let
         158   2%                                                                      - while
         158   2%                                                                       - let
         158   2%                                                                        - let
         158   2%                                                                         - let
         155   2%                                                                          - while
         154   2%                                                                           - let
         126   2%                                                                            - if
         125   2%                                                                             - progn
         119   2%                                                                              - let
         113   2%                                                                               - let
         111   1%                                                                                - while
         111   1%                                                                                 - let
         107   1%                                                                                  - let
           5   0%                                                                                   - and
           4   0%                                                                                    - shr-face-background
           4   0%                                                                                     - and
           4   0%                                                                                      - or
           3   0%                                                                                       - let
           3   0%                                                                                        - let
           3   0%                                                                                         - while
           2   0%                                                                                          - let
           1   0%                                                                                             setq
           4   0%                                                                                   - shr-colorize-region
           1   0%                                                                                    - if
           1   0%                                                                                       and
           1   0%                                                                                      1-
           2   0%                                                                                     propertize
           2   0%                                                                                  -
           4   0%                                                                               - while
           3   0%                                                                                - let
           2   0%                                                                                 - if
           1   0%                                                                                    progn
           1   0%                                                                              - shr-indent
           1   0%                                                                               - if
           1   0%                                                                                - progn
           1   0%                                                                                   if
           1   0%                                                                               >
           3   0%                                                                          - let
           3   0%                                                                             while
          17   0%                                                                    - shr-make-table
          17   0%                                                                     - or
          17   0%                                                                      - let
          17   0%                                                                       - shr-make-table-1
          17   0%                                                                        - let
          17   0%                                                                         - let
          17   0%                                                                          - while
          17   0%                                                                           - let
          16   0%                                                                            - if
          14   0%                                                                             - progn
          13   0%                                                                              - let
          12   0%                                                                               - while
           8   0%                                                                                - if
           7   0%                                                                                 - progn
           2   0%                                                                                    progn
           2   0%                                                                                    if
           1   0%                                                                                    setq
           1   0%                                                                                   and
           3   0%                                                                                - setq
           3   0%                                                                                 - if
           1   0%                                                                                    =
           1   0%                                                                                    car-safe
           2   0%                                                                               eq
          16   0%                                                                   - shr-column-specs
          16   0%                                                                    - let
          10   0%                                                                     - make-vector
          10   0%                                                                      - shr-max-columns
          10   0%                                                                       - let
          10   0%                                                                        - let
          10   0%                                                                         - while
           9   0%                                                                          - let
           8   0%                                                                           - if
           8   0%                                                                            - progn
           8   0%                                                                             - let
           6   0%                                                                              - while
           6   0%                                                                               - let
           4   0%                                                                                - if
           3   0%                                                                                 - progn
           2   0%                                                                                  - let*
           1   0%                                                                                     and
           1   0%                                                                                 - and
           1   0%                                                                                    memq
           6   0%                                                                     - let
           6   0%                                                                      - while
           6   0%                                                                       - let
           6   0%                                                                        - if
           6   0%                                                                         - progn
           6   0%                                                                          - let
           6   0%                                                                           - let
           5   0%                                                                            - while
           3   0%                                                                             - let
           2   0%                                                                              - if
           1   0%                                                                                 memq
           1   0%                                                                               - progn
           1   0%                                                                                - let
           1   0%                                                                                 - cdr
           1   0%                                                                                    assq
           8   0%                                                                   - shr-table-widths
           8   0%                                                                    - let*
           8   0%                                                                     - let
           8   0%                                                                      - while
           8   0%                                                                       - let
           7   0%                                                                        - let
           5   0%                                                                         - let
           5   0%                                                                          - while
           1   0%                                                                             let
           3   0%                                                                   - let*
           3   0%                                                                    - while
           2   0%                                                                     - setq
           1   0%                                                                      - cons
           1   0%                                                                         mapcar
           3   0%                                                                 - shr--fix-table
           3   0%                                                                  - let*
           3   0%                                                                   - dom-non-text-children
           3   0%                                                                    - shr--fix-tbody
           2   0%                                                                     - shr-table-body
           2   0%                                                                      - let
           2   0%                                                                       - seq-filter
           1   0%                                                                        - function
           1   0%                                                                         - cconv-make-interpreted-closure
           1   0%                                                                          - cconv-fv
           1   0%                                                                           - cconv-analyze-form
           1   0%                                                                            - cconv--analyze-function
           1   0%                                                                             - cconv-analyze-form
           1   0%                                                                                #<compiled -0xdb6d8de38021a78>
           1   0%                                                                        - seq-map
           1   0%                                                                         - apply
           1   0%                                                                          - #<compiled 0x184c52027f5d6bf4>
           1   0%                                                                           - mapcar
           1   0%                                                                              #<compiled 0x91ffdf39c9e7756>
           1   0%                                                                     - nconc
           1   0%                                                                      - let*
           1   0%                                                                       - while
           1   0%                                                                          setq
          23   0%                                                               - let*
          23   0%                                                                - if
          23   0%                                                                 - progn
          23   0%                                                                  - let
          23   0%                                                                   - shr-collect-extra-strings-in-table
          23   0%                                                                    - let*
          23   0%                                                                     - while
          23   0%                                                                      - if
          23   0%                                                                       - progn
          23   0%                                                                        - setq
          23   0%                                                                         - nconc
          23   0%                                                                          - reverse
          23   0%                                                                           - shr-collect-extra-strings-in-table
          21   0%                                                                            - let*
          20   0%                                                                             - while
          15   0%                                                                              - if
          15   0%                                                                               - progn
          15   0%                                                                                - setq
          15   0%                                                                                 - nconc
          14   0%                                                                                  - reverse
          14   0%                                                                                   - shr-collect-extra-strings-in-table
          11   0%                                                                                    - let*
          10   0%                                                                                     - while
           8   0%                                                                                      - if
           8   0%                                                                                       - if
           8   0%                                                                                        - progn
           7   0%                                                                                         - if
           5   0%                                                                                          - if
           4   0%                                                                                           - if
           3   0%                                                                                            - if
           1   0%                                                                                             - if
           1   0%                                                                                                memq
           1   0%                                                                                            memq
           1   0%                                                                                        setq
           1   0%                                                                                setq
           1   0%                                                             - shr-ensure-paragraph
           1   0%                                                              - if
           1   0%                                                               - let
           1   0%                                                                - cond
           1   0%                                                                   and
          62   1%                                                            - shr-tag-dl
          61   1%                                                             - shr-generic
          61   1%                                                              - let
          61   1%                                                               - while
          61   1%                                                                - let
          61   1%                                                                 - if
          46   0%                                                                  - shr-descend
          46   0%                                                                   - let
          46   0%                                                                    - if
          46   0%                                                                     - cond
          46   0%                                                                      - funcall
          33   0%                                                                       - shr-tag-dt
          25   0%                                                                        - shr-generic
          25   0%                                                                         - let
          25   0%                                                                          - while
          23   0%                                                                           - let
          23   0%                                                                            - if
          18   0%                                                                             - shr-descend
          16   0%                                                                              - let
          15   0%                                                                               - if
          13   0%                                                                                - cond
          13   0%                                                                                 - funcall
          13   0%                                                                                  - shr-tag-span
          13   0%                                                                                   - shr-generic
          13   0%                                                                                    - let
          13   0%                                                                                     - while
          13   0%                                                                                      - let
          12   0%                                                                                       - if
           7   0%                                                                                        - shr-descend
           6   0%                                                                                         - let
           6   0%                                                                                          - if
           4   0%                                                                                           - cond
           4   0%                                                                                            - funcall
           4   0%                                                                                             - eww-tag-a
           3   0%                                                                                              - let
           2   0%                                                                                               - shr-tag-a
           2   0%                                                                                                  let
           1   0%                                                                                                 if
           1   0%                                                                                                eww-handle-link
           1   0%                                                                                           - let*
           1   0%                                                                                            - and
           1   0%                                                                                             - cdr
           1   0%                                                                                                assq
           5   0%                                                                                        - shr-insert
           5   0%                                                                                         - cond
           5   0%                                                                                          - let
           4   0%                                                                                           - let
           2   0%                                                                                            - save-restriction
           1   0%                                                                                             - shr--translate-insertion-chars
           1   0%                                                                                                while
           1   0%                                                                                             - if
           1   0%                                                                                                progn
           1   0%                                                                                            - if
           1   0%                                                                                             - if
           1   0%                                                                                                progn
           1   0%                                                                                           - if
           1   0%                                                                                              progn
           1   0%                                                                                - let*
           1   0%                                                                                 - and
           1   0%                                                                                    cdr
           1   0%                                                                                  or
           1   0%                                                                               - cdr
           1   0%                                                                                  assq
           5   0%                                                                             - shr-insert
           5   0%                                                                              - cond
           5   0%                                                                               - let
           5   0%                                                                                - let
           3   0%                                                                                 - save-restriction
           2   0%                                                                                    while
           1   0%                                                                                  - if
           1   0%                                                                                     progn
           7   0%                                                                        - shr-ensure-newline
           7   0%                                                                         - if
           7   0%                                                                          - let
           4   0%                                                                           - if
           1   0%                                                                            - or
           1   0%                                                                               =
           3   0%                                                                             get-text-property
          13   0%                                                                       - shr-tag-dd
          12   0%                                                                        - let
          11   0%                                                                         - shr-generic
          11   0%                                                                          - let
          11   0%                                                                           - while
          11   0%                                                                            - let
          11   0%                                                                             - if
           7   0%                                                                              - shr-descend
           6   0%                                                                               - let
           2   0%                                                                                - if
           1   0%                                                                                 - cond
           1   0%                                                                                  - funcall
           1   0%                                                                                     shr-tag-p
           1   0%                                                                                 - let*
           1   0%                                                                                  - and
           1   0%                                                                                     cdr
           2   0%                                                                                - cdr
           1   0%                                                                                   assq
           1   0%                                                                                  intern
           3   0%                                                                              - shr-insert
           3   0%                                                                               - cond
           2   0%                                                                                - let
           1   0%                                                                                 - let
           1   0%                                                                                  - save-restriction
           1   0%                                                                                     shr--translate-insertion-chars
           1   0%                                                                        - shr-ensure-newline
           1   0%                                                                           if
          15   0%                                                                  - shr-insert
          15   0%                                                                   - cond
          15   0%                                                                    - let
          13   0%                                                                     - let
           7   0%                                                                      - save-restriction
           6   0%                                                                       - if
           4   0%                                                                          progn
           1   0%                                                                       - shr--translate-insertion-chars
           1   0%                                                                          while
           1   0%                                                                        if
           1   0%                                                                     - if
           1   0%                                                                      - and
           1   0%                                                                         string-match-p
           1   0%                                                             - shr-ensure-paragraph
           1   0%                                                              - if
           1   0%                                                               - let
           1   0%                                                                - cond
           1   0%                                                                   and
           4   0%                                                            - shr-tag-p
           4   0%                                                             - shr-ensure-paragraph
           4   0%                                                              - if
           4   0%                                                               - let
           2   0%                                                                  cond
           2   0%                                                                  get-text-property
           3   0%                                                            - eww-tag-a
           3   0%                                                             - let
           2   0%                                                              - if
           2   0%                                                               - put-text-property
           2   0%                                                                  if
           1   0%                                                                shr-tag-a
           3   0%                                                            - shr-tag-sup
           3   0%                                                             - let
           3   0%                                                              - shr-generic
           3   0%                                                               - let
           3   0%                                                                - while
           2   0%                                                                 - let
           2   0%                                                                  - if
           2   0%                                                                   - shr-insert
           2   0%                                                                    - cond
           2   0%                                                                     - let
           2   0%                                                                        let
          30   0%                                                           - shr-generic
          30   0%                                                            - let
          30   0%                                                             - while
          30   0%                                                              - let
          30   0%                                                               - if
          29   0%                                                                - shr-insert
          29   0%                                                                 - cond
          28   0%                                                                  - let
          25   0%                                                                   - let
           9   0%                                                                    - save-restriction
           3   0%                                                                     - shr--translate-insertion-chars
           2   0%                                                                        while
           3   0%                                                                       while
           1   0%                                                                       if
           7   0%                                                                    - if
           5   0%                                                                     - if
           5   0%                                                                      - progn
           2   0%                                                                       - shr-mark-fill
           2   0%                                                                        - if
           1   0%                                                                           progn
           1   0%                                                                           and
           1   0%                                                                         put-text-property
           3   0%                                                                   - if
           3   0%                                                                    - and
           2   0%                                                                       string-match-p
           1   0%                                                                - shr-descend
           1   0%                                                                 - let
           1   0%                                                                  - if
           1   0%                                                                   - cond
           1   0%                                                                      shr-generic
           1   0%                                                  - let
           1   0%                                                     while
         197   3%                                             - shr-tag-div
         197   3%                                              - let
         197   3%                                               - if
         197   3%                                                - shr-generic
         197   3%                                                 - let
         197   3%                                                  - while
         197   3%                                                   - let
         197   3%                                                    - if
         162   2%                                                     - shr-descend
         160   2%                                                      - let
         153   2%                                                       - if
         151   2%                                                        - cond
         150   2%                                                         - funcall
         141   2%                                                          - shr-tag-p
         125   2%                                                           - shr-generic
         125   2%                                                            - let
         125   2%                                                             - while
         123   2%                                                              - let
         121   2%                                                               - if
          99   1%                                                                - shr-insert
          98   1%                                                                 - cond
          98   1%                                                                  - let
          87   1%                                                                   - let
          67   1%                                                                    - save-restriction
          46   0%                                                                       while
           9   0%                                                                     - shr--translate-insertion-chars
           6   0%                                                                        while
           2   0%                                                                        goto-char
           7   0%                                                                     - if
           3   0%                                                                        progn
           7   0%                                                                    - if
           4   0%                                                                     - if
           4   0%                                                                      - progn
           1   0%                                                                         put-text-property
           1   0%                                                                       =
           9   0%                                                                   - if
           5   0%                                                                      progn
           3   0%                                                                    - and
           3   0%                                                                       string-match-p
          20   0%                                                                - shr-descend
          17   0%                                                                 - let
          11   0%                                                                  - if
          10   0%                                                                   - cond
           9   0%                                                                    - funcall
           8   0%                                                                     - eww-tag-a
           4   0%                                                                      - let
           3   0%                                                                       - if
           3   0%                                                                        - put-text-property
           3   0%                                                                           if
           1   0%                                                                       - shr-tag-a
           1   0%                                                                          let
           3   0%                                                                      - eww-handle-link
           1   0%                                                                       - let*
           1   0%                                                                        - assoc
           1   0%                                                                           if
           4   0%                                                                  - cdr
           2   0%                                                                     assq
           1   0%                                                                  - intern
           1   0%                                                                   - concat
           1   0%                                                                      symbol-name
          15   0%                                                           - shr-ensure-paragraph
          15   0%                                                            - if
          14   0%                                                             - let
          14   0%                                                              - cond
           2   0%                                                               - save-excursion
           2   0%                                                                  and
           2   0%                                                               - and
           1   0%                                                                  save-excursion
           5   0%                                                          - shr-tag-div
           5   0%                                                           - let
           5   0%                                                            - if
           2   0%                                                             - shr-generic
           2   0%                                                              - let
           2   0%                                                               - while
           1   0%                                                                  let
           2   0%                                                             - shr-ensure-newline
           2   0%                                                              - if
           2   0%                                                               - let
           1   0%                                                                - if
           1   0%                                                                 - or
           1   0%                                                                    =
           2   0%                                                          - shr-tag-hr
           1   0%                                                           - shr-ensure-newline
           1   0%                                                            - if
           1   0%                                                               let
           1   0%                                                          - shr-tag-pre
           1   0%                                                           - let
           1   0%                                                            - shr-generic
           1   0%                                                             - let
           1   0%                                                                while
           1   0%                                                            eww-tag-a
           1   0%                                                        - let*
           1   0%                                                         - if
           1   0%                                                          - setq
           1   0%                                                           - cons
           1   0%                                                              cons
           5   0%                                                       - cdr
           3   0%                                                          assq
           1   0%                                                       - intern
           1   0%                                                        - concat
           1   0%                                                           symbol-name
          32   0%                                                     - shr-insert
          31   0%                                                      - cond
          31   0%                                                       - let
          30   0%                                                        - let
          16   0%                                                         - save-restriction
           7   0%                                                          - if
           6   0%                                                             progn
           3   0%                                                            while
           2   0%                                                          - shr--translate-insertion-chars
           1   0%                                                             while
           1   0%                                                      - if
           1   0%                                                         and
          20   0%                                             - shr-tag-code
          20   0%                                              - let
          20   0%                                               - shr-generic
          20   0%                                                - let
          20   0%                                                 - while
          20   0%                                                  - let
          20   0%                                                   - if
          20   0%                                                    - shr-insert
          18   0%                                                     - cond
          18   0%                                                      - let
          17   0%                                                       - let
           7   0%                                                        - if
           7   0%                                                         - if
           7   0%                                                          - progn
           6   0%                                                           - shr-mark-fill
           6   0%                                                            - if
           4   0%                                                             - progn
           1   0%                                                                put-text-property
           1   0%                                                               and
           6   0%                                                        - save-restriction
           3   0%                                                           while
           1   0%                                                           if
           1   0%                                                     - if
           1   0%                                                        and
          17   0%                                             - shr-tag-ul
          17   0%                                              - let
          17   0%                                               - shr-generic
          17   0%                                                - let
          17   0%                                                 - while
          17   0%                                                  - let
          17   0%                                                   - if
          14   0%                                                    - shr-descend
          14   0%                                                     - let
          14   0%                                                      - if
          14   0%                                                       - cond
          14   0%                                                        - funcall
          14   0%                                                         - shr-tag-li
          13   0%                                                          - let
          13   0%                                                           - let*
          12   0%                                                            - let
          10   0%                                                             - shr-generic
          10   0%                                                              - let
          10   0%                                                               - while
          10   0%                                                                - let
           9   0%                                                                 - if
           8   0%                                                                  - shr-insert
           8   0%                                                                   - cond
           8   0%                                                                    - let
           7   0%                                                                     - let
           4   0%                                                                      - save-restriction
           2   0%                                                                         while
           1   0%                                                                       - shr--translate-insertion-chars
           1   0%                                                                          while
           1   0%                                                                     - if
           1   0%                                                                        progn
           1   0%                                                                  - shr-descend
           1   0%                                                                   - let
           1   0%                                                                      if
           1   0%                                                            if
           3   0%                                                    - shr-insert
           3   0%                                                     - cond
           3   0%                                                      - let
           2   0%                                                       - let
           1   0%                                                        - save-restriction
           1   0%                                                           while
           1   0%                                                       - if
           1   0%                                                        - and
           1   0%                                                           string-match-p
           1   0%                                             - eww-tag-title
           1   0%                                              - eww--after-page-change
           1   0%                                               - eww-update-header-line-format
           1   0%                                                - setq
           1   0%                                                 - and
           1   0%                                                  - let
           1   0%                                                   - if
           1   0%                                                    - progn
           1   0%                                                     - let*
           1   0%                                                      - cond
           1   0%                                                       - >
           1   0%                                                        - +
           1   0%                                                           string-pixel-width
           1   0%                                             - shr-tag-h3
           1   0%                                              - shr-heading
           1   0%                                               - apply
           1   0%                                                - shr-fontize-dom
           1   0%                                                 - let
           1   0%                                                  - let
           1   0%                                                   - while
           1   0%                                                    - let
           1   0%                                                     - shr-add-font
           1   0%                                                      - save-excursion
           1   0%                                                       - while
           1   0%                                                        - if
           1   0%                                                           progn
           1   0%                                             - shr-tag-h4
           1   0%                                              - shr-heading
           1   0%                                               - apply
           1   0%                                                - shr-fontize-dom
           1   0%                                                 - let
           1   0%                                                  - let
           1   0%                                                   - while
           1   0%                                                    - let
           1   0%                                                     - shr-add-font
           1   0%                                                      - save-excursion
           1   0%                                                       - while
           1   0%                                                        - add-face-text-property
           1   0%                                                           min
           1   0%                                             - shr-tag-em
           1   0%                                              - shr-fontize-dom
           1   0%                                               - let
           1   0%                                                - shr-generic
           1   0%                                                 - let
           1   0%                                                  - while
           1   0%                                                   - let
           1   0%                                                    - if
           1   0%                                                     - shr-insert
           1   0%                                                      - cond
           1   0%                                                       - let
           1   0%                                                        - let
           1   0%                                                         - save-restriction
           1   0%                                                            while
           1   0%                                             - shr-tag-b
           1   0%                                              - shr-fontize-dom
           1   0%                                               - let
           1   0%                                                - let
           1   0%                                                 - while
           1   0%                                                  - let
           1   0%                                                   - shr-add-font
           1   0%                                                    - save-excursion
           1   0%                                                       while
           1   0%                                          and
           7   0%                             - shr-indent
           7   0%                              - if
           7   0%                               - progn
           7   0%                                  if
         307   5%                            - if
         306   5%                             - progn
         158   2%                              - shr-vertical-motion
         158   2%                               - if
           2   0%                                - vertical-motion
           2   0%                                 - cons
           1   0%                                    /
         147   2%                              - while
         108   1%                               - shr-vertical-motion
         108   1%                                - if
           1   0%                                   if
          21   0%                               - let
           9   0%                                - shr-indent
           9   0%                                 - if
           9   0%                                  - progn
           9   0%                                   - if
           2   0%                                      put-text-property
           2   0%                                - if
           2   0%                                 - progn
           1   0%                                  - put-text-property
           1   0%                                   - shr-face-background
           1   0%                                    - and
           1   0%                                     - or
           1   0%                                      - let
           1   0%                                         let
          15   0%                               - if
          12   0%                                - progn
           1   0%                                   delete-char
           3   0%                                - or
           2   0%                                   not
           1   0%                                   =
           1   0%                                 setq
           1   0%                              or
           4   0%                          setq
          51   0%                    - shr--set-target-ids
          51   0%                     - if
          51   0%                      - let
          50   0%                       - seq-group-by
          50   0%                        - seq-reduce
          50   0%                         - seq-do
          50   0%                          - mapc
          50   0%                           - #<compiled 0x1f6b909dc3b4177e>
          50   0%                              #<compiled -0x59cbb93c5c11f35>
           1   0%                       - while
           1   0%                        - let
           1   0%                           let
           3   0%             - eww-size-text-inputs
           3   0%              - let
           3   0%               - while
           3   0%                - if
           3   0%                 - or
           3   0%                    setq
          68   1%            - or
          68   1%             - list
          68   1%              - progn
          20   0%               - eww--preprocess-html
          20   0%                - save-excursion
          20   0%                 - save-restriction
          20   0%                  - let
          20   0%                     while
          19   0%               - save-excursion
          19   0%                  while
          10   0%                 condition-case
           1   0%   - url-http-parse-headers
           1   0%      url-handle-content-transfer-encoding
           9   0% + command-execute
           4   0% + nsm-verify-connection




Severity set to 'wishlist' from 'normal' Request was from Stefan Kangas <stefankangas <at> gmail.com> to control <at> debbugs.gnu.org. (Sun, 24 Dec 2023 14:36:02 GMT) Full text and rfc822 format available.

This bug report was last modified 1 year and 178 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.