I was just fooling around with this a bit last night.
ARev 2.12 no network driver on NT Server 4.0 SP3, basic 'PIF' settings: 640KB conventional, 512KB environment, 4MB EMS, XMS None, Use HMA, DPMI AUTO, allow background, idle sensitivity 50% (default).
- %CPU overall would stay near 100% while ARev running - NTVDM (ARev) %CPU between 100% and 97%
1) Took Steve Smith's YIELD() subroutine and put it in an infinite loop. %CPU of NTVDM dropped to near zero.
2) Put YIELD() in a wrapper around INPUT.CHAR (copied verbs $INPUT.CHAR to $INPUT.CH (code below): little change NTVDM %CPU might drop to 95%
subroutine input.char(p1)
declare subroutine input.ch,yield
yield()
input.ch(p1)
yield()
return
3) Set the 'PIF' Idle Sensitivity slider all the way to 'HIGH': Overall %CPU dropped to around 30-35%, NTVDM around the same. No noticable difference with or without YIELD() in INPUT.CHAR. Benchmarks of typical ARev processes shows no difference in performance with IS set to 'high'
Conclusion: Set Idle Sensitivity to High to lower CPU utilization of ARev on NT Server (server in this case is optimized to run applications, not as a file server (development testbed)).
Since I don't have NT WS installed at home I have no idea if these settings affect CPU utilization in the same manner on NT WS.
Warren,
The CPU utilization and sensitivity to yield() seems to be also dependent on whether you run in a window or full screen (25 x 80).
Steve