unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Miles Bader <miles@gnu.org>
To: Lennart Borgman <lennart.borgman@gmail.com>
Cc: David Kastrup <dak@gnu.org>, emacs-devel@gnu.org
Subject: Re: redisplay system of emacs
Date: Fri, 29 Jan 2010 20:03:47 +0900	[thread overview]
Message-ID: <buoeil9kwa4.fsf@dhlpc061.dev.necel.com> (raw)
In-Reply-To: <e01d8a51001290223p83087dhaf2c0c29918daaa@mail.gmail.com> (Lennart Borgman's message of "Fri, 29 Jan 2010 11:23:43 +0100")

Lennart Borgman <lennart.borgman@gmail.com> writes:
>> Uh, Emacs needs to work without noticeable delays and with syntax
>> highlighting for documents of _book_ size, easily containing thousands
>> of pages.
>
> Is this necessarily related to the display engine?

Different display engines models are affected differently by changes in
document size.

Mozilla's model, where the _entire document_ is converted into an
internal "layed-out-document" data structure, and then that is rendered,
and which is mainly targeted at documents of "reasonable" length but
with complex layout requirements (web pages), is pretty likely to have
an unacceptably high overhead (time and memory used by the
layed-out-document) for extremely large documents.

Emacs, which doesn't maintain a separate "layed-out-document" data
structure at all, and mainly just worries about rendering what's on the
screen from the raw document, has a very different set of tradeoffs.

Now, it's certainly _possible_ that mozilla actually contains special
code to deal with very-large-but-very-simple document structures, and
use a different method with different tradeoffs to render them, but...
it seems unlikely , and AFAIK, it doesn't.  [but of course, this
"special" code would more or less just be an implementation of what
Emacs does already!]

It's also _possible_ that mozilla's algorithms and data-structures are
so incredibly fast and efficient that this overhead is acceptable even
for extremely large documents on modern machines.  Judging from the
observed performance of e.g. firefox on large but simple web pages,
though, this also seems pretty unlikely.

[Emacs of course also does some processing that is proportional to
document length, e.g., coding/decoding, and at the most basic,
I/O... however such processing is likely to be much simpler/faster (and
memory efficient) than what Mozilla has to do layout the document for
display.]

-Miles

-- 
Friendless, adj. Having no favors to bestow. Destitute of fortune. Addicted to
utterance of truth and common sense.




  parent reply	other threads:[~2010-01-29 11:03 UTC|newest]

