[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: No such anchor but yes such anchor in Firefox
- From: TSUCHIYA Masatoshi <tsuchiya@xxxxxxxxxx>
- Date: Tue, 17 Jul 2012 19:08:31 +0900
- X-ml-name: emacs-w3m
- X-mail-count: 11902
- References: <878vev3syz.fsf@xxxxxxxxxxx> <b4mobnpom9p.fsf@xxxxxxx> <20120710.170004.333181236.1BF46D@xxxxxxxxxxx> <b4m4npg2dcc.fsf@xxxxxxx> <b4mipdv28ik.fsf@xxxxxxx> <20120710.210836.2266143612234051450.1BF46D@xxxxxxxxxxx>
土屋です.
>> 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)