My PC is a dual Celeron FPGA 533 MHz (no SSE support). I would normally rephrase the previous sentence as "My PC is a lowly dual Celeron...", but I won't. According to this very recent poll, my PC's speed is among the majority of the PCs today. So, I do expect a certain performance level to be delivered.
Bochs is the worse of the three speed-wise, but on the other hand, you probably won't be using it to run graphical OSes. Bochs is a developer's tool through and through. So as long it gives you back the debug information you need, Bochs is as good as it can be.
The real battle on performance for modern and widely used operating systems is between VirtualPC and VMware Workstation.
On my tests, VMware Workstation won every test, except the text mode rendering speed and the installation speed on RH 7.2. For example, it took 3.5 hours to install 1800 MB from the two Red Hat CDs, while it took about 2.5 hours on VirtualPC. I believe the reason for this lag from VMware Workstation was the fact that it was running at VGA mode during the installation, while VirtualPC was running either in VESA or with its S3 Trio64 chipset it emulates (possibly VESA though). As for the text mode speed, VMware Workstation need to get their act together, because doing an "ls -l" on the / directory, I could see it making waves updating the screen. VirtualPC was very smooth in this regard when it comes to text mode rendering.
The roles were completely reversed when I launched the now installed Red Hat and later when launched X11:
It takes 228 seconds(!) to get Red Hat to the login text mode prompt with Virtual PC. It takes "only" 94 seconds with VMware Workstation's identical Red Hat.
VirtualPC under X11 is plainly unusable - I was not able to run KDE at a bearable speed. For example, I had to wait 30-40 seconds to launch Konqueror, 4-5 seconds to view a menu and was getting a frozen cursor when something was really CPU intensive. VirtualPC seems to require more CPU resources than VMware Workstation, so if you leave the virtual environment for a while, you will notice that the host OS also feels pretty sluggish.
With VMware Workstation, KDE and Gnome is very useable indeed. I could run it with very acceptable speeds even at fullscreen or window at 1280x1024. With VirtualPC anything above 800x600 comes to a crawl, while Connectix "dares" to ask on their system requirements 266 MHz CPU with a 500 MHz CPU as recommended. I got a dual 533, and it is just not tolerable. I even tried VirtualPC at the dual 450 PIII under Win98 with 512 MB of RAM, with OpenSTEP as the guest OS, but it was equally slow.
The only problem I had with VMware Workstation in graphics mode was that sometimes the mouse cursor disappeared. It did not happen because of a certain CPU load, it was pretty random, therefore I think that I hit a bug and not just a known limitation.
The reason of VirtualPC's slowness may be the fact that they are emulating the S3 Trio graphics card, while VMware Workstation "passes through" the actions needed, via their special virtual graphics driver that is serving a graphics chipset that does not exist in real life.
What is nice with the VirtualPC Virge emulation though is that by emulating and supporting a standard card that exists, they have better chances to support other operating systems (unsupported by both VMware Workstation and VPC), like BeOS, QNX, OS/2 etc. Indeed, my tests showed that BeOS was behaving better with VPC than VMware Workstation (under VMware Workstation I noticed 24bit VESA problems, IDE problems while there are known wrong timings). However, other tests showing that SkyOS was extremely slow on VPC, while it was usable on VMWare Workstation. AtheOS (after some tweaking) was successfully loaded on VMWare Workstation as well.
Under MacOSX, on a similar machine to my 533 Celerons, a G4 Cube 450 MHz with 448 MB of SDRAM, Virtual PC delivers a better performance than under its PC counterpart version. However, I hear that a lot of code is different under the Mac and PC versions, so probably comparison wouldn't be too fair.
Also, under MacOSX, VirtualPC supports sound emulation, while under PC, I did not have sound with either VPC or VMware Workstation. Emulating a sound card is tricky business anyway because of the timing issues involved.
On the stability issue, I had VirtualPC already crashing 3-4 times the last few weeks, but I still have to see a VMware Workstation crash. As for Bochs, crashes are a daily treat (either due to an error in Bochs itself or a misconfiguration on my part).
In my view, when doing application development, VMware Workstation or VPC is the choice. But when doing low level system software development (like say, writing an OS or maybe a compiler), Bochs is what you need. You need to know the exact timings or state of the emulated hardware after you executed your source code via Bochs, not the passed-through result of your real hardware. This is why many hobby OS developers prefer Bochs over VPC/VMware. The problem is, Bochs is still very buggy and slow, and Pentium support is problematic. It requires recompilation for P5 support, plus it does not emulate Pentium efficiently - and it can't emulate anything more than Pentium anyway. However, it can do 2 and 4-way SMP emulation, which is a great feature when in OS development.
As for Connectix's VirtualPC, it is possibly acceptable only when running text mode OSes. But I would not recommend it for use with demanding graphic/modern OSes, no matter if you are running on a faster machine than the one I have. The Macintosh version is not too bad at all, in fact it is acceptable on newer G4 machines. But the PC version needs lots of optimization.
If I had to pick a winner, it would definitely be VMware Workstation. There is still plenty of room for improvement on VMware Workstation, mostly in the PC compliance area (for example, supporting IDE and VESA better). This would enable VMware to boot successfully a lot of other niche OSes. But even as it stands today, VMware Workstation is the best option for most users and professionals out there.
VMware Workstation: 8.5 / 10
Virtual PC: 7 / 10
Bochs: 6 / 10
Host Operating System
Guest Operating Systems
Dual Celeron 2x533 MHz
Abit BP6 motherboard, BX chipset, latest BIOS
3Dfx Voodoo5 64 MB AGP
256 MB SDRAM main memory
IBM 80 GB 120GXP drive on standard IDE ATA-33
Matshita 4x DVD-ROM
SBLive! OEM PCI Rev. 4
3Com 3c509-TX PCI network card
Windows XP PRO
Red Hat Linux 7.2 (was given 128 MB of RAM and 3 GB of virtual partition space)
Host Operating System
Guest Operating Systems