[Date Prev][Date Next][Thread Prev][][Date Index][Thread Index]

Re: No such anchor but yes such anchor in Firefox



土屋です.

>> On Tue, 10 Jul 2012 21:08:36 +0900 (JST)
>> shirai@xxxxxxxxxxx (Hideyuki SHIRAI (白井秀行)) said as follows:

>>>> w3m-rendering-half-dump() が異常に時間がかかるページがあります。

>>> 別の手を考えてみます。

>> やってみました。いかがでしょう。

>十二分な速さになりました。

うーん,私の環境だとまだちょっとイマイチ‥‥.ネットワーク接続が遅いのか
なあと思っていたので,今までできるだけ気にしないようにして使っていたので
すが,改めて

    http://www.mew.org/~kazu/doc/elisp/profile.html

にしたがって ELP で profile を採ってみました.

それで,top-20 までを見ると,

w3m-process-sentinel                         5           9.632271      1.9264541999
w3m-create-page                              5           6.299398      1.2598796
w3m-create-text-page                         5           6.256266      1.2512532
w3m-rendering-buffer                         5           4.623613      0.9247226
w3m-rendering-half-dump                      5           4.2109000000  0.8421800000
w3m-session-menubar-update                   700         3.9801689999  0.0056859557
w3m-session-crash-recovery-save              5           3.307849      0.6615698
w3m-load-list                                10          2.749306      0.2749305999
w3m-fontify                                  5           1.622764      0.3245528000
w3m-fontify-anchors                          5           1.38988       0.277976
w3m-save-list                                5           1.109183      0.2218366
w3m-session-make-menu-items                  691         0.6034799999  0.0008733429
w3m-fix-illegal-blocks                       5           0.353256      0.0706512
w3m-bookmark-menubar-update                  700         0.2456449999  0.0003509214
w3m-end-of-tag                               1370        0.231904      0.0001692729
w3m-tab-menubar-update                       705         0.1860779999  0.0002639404
w3m-decode-entities-string                   10080       0.1825530000  1.811...e-05
w3m-gohome                                   5           0.1501430000  0.0300286000
w3m-goto-url                                 5           0.150032      0.0300064

となっていて,やはりまだ w3m-rendering-half-dump がそれなりに遅いように見
えます.ためしに,末尾に添付したように,id="..." を正規化する部分をコメン
トアウトしてみると,

w3m-process-sentinel                         5           5.164141      1.0328282
w3m-session-menubar-update                   694         4.1528819999  0.0059839798
w3m-create-page                              5           3.663151      0.7326302
w3m-create-text-page                         5           3.38041       0.676082
w3m-rendering-buffer                         5           1.939073      0.3878146
w3m-session-crash-recovery-save              5           1.4716989999  0.2943398
w3m-rendering-half-dump                      5           1.459991      0.2919982
w3m-fontify                                  5           1.4325899999  0.2865179999
w3m-save-list                                5           1.0475999999  0.2095199999
w3m-fontify-anchors                          5           0.974783      0.1949565999
w3m-load-list                                10          0.8432709999  0.0843270999
w3m-session-make-menu-items                  693         0.5277519999  0.0007615468
w3m-fix-illegal-blocks                       5           0.391162      0.0782324000
w3m-bookmark-menubar-update                  694         0.3043490000  0.0004385432
w3m-gohome                                   5           0.258803      0.0517606000
w3m-goto-url                                 5           0.25869       0.0517379999
w3m-end-of-tag                               1370        0.2541460000  0.0001855080
w3m-safe-decode-buffer                       10          0.2462170000  0.0246217000
w3m-decode-buffer                            5           0.246065      0.049213

となって,まあまあの感じになります.

w3m / emacs-w3m の存在意義は「軽さ」にあるわけなので,これはちょっとまず
い状態かなあと思います.例えば,今回の例で言えば,id="..." を w3m 本体側
で対処するパッチを書く方が良さそう(でも時間がない)と思いました.

それから,私の環境では w3m-session-crash-recovery-save が時間をくっている
ことも分かりました.とりあえず私は

    (setq w3m-session-crash-recovery nil)

で使おうかと思っています.

-- 
土屋 雅稔 ( TSUCHIYA Masatoshi )
--- w3m.el	13 Jul 2012 14:52:04 -0000	1.1586
+++ w3m.el	17 Jul 2012 10:00:29 -0000
@@ -6094,15 +6094,15 @@
   ;; This section adds ``<a name="FOO_BAR"></a>'' in front of
   ;; ``<TAG ... id="FOO_BAR" ...>FOO BAR</TAG>'' in the current buffer.
   (goto-char (point-min))
-  (let (st nd name)
-    (while (re-search-forward "<\\(?:[^\t\n\r >]+\\)\
-\[\t\n\r ]+\\(?:[^\t\n\r >]+[\t\n\r ]+\\)*id=\\(\"[^\"]+\"\\)"
-			      nil t)
-      (goto-char (setq st (match-beginning 0)))
-      (setq nd (match-end 0)
-	    name (match-string 1))
-      (insert "<a name=" name "></a>")
-      (goto-char (+ nd (- (point) st)))))
+;;   (let (st nd name)
+;;     (while (re-search-forward "<\\(?:[^\t\n\r >]+\\)\
+;; \[\t\n\r ]+\\(?:[^\t\n\r >]+[\t\n\r ]+\\)*id=\\(\"[^\"]+\"\\)"
+;; 			      nil t)
+;;       (goto-char (setq st (match-beginning 0)))
+;;       (setq nd (match-end 0)
+;; 	    name (match-string 1))
+;;       (insert "<a name=" name "></a>")
+;;       (goto-char (+ nd (- (point) st)))))
 
   (w3m-set-display-ins-del)
   (let* ((coding-system-for-read w3m-output-coding-system)