MOO-cows Mailing List Archive

[Prev][Next][Index][Thread]

[kirkc6@cs.man.ac.uk: Server Improvement]



------- Start of forwarded message -------
Return-Path: moo-cows-errors@parc.xerox.com
Date: Tue, 18 Mar 1997 03:38:33 PST
From: chris <kirkc6@cs.man.ac.uk>
X-Sender: kirkc6@t9
To: MOO-COWs <moo-cows@parc.xerox.com>
Subject: Server Improvement
Mime-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Sender: MOO-Cows-Errors@parc.xerox.com
Precedence: bulk

Switch statements in C are meant to be very efficient (although that 
might change from compiler to compiler), and the MOO server uses a switch 
statement to select and execute the MOO language operands.
As the server spends so much time executing this code (located in the 
function run() in execute.c) any improvement to its performance would 
have a significant impact on the performance of the site.

What I would like to put up for discussion is the merits of using a array 
of pointers to functions instead of a switch statement, as this would 
eleminate the need to perform a integer search.
The server already uses enumerations in a switch statement, the 
enumerations are integer codes which signal performing a addition 
operation or to pop a value from the stack and so forth. If the code for 
each operation was inserted into a function, and the address of the 
function stored in a array then the value of the enumeration could be 
used as a offset to retrieve the address of the function which should be 
called. Surely a quick sum is quicker to compute than a search of a 
integer list?
Do people think that this would result in a significant performance boost?

Chris.
------- End of forwarded message -------


Home | Subject Index | Thread Index