Tonya Souther's comments on Second Life, from the perspective of a user, builder, vendor, and third-party viewer developer.

06 August 2014

LL, it's time for 64 bits

The latest viewer statistics are out. There are no real surprises in them; they continue trends we've seen for quite a while now. Firestorm is still by far and away the most widely used viewer on Second Life. There are still substantial numbers of users on older viewer releases, but the usage of non-SSA-capable viewers is low enough that they don't show up in the statistics at all. Pretty much all of the viewers now in use are at least capable of rendering materials, as well (though many users still leave Advanced Lighting Model turned off for performance reasons).

Two facts caught my eye this time around:

For the last two releases of Firestorm (4.6.1 and 4.6.5), there are more users of 64-bit versions than 32-bit versions.

The crash rates for those 64-bit versions are just over half those of the 32-bit versions. Not only that, but the session disconnect rate (defined as the session ending without an explicit logout by the user and without crashing) for 64-bit 4.6.1 is the only one for any Firestorm version, and only one of two for any viewer version, that's below 10%. (The other is 64-bit Singularity 1.8.5, which crashed more often than Firestorm but disconnected less often for other reasons.)

In fact, 64-bit Firestorm crashes less often than any other graphical viewer - and the difference is dramatic: for 4.6.5, it's 6.11% as opposed to 11.30% for the 32-bit version, itself one of the lowest crash rates measured.

(At this point, I have to issue the obligatory grumble about how even a 6% crash rate is horrible to one with my background in mainframe computing, where that kind of problem rate would get someone fired. We've grown to accept crappy computing in general, and that's a bug.)

This tells me one thing: It's time for LL to quit stalling and embrace 64 bits.

64-bit viewers are more stable, and from the reports we get from users, they perform at least as well as, if not better than, the 32-bit equivalents. The end result is a better user experience. It's not universal, but it's quite widespread.

The biggest hold-up in the move to 64 bits is the Havok library. LL distributes that to qualified TPV developers in object form only, and only in a 32-bit version. That means that the Havok version of Firestorm can only be built as a 32-bit program. This only matters to people who make mesh content, or to people who need to see the pathfinding navigation mesh on a sim; there probably aren't many of the latter, but there are lots and lots of the former, and they're people that the Lab actively courts.

What's more, the kind of professional content creator that's taking over SL commerce almost always has the latest, most powerful tools ready to hand - and those tools are 64-bit. They make full use of the power. To stick them with a 32-bit viewer is a bit backward.

The reason that 64-bit viewers are more stable almost certainly has to do with the viewer's memory usage. For at least as long as I've been working on the viewers, they've been plagued with memory leaks: the program allocates memory and never releases it, which reduces the total amount of memory available. When it can't allocate any more, bad things happen. The Lab has been chasing them for years, with at least two major pushes to stamp them out, and yet they're still prevalent. In their defense, the viewer is complex enough that finding and fixing them all will probably never happen. There's just too much code there.

In a 32-bit viewer, the amount of memory one program can use is limited to, at best, 4 GB - and on Windows, it's more like 2.5 GB. A 64-bit viewer can theoretically access up to 256 TB of memory. (Current implementations of the x86_64 architecture have a 48-bit virtual address.) That's effectively infinite.

To borrow a line, "Memory? Leak all you want. We'll make more."

It's getting hard to buy a computer these days that doesn't handle 64-bit programs. Even the lowest-end hardware is 64-bit capable, and is more often than not equipped with a 64-bit version of Windows. Every Mac made in the last 5 years - more importantly, every Mac that's supported by LL and current versions of Firestorm - can run a 64-bit program. Most Linux systems can, as well.

It's time for LL to join the 2010s. TPV developers have done nearly all of the work. I'm sure we'll happily help LL do the rest. Oz is publicly committed to making sure SL gets as much technical goodness as it can.

2 comments:

Oz has made a really good point before at some of the TPV developer meetings about how, historically, users of a 64 bit OS have a much lower crash rate regardless of whether the program being ran on it is 32 or 64 bit. Im curious if the Firestorm team has amassed any statistical proof that is to the contrary to show that the lower crash rate is coming from the program itself being 64 bit instead of the crash rate being lower mostly because the program is being ran on a 64 bit OS and the crash stats for the 64 bit FS are coming strictly from 64 bit OS users. If not, the statistics for the 64 bit FS would be already including the benefit of running on a 64 bit OS that has better memory handling to begin with along with the viewer being compiled large address aware so the crash rate would naturally be lower for 64 bit OS users regardless of whether FS itself is 64 bit or 32 bit.

For the 32 bit FS crash stats, there would be a mix of users running it on a 64 bit OS and users running it on a 32 bit OS also. Most people know how bad the crash rate can be for a 32 bit FS on a 32 bit operating system due to how fast memory address exhaustion would hit. The crash stats would include all the crashes from the 32 bit FS users running on a 32 bit OS and that right there would make the crash rate worse for the 32 bit as a whole in comparison.

Has the Firestorm team collected stats for ONLY the 64 bit OS users and analyzed crash rate for both the 64 bit and 32 bit versions of FS on ONLY a 64 bit OS to be able to say for sure that the 64 bit FS has a much better crash rate than the 32 bit FS even when running exclusively on a 64 bit OS?

About Me

I'm a tigress on Second Life. I'm also a builder, scripter and vendor, owner of Tonya's Restraint Works. I know interesting people and do fun stuff. I'm also a developer for the Firestorm Viewer. (But nothing I post here is anyone's opinion but my own.)