Thread overview: 162+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-01-28  0:19 redisplay system of emacs alin.s
2010-01-28  4:13 ` Eli Zaretskii
2010-01-28  9:07   ` Lennart Borgman
2010-01-28 11:27     ` Eli Zaretskii
2010-01-28 11:47       ` Lennart Borgman
2010-01-28 12:43         ` Eli Zaretskii
2010-01-28 12:53           ` Lennart Borgman
2010-01-28 14:10             ` Miles Bader
2010-01-28 15:04               ` alin.s
2010-01-28 22:34               ` Lennart Borgman
2010-01-29 10:04               ` Paul R
2010-01-29 10:17                 ` David Kastrup
2010-01-29 10:23                   ` Lennart Borgman
2010-01-29 10:30                     ` David Kastrup
2010-01-29 13:18                       ` Lennart Borgman
2010-01-29 11:03                     ` Miles Bader [this message]
2010-01-29 11:38                       ` Eli Zaretskii
2010-01-29 15:10                         ` Miles Bader
2010-01-29 17:30                           ` Eli Zaretskii
2010-01-29 10:48                   ` Paul R
2010-01-29 11:01                     ` David Kastrup
2010-01-29 18:19                   ` Stefan Monnier
2010-01-29 11:35                 ` Eli Zaretskii
2010-01-29 13:06                   ` Paul R
2010-01-29 13:10                     ` David Kastrup
2010-01-29 13:45                     ` Eli Zaretskii
2010-01-29 15:28                     ` Chong Yidong
2010-01-29 18:35                     ` Stefan Monnier
2010-01-29 18:56                       ` Óscar Fuentes
2010-01-30 11:46                         ` Richard Stallman
2010-01-30 12:51                           ` Óscar Fuentes
2010-01-30 15:39                             ` Eli Zaretskii
2010-01-30 19:21                               ` Óscar Fuentes
2010-01-30 21:31                                 ` Eli Zaretskii
2010-01-31  9:32                               ` David Kastrup
2010-01-31 12:41                             ` Richard Stallman
2010-01-29 19:53                       ` Eli Zaretskii
2010-01-30 18:04                         ` Stefan Monnier
2010-01-30 18:39                           ` Stephen J. Turnbull
2010-01-30 10:34                       ` Fabian Ezequiel Gallina
2010-01-30 10:52                         ` David Kastrup
2010-01-30 21:18                         ` Stefan Monnier
2010-01-29 13:07                   ` David Kastrup
2010-01-28  5:10 ` Ken Hori
2010-01-28 12:10 ` Stephen J. Turnbull
2010-01-28 13:41   ` alin.s
2010-01-28 14:50     ` Stephen J. Turnbull
2010-02-12  8:31 ` alin.s
2010-02-12 12:10   ` Juanma Barranquero
2010-02-12 13:41     ` alin.s
2010-02-12 12:49   ` Jan Djärv
2010-02-12 13:30     ` alin.s
2010-02-12 14:25       ` Jan Djärv
2010-02-12 14:37         ` alin.s
2010-02-12 14:53         ` alin.s
2010-02-12 15:11           ` Jan Djärv
2010-02-12 15:31             ` David Kastrup
2010-02-12 15:55               ` Jan Djärv
2010-02-12 16:53               ` alin.s
2010-02-12 18:55                 ` David Kastrup
2010-02-14 19:13                   ` alin.s
2010-02-17 13:14                     ` Chong Yidong
2010-02-23  0:45                       ` Giuseppe Scrivano
2010-02-23  3:01                         ` David Reitter
2010-02-23  3:34                           ` Tom Tromey
2010-02-23 14:31                         ` Richard Stallman
2010-03-05 22:53                         ` Concurrency (was: redisplay system of emacs) Stefan Monnier
2010-03-05 22:57                           ` Andreas Schwab
2010-03-11 14:18                           ` Giuseppe Scrivano
2010-03-25 16:49                           ` Giuseppe Scrivano
2010-03-26 17:10                             ` Concurrency Ted Zlatanov
2010-03-26 19:37                               ` Concurrency Tom Tromey
2010-03-27  3:00                                 ` Concurrency Ted Zlatanov
2010-03-27 13:33                                   ` Concurrency Stefan Monnier
2010-03-29 18:18                                     ` Concurrency Tom Tromey
2010-03-28 19:40                                   ` Concurrency Tom Tromey
2010-03-28 20:03                                     ` Concurrency Stefan Monnier
2010-03-28 20:25                                       ` Concurrency Davis Herring
2010-03-28 20:54                                         ` Concurrency Giuseppe Scrivano
2010-03-28 23:18                                           ` Concurrency Stefan Monnier
2010-03-29 10:04                                             ` Concurrency Giuseppe Scrivano
2010-03-29 15:37                                               ` Concurrency Tom Tromey
2010-03-29 16:16                                                 ` Concurrency Stefan Monnier
2010-03-29 16:36                                                   ` Concurrency Ken Raeburn
2010-03-29 17:41                                                     ` Concurrency Stefan Monnier
2010-03-29 16:33                                                 ` Concurrency Ken Raeburn
2010-03-29 16:58                                                   ` Concurrency Tom Tromey
2010-03-29 17:46                                                     ` Concurrency Stefan Monnier
2010-03-29 17:37                                                 ` Concurrency Giuseppe Scrivano
2010-03-29 18:21                                                   ` Concurrency Stefan Monnier
2010-03-28 21:19                                         ` Concurrency Tom Tromey
2010-03-28 21:22                                         ` Concurrency Daniel Colascione
2010-03-28 23:20                                           ` Concurrency Stefan Monnier
2010-03-29  2:18                                           ` Concurrency Tom Tromey
2010-03-28 21:17                                       ` Concurrency Tom Tromey
2010-03-29 16:25                                         ` Concurrency Ken Raeburn
2010-03-29 16:49                                           ` Concurrency Tom Tromey
2010-03-29 17:39                                             ` Concurrency Stefan Monnier
2010-03-31 17:13                                         ` gsoc for concurrent Emacs? (was: Concurrency) Ted Zlatanov
2010-04-01  9:45                                           ` Giuseppe Scrivano
2010-03-28 21:04                                     ` Concurrency Giuseppe Scrivano
2010-03-28 21:25                                     ` Concurrency Daniel Colascione
2010-03-29  2:20                                       ` Concurrency Tom Tromey
2010-02-14 19:25                   ` redisplay system of emacs alin.s
2010-02-16 16:40                 ` Davis Herring
2010-02-16 19:20                   ` grischka
2010-02-16 19:55                     ` Thien-Thi Nguyen
2010-02-17 13:56                       ` alin.s
2010-02-16 20:00                     ` Eli Zaretskii
2010-02-16 20:56                       ` grischka
2010-02-17  4:20                         ` Eli Zaretskii
  -- strict thread matches above, loose matches on Subject: below --
