Back to home page

DOS ain't dead

Forum index page

Log in | Register

Back to the forum
Board view  Mix view

HX question about link.exe (DOSX)

posted by Rugxulo(R) Homepage, Usono, 29.07.2008, 20:42

> (I run Linux and Windows Vista under 64-bit now. Also have a run 64-bit
> FreeBSD, but managed make that unbootable when I let Vista repair a disk.

Why are MS OSes always really really bad cooperating with others?? It's beyond embarrassing since you would hope they would fix that by now!

> and haven't had time to look into it. The machine is a Core2 6600 with
> 4GB, the main reason for the memory is because of Xen VMs under Linux.)

Isn't Xen not in the kernel tree unlike LVM, which is partially based on QEMU? (Or something.)

> Total RAM use under Windows is higher, but not twice. This is logical,
> since most are buffers anyway.

You mean aggressive caching?

> Moreover, both systems can run also 32-bit
> binaries, and e.g. 64-bit bootcds often only have a 64-bit kernel, but a
> complete 32-bit userland.

Really? I would assume they'd recompile everything (although that may not be a good idea).

> If you see programs in the process manager, they are nearly twice the
> size. Say 170-180% of the 32-bit eq. Similarly on disc.
>
> In general, performance difference is not really notable on a Core2.
>
> Since the memory difference (3.25GB visible under XP, 4GB on 64-bit Vista)
> isn't that big, you can't really notice the difference, unless you really
> get to the edges.

Sounds almost not even worth it. :-/

What I heard was that 64-bit was 10% faster, but a lot less drivers work.

> I read up a lot on 64-bits programming and the summary is that rule of
> thumb, general purpose code is slightly slower. But this is only a
> measurable difference, not a noticable one.

Maybe that's an implementation issue that will be fixed in later models??

> 2 x86_64 has more registers. Some functions that previously had to spill
> registers to the stack now don't have to. However the register usage is
> slightly different due to more use of register parameters calling
> conventions, so this is not always a straightforward to predict. Afaik,
> all OSes use the same calling convention now btw. A lot less cdecl vs
> stdcall nonsense.

GCC supports x86-64 (and before that various other 64-bit chips), so I assume it's not too bad at handling this.

> 5 The minimum instruction set is raised. This is theoretic (since you can
> generate code for e.g. SSE2 too on x86), but in practice it is often the
> biggest difference. SSE2 is guaranteed, and so are P6 conditional moves.
> The variation in CPU capabilities on x86_64 is also much lower than on
> x86, at least for now.

There doesn't seem to be much added to IA32 chips since CMOVxx besides SIMD stuff. So, basically, it seems you only get very very minor performance differences without targeting one of those instruction sets specifically (at least with GCC). The most popular seem to be MMX and SSE2 (not 3dnow! or SSE1, less need for doubles than scalars??).

> 6 On Windows, the x87 is not documented to work on 64-bit XP due to a MS
> documentation glitch. Registers are not saved properly during a context
> switch. This lowers theoretical maximal performance since you can't use an
> unit.

Some people say that the FPU and MMX are both deprecated in favor of SSE2. Maybe MS feels the same way, I dunno. And don't forget that SSE4.1 and SSE4a are already on the market (with AVX and SSE5 in the planning stages). However, a lot of legacy (32-bit, too) code uses the FPU, but for whatever reason, computers are moving too fast these days to (commercially) worry too much about legacy (although I think it's more of an issue with MS than not).

Microsoft basically started over from scratch with the XBox360 because it uses a PowerPC-ish cpu (tri-core 3.2 Ghz) unlike the previous Intel PIII Celeron 733 Mhz. I felt that was a bad idea (even if they did somewhat emulate some older games, though not all), especially since they very quickly dropped all XBox 1 efforts to focus on the new machine. It seems x86-64 (and/or future Windows) are almost heading this way: drop everything "old" in favor of new. It's like starting from scratch, so you basically have no library of programs, no userbase, so what's the point?? As much as "legacy" gets a bad name, what's so wrong with it? If it ain't broke, don't break it! I mean, who would use Windows if none of their favorite programs ran? Sure, people write for it because it has a famous name, which means market share and more potential money. But people (well, me at least) don't want to re-buy everything every few years, even if some marketing gurus think that's a good idea. Emulation is fine if it works (which sometimes it doesn't), plus it's much much slower.

P.S. QEMU loading latest XUbuntu x86-64 was taking forever (15+ minutes) and still didn't get past the moving bar screen, so I had to kill it. So at least at the moment that kind of emulation is not ideal.

 

Complete thread:

Back to the forum
Board view  Mix view
15188 Postings in 1365 Threads, 250 registered users, 11 users online (0 registered, 11 guests)
DOS ain't dead | Admin contact
RSS Feed
powered by my little forum