Subject: bug#19776: 25.0.50; HTML rendering is very slow

From: Nicolas Richard <[email-masked]>
Date: Thu, 05 Feb 2015 12:42:21 +0100

Richard Stallman <[email-masked]> writes:
> The automatic HTML rendering of the following message takes several
> seconds on this X60 which for most things is blindingly fast.

FWIW, here's the elp-results on my machine (after instrumenting the
package shr, and calling shr-render-buffer) :
shr-descend                          6227        408.78522387  0.0656472175
shr-tag-table                        1062        189.46034310  0.1783995697
shr-tag-table-1                      1062        189.33667913  0.1782831253
shr-make-table                       3186        187.52006959  0.0588575234
shr-make-table-1                     1070        164.06574762  0.1533324744
shr-render-td                        3428        163.98280975  0.0478362922
shr-render-buffer                    1           28.734523319  28.734523319
shr-insert-document                  1           28.712268988  28.712268988
shr-tag-body                         1           28.690722764  28.690722764
shr-insert-table                     1062        0.8013559019  0.0007545724
shr-insert                           4126        0.283103186   6.861...e-05
shr-tag-a                            822         0.2324357269  0.0002827685
shr-column-specs                     1062        0.1266108010  0.0001192192
shr-tag-div                          198         0.0957929849  0.0004838029
shr-max-columns                      2124        0.0947569080  4.461...e-05
shr-colorize-region                  634         0.075634319   0.0001192970
shr-parse-style                      548         0.0700457249  0.0001278206
shr-color-check                      141         0.0599092470  0.0004248882
shr-tag-img                          333         0.058440363   0.0001754965
shr-color-visible                    141         0.0464957430  0.0003297570
shr-urlify                           212         0.0396780100  0.0001871604
shr-count                            5966        0.0346115289  5.801...e-06
shr-table-widths                     1062        0.0337347569  3.176...e-05
shr-add-font                         3462        0.0260796149  7.533...e-06
shr-find-fill-point                  494         0.0245121429  4.961...e-05
shr-indent                           10019       0.0231243120  2.308...e-06
shr-remove-trailing-whitespace       1           0.02058152    0.02058152
shr-pro-rate-columns                 1062        0.0123682060  1.164...e-05
shr-insert-table-ruler               4045        0.0103226100  2.551...e-06
shr-ensure-paragraph                 1064        0.0096426120  9.062...e-06
shr-color->hexadecimal               282         0.0084433179  2.994...e-05
shr-fold-text                        23          0.0077441709  0.0003367030
shr-ensure-newline                   396         0.0067178849  1.696...e-05
shr-expand-url                       545         0.0023009930  4.222...e-06
shr-tag-br                           102         0.002192799   2.149...e-05
shr-tag-comment                      289         0.0007590249  2.626...e-06
shr-tag-title                        1           0.00071629    0.00071629
shr-heading                          1           0.000702604   0.000702604
shr-encode-url                       46          0.0006519919  1.417...e-05
shr-fontize-dom                      1           0.000606771   0.000606771
shr-tag-span                         9           0.000584241   6.491...e-05
shr-previous-newline-padding-width   126         0.0004090820  3.246...e-06
shr-image-displayer                  23          8.367...e-05  3.638...e-06
shr-tag-style                        1           2.438e-06     2.438e-06

> Since there is no indication on the screen of what is happening,
> I think that I failed to type a command, and type it again.
>
> It needs to be sped up, but in the short term it needs to display
> "Rendering html..." in the echo area.

A patch is attached but I don't know if this is the right place for it
(shr-insert-document).

modified   lisp/net/shr.el
@@ -208,7 +208,8 @@ (defun shr-insert-document (dom)
 	(shr-depth 0)
 	(shr-warning nil)
 	(shr-internal-width (or shr-width (1- (window-width)))))
-    (shr-descend dom)
+    (with-temp-message "Rendering HTML..."
+      (shr-descend dom))
     (shr-remove-trailing-whitespace start (point))
     (when shr-warning
       (message "%s" shr-warning))))

-- 
Nicolas