wtwolfe@hubcap.clemson.edu (Bill Wolfe) (11/20/89)
The following article relates to the recent discussion of Ada vs. UNIX/C and lightweight processes. Notice the disastrous performance produced by UNIX/C relative to Ada. ******************************* ADA-SW Digest Sat, 18 Nov 89 Volume 89 : Issue 48 Date: Fri, 17 Nov 89 11:03:44 CST From: steve@titan.tsd.arlut.utexas.edu (Steve Glicker) Subject: Simple process and task switching speeds Recently there have been references to lightweight processes, UNIX/C processes, and Ada tasking in terms of speed (Bill Wolfe on Date: 15 Nov 89 16:06:41 GMT and Walter Rowe on Date: 16 Nov 89 18:20:01 GMT). Over the last few months, I have been collecting numbers on task/process switching speeds. Several tests have been run were two tasks or processes invoke each other several hundred thousand times, execution time is then divided by switches... The information I have collected is in the following table. This is quite informal -- these are rough estimates. Does anyone have estimates on the speed of lightweight processes, etc.? Data on embedded systems is welcome. I would also appreciate any references to work published on this topic. Platform Test Switching Speed ============== ================ ================= microVAX (VMS) VMS processes ~ 0.6 ms microVAX (VMS) DEC Ada tasks ~ 0.6 ms Sun 3/50 (UNIX) Function call ~ 0.01 ms Sun 3/50 (UNIX) Simula processes ~ 0.2 ms Sun 3/50 (UNIX) Verdix Ada tasks ~ 0.3 ms Sun 3/50 (UNIX) UNIX/C processes ~10.0 ms I understand that the microVAXs ran at ~0.9 VAX 780 MIPS and the Sun 3/50 at ~1.5 VAX 780 MIPS. In the cases of Ada and Simula a scheduler supplied with the language was used. Steve Glicker (steve@titan.tsd.arlut.utexas.edu) ********************************** Bill Wolfe, wtwolfe@hubcap.clemson.edu