4 ms·
> The remarkable thing is that the new machines in emulation mode are usually comparable to or faster than the older machines. The central reason is that most
by q-big 5y ago
>
The remarkable thing is that the new machines in emulation mode are usually comparable to or faster than the older machines.
The central reason is that most programmers make no use of the immense capabilities that modern processors provide. For example, using AVX2 or AVX-512, you can do do magic in accelerating some algorithms on x86. Software that makes use of these will likely be quite slow on (Apple's) ARM processors.
- chongli 5y agoGenerally, Mac software that takes advantage of those instructions does so indirectly, via system libraries like the accelerate framework. If your x86 application is using a system library then on an M1 Mac those instructions won’t be emulated at all, they’ll run natively. This is why Apple’s emulator is so fast: it doesn’t emulate any of the system libraries, it uses the native ones instead.
- astrange 5y agoNo, neither Rosetta emulator do that, they translate everything. The original 68k emulation on PPC did do that, using Mixed Mode Manager: https://developer.apple.com/library/archive/documentation/mac/pdf/PPC_System_Software/Mixed_Mode_Mgr.pdf https://developer.apple.com/library/archive/documentation/ma... but it was very hard to get right. You have to know the right calling convention for everything, and there are some problems with floating point precision and other things I forget the details of.