Hello!
Inspired by recent discussions on the list I prepared an article about
Bret's SLOWDOWN, its Slowdown-Units rating, and a comparison of two
different depackers on three different machines. I believe that the
depackers are a better test case for how fast a CPU actually is, because
they do not perform any I/O. I found that patching out the "in al, dx"
instruction in SLOWDOWN's Waste function greatly increased the
Slowdown-Units detected for a 686 machine and an AMD A10 machine,
whereas on the NEC V20 this patch did not affect the SU 17 rating. I
used my debugger both as the test data to unpack repeatedly, as well as
to script the patches to a SLOWDOWN loaded in a process.
Arguably the in instruction should stay in SLOWDOWN as is, because
actual use cases may involve at least a small number of I/O accesses,
but Bret also made some claims about the speed of CPUs, which is a
narrower field that I think should not include I/O. As my article
depicts, more recent CPUs are more than 1000 times as fast as old ones.
(Obviously, memory plays a part in that, but I think allowing memory
effects still does not mean I/O too should always be considered.)
I did find one bug in SLOWDOWN, which is a division overflow, as well as
another questionable part where it attempts to run a wbinvd instruction
when that may not be allowed by the VM. (At least, in dosemu2 KVM it
failed for me.)
The article is found at
https://pushbx.org/ecm/dokuwiki/doku.php?id=blog:pushbx:2023:0321_cpu_performance_comparison
Regards,
ecm
_______________________________________________
Freedos-devel mailing list
Freedos-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-devel