Date: Mon, 21 Nov 1994 19:14:47 -0500 (CDT) From: Aaron Ucko Subject: Re: Program fast w/BC++, slow w/DJGPP To: eliz AT is DOT elta DOT co DOT il Cc: djgpp AT sun DOT soe DOT clarkson DOT edu Organization: Rockhurst College; Kansas City, MO >This is a chess-playing program. From what I've seen, it is quite >CPU-bound; most of the time it just computes possible moves and checks >their scores. From time to time it writes short (~10 chars) messages >to the screen (with cprintf()), and once every move it writes a line to >a logfile. Other than this, it doesn't do anything I can think of which >would require a switch to real mode. Does anybody know reasons other >than file I/O which will cause a mode switch? anything requiring a real-mode interrupt to be called (which includes all I/O except for direct screen writes) >actually performs the inlining. I've run the profiler and found the >histogram to be fairly flat: the most expensive function takes about >15% of run time. None of the library functions appear in the profile >anywhere near the beginning, so the library is not the culprit. The Not necessarily; I believe profiling only sees how much time each function spends in protected mode. Two potential experiments: 1) Temporarily disable all unnecessary I/O 2) temporarily disable your CPU cache. --- Aaron Ucko (ucko AT vax1 DOT rockhurst DOT edu; finger for PGP public key) -=- httyp! -=*=-Just because you're paranoid doesn't mean they aren't out to get you.-=*=- Geek code 2.1 [finger hayden AT vax1 DOT mankato DOT msus DOT edu for explanation]: GCS/M/S d(-) H s g+ p? !au a-- w+ v+ C++(+++)>++++ U-(S+)>++++ P+ L>++ 3(-) E-(----) !N>++ K- W(--) M-(--) V(--) po-(--) Y+(++) t(+) !5 j R G tv--(-) b+++ !D(--) B--(---) e>++++(*) u++(@) h!() f(+) r-(--)>+++ n+(-) y?