tbray@watsol.waterloo.edu (Tim Bray) (09/30/89)
When we were casting about trying to decide whether to go ISC or SCO, one consideration was performance. Anyhow, now we're shipping software for both (getting tired of switching disk cables, too) and perhaps a little benchmark info would be interesting. This is an AMI 20 Mhz motherboard, 4Mb memory, vga, 150 Mb Maxtor, nothing fancy. Don't have the OS release numbers handy, but they're both basically the latest: guess that means ISC 2.0.3 and SCO 2.3.3? The application is 8,000 (very very compact uncommented) lines of C that build and minimize N-tape deterministic finite automata defined in a regular language grammar. (Yes, this is a commercial piece of software; a 2-tape automaton can be used to drive a general text transduction process in somewhat the same fashion as yacc, but this thing can eat grammars for breakfast that make yacc roll over and die.) Compiled -O on both systems. Note that it uses sbrk() not malloc(). In this instance, the program builds and minimizes a 2-tape automaton that ends up with 1,193 states and 40,715 transitions. It reads in a grammar that is 3,225 bytes in size and stores the automaton in a file that is 326,215 bytes in size. It uses up to 2.5 Mb of virtual memory during its run; both SCO and ISC paged quite heavily, judging by the flashing of the disk light. Anyhow: System User time System time ISC 181 2.3 SCO 174 4.2 Elapsed time was 7 min. on Unix, didn't measure it on Xenix, but it felt about the same. Sooo... for one example of a compute-intensive application, we observe no significant difference in the performance of compiled C code. Just another data point on the great curve in the sky... Cheers, Tim Bray, New OED Project, U of Waterloo