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

Reply via email to