Node:IO bound programs, Next:, Previous:Garbled profile, Up:Profiling

13.4 Why is __dpmi_int so heavily used?

Q: I've profiled my program and found that the routine which takes 60% of the running time is some obscure library function called __dpmi_int. Can't you guys get your library right?

Q: What is the __dj_movedata function for, and why does it take such a large proportion of my program's running time?

A: Does your program use I/O or other real-mode services (like BIOS) extensively? All those services are invoked through a DPMI function call which is issued by __dpmi_int. The sibling function __dj_movedata moves data between the transfer buffer (see what is the transfer buffer) and your program, e.g., when it reads or writes disk files. So what the profile really says is that the running time of your program is governed by time-consuming operations such as disk I/O.