home *** CD-ROM | disk | FTP | other *** search
Wrap
Received: from crab.xinside.com (crab.xinside.com [199.164.187.34]) by nacm.com (8.6.10/8.6.9) with ESMTP id IAA11120 for <executor@nacm.com>; Mon, 19 Jun 1995 08:40:38 -0700 Received: (from jdc@localhost) by crab.xinside.com (8.6.8/8.6.9) id JAA02561; Mon, 19 Jun 1995 09:44:53 -0600 From: Jeremy Chatfield <jdc@crab.xinside.com> Message-Id: <199506191544.JAA02561@crab.xinside.com> Subject: Re: Linux executor help To: mat@ardi.com (Mat Hostetter) Date: Mon, 19 Jun 1995 09:44:52 -0600 (MDT) Cc: kemp@convex.convex.com, executor@nacm.com, jdc@xinside.com In-Reply-To: <m0sNhlL-000GOkC@gwar.ardi.com> from "Mat Hostetter" at Jun 19, 95 08:25:00 am Organization: X Inside Inc, P O Box 10774, Golden, CO 80401-0610, USA. Phone: +1(303)470-5302 Reply-To: jdc@xinside.com X-Mailer: ELM [version 2.4 PL23] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Length: 2864 Sender: owner-paper@nacm.com Precedence: bulk Mat Hostetter writes: > > Many Mac apps that track the cursor location make frequent calls to > reset the cursor bitmap, and usually they just keep resetting the > cursor to the same thing. In the black-and-white Executor days, we > would detect when the cursor bitmap wasn't really changing and avoid > the overhead of telling the window server to change the cursor. When > we added color cursor support, we no longer made that check. So the > end result was zillions of calls to the X server to keep (redundantly) > setting the cursor over and over again. > > We never noticed this problem on our machines, but apparently the > cursor flicker is irritating on other machines. We have fixed this > problem (in theory), and the fix will be present in 1.99n. > > -Mat Hi, The problem was actually a transition between a cursor that could be rendered in hardware and one that must be rendered in software. When we detected the change, we flipped from H/W to S/W and then as soon as we found that the cursor could be presented in hardware, we flipped back again. On each transition, we lost a little memory in a true leak (allocated memory twice, to the same variable, with no intervening free() - duh!). The high rate of flipping between cursors could cause a 16MB growth in about one hour. We fixed this. I'm mildly surprised that a performance difference was detected. I suspect that this has more to do with another, coincident change, to eliminate a pathological allocator/garbage collector condition, that could cause a lossless memory growth (all memory was accounted for, no leak, but a particular series of calls to the allocator could upset the garbage collector and prevent the arena from being correctly coalesced). Correcting this algorithmic error did lead to about 5% performance loss in the memory allocator, which would translate to a couple of %age points in overall code execution with heavy memory allocation. I'm glad that's it is fixed in 1.99n (whetever that is) but I'm also grateful that it existed in whatever the prior release was. Changing cursor types between hardware renderable and software renderable forms is sufficiently rare that this bug may have been in our code for a long time, without us having any significant clue. ;-) I'd like to add executor to our set of manual tests. Is there a particularly good application that will exercise the display technology? I assume that there's also an extensive "HOW-TO" somewhere... Since we don't run Macs at all, I have absolutely no idea what is involved. Cheers, JeremyC. -- Jeremy Chatfield +1(303)470-5302 FAX:+1(303)470-5513 email:jdc@xinside.com Commercial X Products - for more information please try: X Inside Inc, P O Box 10774, Golden, CO 80401-0610, USA. http://www.xinside.com/ majordomo@xinside.com ftp.xinside.com