[comp.emacs] Emacs refresh speed under X on Sparcstation

josh@viewlog.UUCP (Josh Marantz) (04/10/90)

I have Gnu Emacs 18.55 running on my Sparc under SunOS 4.0.3, using X11R4.
The refresh speed is excellent when paging forward and backward.  But when
doing complex operations, such as splitting windows, partial scrolls, and
big kills and copies, sometimes the display seems non-optimal.  It seems
like it would be faster on the Sparc to do a complete repaint rather than
do scroll-region (presumably through XCopyArea).  How do I tell the Emacs
redisplay algorithm that these scrolls are very costly?
-- 
Joshua Marantz
Viewlogic Systems, Inc.
viewlog!josh@cg-atla.agfa.com
        Why not pass the time by playing a game of solitaire?

shurr@cbnews.ATT.COM (Larry A. Shurr) (04/11/90)

In article <1510@viewlog.UUCP> josh@viewlog.UUCP (Josh Marantz) writes:
}I have Gnu Emacs 18.55 running on my Sparc under SunOS 4.0.3, using X11R4.
}The refresh speed is excellent when paging forward and backward.  But when
}doing complex operations, such as splitting windows, partial scrolls, and
}big kills and copies, sometimes the display seems non-optimal.  It seems
}like it would be faster on the Sparc to do a complete repaint rather than
}do scroll-region (presumably through XCopyArea).  How do I tell the Emacs
}redisplay algorithm that these scrolls are very costly?

Very likely, you can tell Emacs that repaints are cheaper by using
stty to tell it you are running at a high baud rate eg: "stty 38400"

Of course you're fibbing because you have no baud rate at all on the
Sun display, but who cares?  This is what I did on an AT&T 6386.

regards, Larry
-- 
Signed: Larry A. Shurr (cbnmva!las@att.ATT.COM or att!cbnmva!las)
My psuedo-Burma Shave .signature has served me long and well and has been
retired.  A new .signature is now under consideration.
This posting reflects my opinions, not those of AGS or AT&T, but you knew that)

josh@viewlog.UUCP (Josh Marantz) (04/13/90)

It looks like the way to improve refresh performance in Gnu Emacs
18.55 on X11R4 on a Sparcstation running SunOS 4.0.3 is to tell emacs
that the baud rate is very high, say 1000000.  Unfortunately, there's
no way to do this from elisp.  This modification to x11fns.c supplies
a new function x-set-baud, which you can call from your .emacs.  This
seems to work well for me.  Thanks to all who responded.

*** x11fns.c.orig	Wed Apr 11 13:18:24 1990
--- x11fns.c	Fri Apr 13 12:15:44 1990
***************
*** 456,461 ****
--- 456,471 ----
  	return (Qnil);
  }
  
+ DEFUN ("x-set-baud", Fx_set_baud, Sx_set_baud, 1, 1, "nBaud Rate: ",
+        "Sets the apparent baud rate to influence the refresh algorithm")
+     (new_baud_rate)
+ {
+     CHECK_NUMBER (new_baud_rate, 1);
+     check_xterm ();
+     baud_rate = XINT (new_baud_rate);
+     return (Qnil);
+ }
+ 
  DEFUN ("x-set-font", Fx_set_font, Sx_set_font, 1, 1, "sFont Name: ",
        "Sets the font to be used for the X window.")
    (arg)
***************
*** 892,897 ****
--- 902,908 ----
    defsubr (&Sx_rebind_keys);
  #endif notdef
    defsubr (&Sx_debug);
+   defsubr (&Sx_set_baud);
  }
  
  #endif /* HAVE_X_WINDOWS */
-- 
Joshua Marantz
Viewlogic Systems, Inc.
viewlog!josh@cg-atla.agfa.com
        Why not pass the time by playing a game of solitaire?