2010-01-29 19:48 grischka
2010-01-30  5:39 ` Stephen J. Turnbull
2010-01-30  9:53   ` David Kastrup
2010-01-30 11:01     ` Stephen J. Turnbull
2010-01-30 11:08       ` David Kastrup
2010-01-30 11:54         ` Paul R
2010-01-30 13:52           ` Stephen J. Turnbull
2010-01-30 11:24       ` Eli Zaretskii
2010-01-30 12:53       ` Alan Mackenzie
2010-01-30  9:57   ` Eli Zaretskii
2010-01-30 11:46 ` Richard Stallman
2010-01-30 12:11   ` Paul R
2010-01-30 13:26     ` Alan Mackenzie
2010-01-30 13:42       ` David Kastrup
2010-01-30 13:49       ` Juanma Barranquero
2010-01-30 13:54       ` Paul R
2010-01-30 15:15         ` Stephen J. Turnbull
2010-01-30 15:07       ` Stephen J. Turnbull
2010-01-31 12:41     ` Richard Stallman
2010-01-31 16:36       ` grischka
2010-02-01 21:06         ` Richard Stallman
2010-02-02  3:32           ` Stephen J. Turnbull
2010-02-02 21:21             ` Richard Stallman
2010-02-02 21:42               ` David Kastrup
2010-02-03  0:24                 ` Lennart Borgman
2010-02-03  6:45                   ` David Kastrup
2010-02-03 13:34                 ` Richard Stallman
2010-02-03 14:15                   ` David Kastrup
2010-02-03 14:18                     ` Daniel Colascione
2010-02-04 11:01                       ` Richard Stallman
2010-02-03  2:48               ` Stephen J. Turnbull
2010-02-03 12:19                 ` Juanma Barranquero
2010-02-04 11:00                   ` Richard Stallman
2010-02-04 11:06                     ` Juanma Barranquero
2010-02-05 12:44                       ` Richard Stallman
2010-02-05 18:37                         ` grischka
2010-02-03 13:34                 ` Richard Stallman
2010-02-03 17:26                   ` Stephen J. Turnbull
2010-02-03 17:45                     ` David Kastrup
2010-02-03 18:35                     ` grischka
2010-02-03 18:36                     ` Óscar Fuentes
2010-02-03 19:03                       ` Lennart Borgman
2010-02-03 20:31                         ` Ted Zlatanov
2010-02-03 20:37                           ` Lennart Borgman
2010-02-04  8:23                       ` Stephen J. Turnbull
2010-02-04 23:18                         ` Richard Stallman
2010-02-05  5:46                           ` Stephen J. Turnbull
2010-02-04 11:01                     ` Richard Stallman
2010-02-04 11:38                       ` David Kastrup
2010-02-05 19:08                         ` Richard Stallman
2010-02-04 12:28                       ` Stephen J. Turnbull

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=buoeil9kwa4.fsf@dhlpc061.dev.necel.com \
    --to=miles@gnu.org \
    --cc=dak@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=lennart.borgman@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).