Path: utzoo!utgpu!cunews!bnrgate!brchh104!brchs1!bnr.ca!rice.edu!sun-spots-request From: pacdata!jimh@uunet.uu.net (Jim Harkins) Newsgroups: comp.sys.sun Subject: Re: SPARC assembler takes a LONG time Keywords: No Digest Subjects during Flush Message-ID: <3904@brchh104.bnr.ca> Date: 27 Jun 91 20:22:00 GMT Sender: news@brchh104.bnr.ca Organization: Sunspots, Flush Mode Lines: 23 Approved: sun-spots@rice.edu X-Original-Date: Thu, 6 Jun 91 11:03:23 PDT In article <3399@brchh104.bnr.ca> you write: >Assembling a SPARC assembly file that is 8 Meg long takes several hours >of clock time (around 40 minutes of CPU time) and needs 72 Meg of virtual >space (of which only 3-6 Meg are resident at any time). The assembly runs >fast at first (using >80 % of cpu cycles), but slows to a trickle ( <10% of >cpu cycles) after about 20 cpu minutes, on an otherwise unloaded machine. >Is it thrashing? How in the name of ?$%&! can an assembler thrash? This is >running under cc on a SPARCstation 1+ with 40 Meg internal memory and 150 Meg >swap space. First, why is your file 8 Meg long? How do you edit the turkey?? To answer the question, the way priorities work in UNIX is the longer a process runs the lower it's priority. As you may or may not know, when UNIX runs a process it runs it in pieces (thats why it's called multitasking). Lets say your priority was 1. The second time it gets CPU time it will have a priority of 2, the third time a priority of 4, the fourth time a priority of 16, etc. This keeps CPU intensive tasks from hogging the CPU and gives other people a chance. Obviously, after 20 minutes of CPU time your priority is somewhat less than the idle loop. jim