←back to thread

Why is Windows so slow?

(games.greggman.com)
337 points kristianp | 1 comments | | HN request time: 0.317s | source
Show context
shin_lao ◴[] No.3369174[source]
NTFS is a slower file system, that's probably the main reason why. Also console I/O is much better on Linux than Windows.

Our software builds everyday on FreeBSD, Linux and Windows on servers that are identical.

The windows build takes 14 minutes. The FreeBSD and Linux build take 10 minutes (they run at almost identical speed).

Check out is more than twice slower on Windows (we use git).

Debug build time is comparable 5 minutes for Windows, 4 minutes 35 on Linux.

Release build time is almost 7 minutes on Windows and half that on Linux.

VS compiles more slowly than gcc but overall it's a better compiler. It handles static variables better and is not super demanding about typenames like gcc is. Also gcc is extremely demanding in terms of memory. gcc is a 64-bit executable, Visual Studio is still a 32-bit execuable. We hope Microsoft will fix that in Visual Studio 2011.

Its easier to parallelize gmake than Visual Studio, which also explains the better Linux build time. Visual Studio has got some weird "double level" mulithreading which is eventually less efficient than just running the make steps in parallel as you go through your make file.

However our tests run at comparable speed on Linux and Windows and the Windows builds the archive ten times faster than Linux.

replies(2): >>3369184 #>>3369513 #
obtu ◴[] No.3369184[source]
What is this archive step you mention in passing, and what makes Linux slow at it?
replies(1): >>3369191 #
shin_lao ◴[] No.3369191[source]
I don't know why Linux is so slow at it, it's when we build the tgz containing all the binaries before uploading it to the distribution server.
replies(1): >>3369217 #
obtu ◴[] No.3369217[source]
Possibly Linux isn't using the same compression settings?
replies(1): >>3369234 #
1. shin_lao ◴[] No.3369234[source]
I think it's more a caching thing, it's as if Windows isn't rereading the files from disk.