Monday, July 21, 2008

Performance Comparison: Openspace Sims versus Regular Sims

There has been endless conjecture on the Second Life forums about the true capacity of openspace sims versus their "full sim" counterparts. We know that up to four class 5 openspace sims run on a single core in a four-processor Second Life server, whereas regular sims each have their own dedicated core/processor. This generally means that up to 16 openspace sims will run on a single physical server, versus 4 regular sims. It is assumed (but I don't know whether anyone has confirmed) that regular sims and openspaces run on different servers; that you won't see a mix of openspaces and full sims on the same box. We also know that openspace sims are allocated less physical memory per instance than a full sim. But in terms of actual, tangible data, we don't have much else.

Residents with a lot of experience on both kinds of sims seem to agree that script performance is generally worse on openspaces, and that sometimes openspaces can experience "mystery lag" in the absence of any obvious cause. (It is thought that this is due to the increased number of "server neighbors" that openspaces have.)

I have conducted a series of tests on two class 5 sims, one openspace, and one regular sim. While the tests do not address the differences between how the presence of avatars or intensive physics operations affect sims, they do provide some insight into the script capabilities of the two kinds of servers, and hint at the effects of server neighbors.

Testing Methods

  • All benchmarks were performed by running the Standard test suite on Mysti's Benchmark Sim Tester v1.1 by Mystical Cookie. The benchmark tester performs a number of specific script-intensive tasks and calculates an overall score based on how quickly the sim performs each task. In all cases, lower times and scores are better. Note that all tests were done under Second Life server version, over the weekend of July 19-20 2008.
  • To eliminate variance caused by avatars visiting the sim, access to the sim was limited only to my personal group, and I would teleport away after beginning tests.
  • To keep any attachments from interfering with the tests, I visited the islands in "Test Female" form, which includes no HUDs or other attachments.
  • Both islands are standalone sims with no other adjacent regions, meaning they weren't sharing any data with other sims, and were not subject to the performance hit of "child agents" from nearby sims.
  • To account for any variation due to "server neighbors" (other sims sharing the same physical server as a sim undergoing testing), I restarted each sim after performing each test, and I tested each case (empty versus object-populated) three times. Any visible spike in a given test metric could likely be attributed to laggy server neighbors during that particular round of tests.
  • For the object-populated tests, I placed an identical selection of items in each sim. I chose items that I knew from experience as a landlord use a fair amount of script time. For example, temp rezzers, disco balls, and texture-cycling prims. (I did not want to shame any designers in this post, so I am not publishing my list of specific items. I can provide the list upon request.)
  • Before choosing which items I'd use for the object-populated tests I visited a random sample of 10 of my own openspace sims to see how many scripts the average occupant was running, and what the average "Script Perf" metric was. The script performance metric indicates how many script instructions per second are being executed on the sim, and is the most important number to watch when trying to determine the general script activity on a given island. I kept placing scripted items on my test openspace sim until I had reached the average Script Perf number. I then duplicated this build on the regular sim.
  • While it likely doesn't have any bearing on the test results, both sims had identical parcel and estate settings, as well as the same terrain (default island design #2). I also set my client to Low graphics settings so the sim wasn't burdened sending a lot of object data to me like happens when view distance is turned way up.
Summary of Results
You can examine my raw data here. The results I present below are the average scores for each battery of tests. Note that the "Empty" score for a given test is for when the tests were run with no objects other than the tester itself in the sim, and the "With Objects" score is for tests run with objects in placed (the exact same set of objects in each sim).

Regular sim (lower scores are better)
  • Mysti Score: Empty - 1,600, With Objects - 1,661
  • Rez Check: Empty - 0:00, With Objects - 0:00
  • For Loops: Empty - 3:24, With Objects - 3:30
  • Lists: Empty - 3:56, With Objects - 4:03
  • Link Msgs A: Empty - 3:43, With Objects - 3:49
  • Link Msgs B: Empty - 3:42, With Objects - 3:49
  • Encryption: Empty - 6:12, With Objects - 6:33
  • Object Chat: Empty - 5:36, With Objects - 5:50
  • Land Scan: Empty - 0:04, With Objects - 0:04
  • Total Time: Empty - 0:26:40, With Objects - 0:27:41
Openspace sim (lower scores are better)
  • Mysti Score: Empty - 1,495, With Objects - 4,397
  • Rez Check: Empty - 0:00, With Objects - 0:00
  • For Loops: Empty - 3:00, With Objects - 8:40
  • Lists: Empty - 3:35, With Objects - 10:42
  • Link Msgs A: Empty - 3:44, With Objects - 10:37
  • Link Msgs B: Empty - 3:44, With Objects - 12:09
  • Encryption: Empty - 5:10, With Objects - 14:49
  • Object Chat: Empty - 5:36, With Objects - 16:09
  • Land Scan: Empty - 0:03, With Objects - 0:08
  • Total Time: Empty - 0:24:54, With Objects - 1:13:16
  • After I had set up the duplicate builds on both islands and confirmed that each island had the same number of prims and scripts running, I immediately noticed that the openspace sim had a "Script Perf" rating three times higher than the full sim (14249 to 4590). Since full sims are supposedly more powerful than openspaces, I had expected the regular sim to be the busier one, since it would have more processing power to devote to scripts. But I wonder if this means that openspaces are tweaked to devote more of their resources for script processing than full sims are, since script performance is the most obvios limitation of openspaces? The benchmarking results would seem to corroborate this theory, as the openspace sim actually fared better than the regular sim in the "empty sim" tests.
  • After every sim restart, I recorded the sim ID and IP address as reported by Help > About Second Life. By doing this I confirmed that after every restart both the sim ID and IP address did change. (There had recently been some conjecture that user-initiated restarts did not move the sim to a different server, but these tests prove that sims do in fact move when restarted by residents.) Note that I did not restart either sim between tests 3 and 4, as indicated by the raw data. This way, when you look at the last empty test results (test 3) and compare them to the first "with objects" results (test 4), you know that any difference in score is due to the object/script placement, not a change in server neighbors.
  • In one case, my regular sim actually jumped to a different co-location facility! I confirmed this by doing a tracert on the old and new IP addresses. This was very surprising and isn't necessarily good news for estate owners with lots of adjacent sims, as border-crossings between sims in different co-location facilities can be painful.
  • The regular sim tests did not indicate any major issues related to external factors (server neighbors?), as there is rarely as much as 6 seconds of variation on the score for any individual test. The difference across test passes was more pronounced with the openspace sim (the shortest test pass was almost 17 minutes shorter than the longest one), which may indeed confirm the theory that openspace sims are more likely to suffer the effects of laggy server neighbors.
  • The additional script load on the full sim during the "with objects" tests had only a trivial impact on the sim. The average total test pass for the full sim was only a minute longer when the sim was populated with objects. This is in stark contrast to the nearly 300% performance hit the openspace sim took under the exact same script load.
  • Even though the openspace sim scored significantly more poorly on the "with objects" tests than the regular sim, its dilation was generally 0.99-1.0, sim FPS was routinely 44-45, and the sim was easy to navigate with my attachment-less Test Female avatar. This is good because it means that while script performance in a given openspace might be sub-par, the sim itself can still be perfectly usable, so long as script responsiveness is not a major factor in one's enjoyment.
Based on the final results, I believe we can safely conclude the following:
  • Since an empty openspace sim actually performs a little better than an empty regular sim on the script benchmarks, it appears that openspaces are tweaked to allocate more processing power to scripts to make up for their inadequacies.
  • When running under a normal script load (based on a sample of currently-in-use openspace sims), script performance of a class 5 openspace sim is nearly 1/3 the performance of a regular sim. (Hey, it could be worse!)
  • Since the "with objects" tests barely affected the full-sized sim's results, while they profoundly affected the openspace sim's final numbers, it's clear that full-sized sims have a lot more headroom for script processing; these tests didn't even touch a regular sim's threshold.
  • Unless the large discrepency with test 5 on the openspace sim is attributable to some other factor (running on newer/faster hardware than the other tests?) the influence of server neighbors (other sims residing on the same physical server), seems able to have a non-trivial effect on openspace sims, while the interference appears to be less marked on full sims.
  • Performing a user-initiated restart on a sim (openspace or full) does land the sim on another physical server most (if not all) of the time, and may even land you in another co-location facility.
  • Even though the openspace sim scored poorly compared to the regular sim once scripted objects were added to the mix, the fact that sim FPS and time dilation remained admirably high shows that an openspace sim can still be perfectly usable and otherwise "healthy" even as script performance begins to suffer.
Work Remaining
These tests primarily focused on raw script performance and the influence of server neighbors, and did not cover things like intensive physics operations or anything related to avatars. I am not personally equipped (or motivated) to investigate these avenues, but I hope someone else out there is. *winks*

Monday, July 07, 2008

Buying or Upgrading a Computer for Second Life

It seems like every couple of days someone's posting on one of the Second Life forums asking one of the following questions:
  • My computer runs SL very poorly. What can I do to speed it up?
  • I'm planning on buying [a specific model of computer] for playing Second Life. Will it be fast enough?
I hope to answer those very questions here. Before we continue, I would like to note that your overall experience in Second Life is governed by many things, and only some of them are under your purchasing control:
  • The health of the sim you're connected to. If the sim you're currently in has a bunch of laggy scripts, or is overcrowded with a bunch of avatars, you're going to experience classic "lag:" a delay between what you do in SL and when it actally occurs.
  • The current load on the Second Life infrastructure. Every time an object or an avatar rezzes, the sim has to contact the asset servers to load any texture, script, and prim information. When Second Life is very busy, all the sims all over the grid are slamming the asset servers constantly, and this can result in laggy, often unbearable performance.
  • The connection between Second Life's servers. Second Life is a network of computers spread all over the United States (and some parts of Europe). If there are issues on the internet backbone that connects those various locations, there will be crummy performance in-world.
  • Your ISP and service plan. Broadband service providers offer a number of different plans that determine your top networking speeds and various limitations. Your plan and the overall quality of your ISP's service can affect your experience.
  • The connection between your computer and the sim you're on. This is often called your "ping time," and can be affected by general network conditions, hardware in your ISP's infrastructure, your own networking hardware (cable modems, routers, wireless cards, etc), and more.
  • Your computer's configuration. The operating system, drivers, services, and applications running in the background all play a part in how well your computer behaves during gaming sessions.
  • Your computer's hardware. This has to do with the actual physical components of your PC. This article primarily focuses only on hardware.
Why performance matters
The most obvious benefits of having a fast computer are that it enables you to have a smooth gaming experience at high screen resolutions, with all the fancy graphics effects turned on. There is another, more fundamental benefit, however, that has to do with how games are designed. Most 3D games have a "main loop" which is a constantly repeating piece of code that performs the most important parts of the game many times per second: drawing the screen, checking for mouse and keyboard input, moving your avatar, etc. If your computer gets overburdened performing any one of these tasks (most notably drawing the graphics), the entire game suffers. For example, on a really slow system, even typing in chat can be painful on Second Life because it takes up to a second for any letter you type to even show up on the screen.

Hardware components that affect gaming performance
Here are the basic computer components that have a direct impact on gaming performance:
  • Display adapter. Also called the "video card" or "graphics adapter," this is the part of your computer that generates graphics on your screen. Most computers in the world have so-called "integrated" or "on-board" graphics, which are not designed for 3D gaming, because they steal memory and processing power from your system, instead of doing it on its own. All true "gaming PCs" (even laptops) have either NVIDIA or ATI graphics with their own video memory.
  • CPU. Also called the processor, the CPU is the "brains" of your computer. While it was once easy to compare two CPUs by simply looking at their "clock speed" (which is these days measured in gigahertz, or "GHz"), CPUs today come with 1, 2, or 4 "cores" which are kind of like mini-CPUs, so a 4-core CPU can almost do the work of four single-core CPUs at the same clock speed.
  • Memory. Also called "physical RAM," and measured in gigabytes (GB), this is very fast temporary storage for the code that's currently running on your computer. Every program currently running on your system uses at least a little bit of memory. Different operating systems have different requirements. Windows XP seems to run games wonderfully with 2GB of RAM, while Vista does best with 3GB or more (although you currently won't see much of a boost past 3GB). Modern operating systems do something called "paging" or "swapping," where, if physical RAM gets low, they will automatically start using a portion of your hard disk for "virtual memory" so you can still run your programs, but performance slows down significantly as a result.
  • Hard disk. This is one of the most overlooked aspects of system performance, even though the hard drive is the single slowest part of any PC- sometimes several hundred times slower than physical RAM. A fast hard drive speeds up things like booting your computer and launching applications, and also speeds up any program, like Second Life, that uses a local cache to store things like textures and prim data. The standard speed for most notebook hard drives is 5400 rotations per minute (RPM), which, frankly, is too damn slow. Many computer dealers offer faster drives as an upgrade, which I really recommend. More on that later.
Components that don't affect gaming performance
  • Sound card. Most computers come with "on-board" audio, and unlike integrated graphics solutions, audio doesn't require a ton of processing power. You can buy nice, expensive add-on sound cards for your desktop (and even laptop) computer, but you will only see a tiny amount of performance improvement, if you see any at all.
  • Network card (wired). As with audio, most computers come with built-in Ethernet networking ports for wired connections. There are some so-called "gaming network cards" out these days, which are supposedly optimized for online games. They make two arguments: First, they say the cards free up system resources by offloading tasks to the network card. Second, they prioritize gaming network traffic, treating "gaming packets" with preferential treatment. The end result, supposedly, is reduced ping times. So far, these cards have yet to prove themselves. They don't improve FPS, the ping time difference is sometimes noticeable, but doesn't necessarily boost your gaming experience, and unfortunately, these cards aren't always that reliable.
  • Network card (wireless). The average broadband connection today is between 512 kilobits to 5 megabits per second. In comparison the absolute slowest WiFi (802.11) card you can buy today is 11Mbps, over twice the speed of the average broadband connection. Any new wireless card today at least supports 802.11g, which is up to 54Mbps. Most, if not all, wireless chipsets are add-on cards or plug-in devices, so they do not use a whole lot of system resources. So long as you have a good router, uncongested air, and you're within a reasonable range of the router, any wireless card is going to perform just fine.
In order to see how these different components contribute to Second Life's performance, I ran controlled tests on a number of different computers. You can see the full results online, and a description of the tests and my findings follows.

Click the image to see the results.
Testing procedure
In order to get consistent, comparable results across all systems, I picked a low-traffic, high-prim/high-texture location (Fairy's Grove Creations in Aurora), and did not move my avatar at all between logins. I also configured each of the computers to run SL in exactly the same way (you can see some details about this in the Benchmark Test Notes tab of the published results):
  • All had fresh installs of the 1.19.1 (4) build of the official Second Life viewer.
  • All were configured to run Second Life at 1024x768 in full-screen (non-windowed) mode. This is because screen resolution has a direct impact on performance. Also, full-screen mode performs a fair amount better than windowed mode (it's just not very convenient for people who build in SL).
  • My avatar was placed at the landing point of Fairy's Grove Creations, in Aurora, facing the opposite direction from the store. To see my exact position and viewing angle, click here.
  • The "Aspect Ratio" setting in Second Life (which is only available in full-screen mode) was set to Auto-Detect.
  • The metric I used to determine performance was "frames per second," or FPS. Just like frames in a movie, a 3D computer game draws the screen you see many times every second, rebuilding the entire scene from scratch. The FPS can fluctuate, depending on how many things the game has to draw and how busy your computer is with other tasks.
  • I only monitored the FPS when there were no other avatars on the screen, because every avatar causes the computer to work a little bit more to draw. As I said, these results reflect best-case scenarios in terms of performance.
  • I recorded performance on two graphics quality settings: Low and Ultra. That's what the two "FPS" columns in my results represent- the number of frames drawn per second at the respective quality settings. In my tests, the differences between Low and Ultra were not that obious; the only really noticeable difference was that you could see further off in the distance under Ultra. But as you see from the benchmark results, the difference in performance was profound.
  • All computers tested were relatively "clean." They didn't have any other programs running in the background, and weren't bloated with a bunch of unnecessary software.
  • I often had to wait a few of minutes after first logging in with a new computer because it took a long time for all the textures to download. I only recorded the FPS when it appeared that all the textures were fully rezzed.
  • The only change I made to my interface was to close the minimap, and enable the statistics bar (CTRL+SHIFT+1). (The minimap covered up the statistics bar, otherwise.) I watched the FPS number at the top of the statistics bar. Do not confuse this with the "Sim FPS" metric, which actually talks about the current sim's performance, not your computer.
  • Finally, it's important to note that while the standing-still FPS ratings here are a good measure of how fast these computers render 3D graphics, they do not reflect the effect of the amount of installed memory or the speed of the installed hard disks, as neither of these things is directly related to your computer's ability to render graphics. They both only become important when you're actively trying to move around and do things in-game. For example, if your computer doesn't have much memory for Second Life, every time you turn a corner it will have to load a bunch of things from your cache, causing noticeable slowdowns in responsiveness and on-screen rezzing, even if your FPS rating doesn't drop.
Understanding the results
While I expected the one computer with the integrated graphics chipset (the Dell D630) to perform badly, I was actually kind of shocked to find that this 3-month old computer performed worse than two computers that were manufactured over four years ago. Even though it had exactly the same CPU and memory as the admirably-performing Dell D830, the lack of a 3rd-party graphics solution caused it to run Second Life at almost 1/4 the speed.

Something I personally found kind of alarming was the fact that our brand-new quad-core Dell desktop didn't perform as well as my 2-year-old dual-core Gateway notebook (with a lower clock speed!) at the Low quality setting, although it did do a fair amount better at Ultra quality. My guess is that some of the computation-heavy operations involved in the high quality graphics settings benefited from the extra CPU cores, while the low-quality settings weren't using all the power the CPU had to offer... but I don't know why the Dell would perform WORSE than the Gateway at any setting. The results were consistent, though. The Dell was simply slower. (I will note that the Dell seems to play World of Warcraft about 15-20 FPS faster than the gateway at comparable resolutions. There's something about SL the Dell just doesn't like, apparently.) The Dell is running Vista, which supposedly doesn't perform as well on games as Windows XP... but I don't think that alone accounts for the discrepancy with Second Life.

The single-core systems all performed worse than the multiple-core systems that had 3rd-party graphics, even though their CPUs all had comparable clock speeds. The single-core systems also tended to have less RAM than the others.

None of the computers in the test had less than 1GB of RAM, so the effects of memory aren't very pronounced in the results. Three of the bottom four computers only had 1GB, but they had slower processors and worse graphics cards than the others, too. I will probably do a future article about getting the best performance out of Second Life, but for now, just know that while Vista requires more RAM than Windows XP, Vista actually makes better use of available memory than any previous version of Windows. There are still a LOT of people out there with 512MB or (gasp) 256MB of RAM, and I feel for those residents. I really do.

Notice that of the three fastest computers in the test, the one with only 128MB video memory did fine at the Low quality settings, but terribly in comparison with the others at Ultra quality. This may be because Ultra increases Second Life's "draw distance," which means the program displays things further off in the distance. While the draw distance was low, the display adapter's video memory was adequate to hold all the textures it needed to display on screen, but once I bumped things up to Ultra and more prims came into view, the display adapter ran out of memory and had to start loading the extra textures from system memory, slowing everything down.

Buying Recommendations

Who makes the best computers?
Every major computer manufacturer makes desktops and laptops capable of playing Second Life just fine. You should base your decisions on things such as reputation, price, features, and aesthetics. There are "boutique" shops like Alienware and Falcon that make super-duper fast computers for super-duper high prices, but when you consider that ANY computer is going to start showing its age within the first year or so of ownership, I just can't justify the expense of some of those places. Of course, if it's a desktop you're after, a savvy techie type can build her own system for less than it would cost to buy an equivalent system from Dell or Gateway, or whatever. Doing it right is harder than most people seem to think, however, and I personally like having 24-hour tech support, which is something I wouldn't have if I built my own.

What about Apple?
The new Intel-based Macs are not the fastest computers in the world, but they're damn nice. It seems that Mac support for Second Life seems to lag behind PC support, so if you're buying a computer mostly to play SL, you're probably better off sticking to a cheaper, faster Windows-based system, even though I have no real problem with Macs. You really should not bother with any of the pre-Intel Macs these days, though. The latest SL client versions don't seem to run very well on them, from what I hear.

Laptop or Desktop?
Unless you're the hardest of the hardcore gamer, a good notebook is going to deliver all the performance you need in a portable, convenient form factor. Anyone who says laptops aren't powerful enough for gaming has never used a powerful laptop.

A notebook with a wireless connection will connect to Second Life from anywhere in your house, or even from Starbucks or the airport. I personally value this flexibility over anything else, and I will never buy a desktop computer for my own personal use again. The fact that all the technology of a laptop is crammed into such a tiny area means that notebooks are not very upgradeable. In fact, the only things you can normally upgrade on your system are memory and hard drive (and wireless card, often, but that's normally not necessary). The small size also results in a higher cost; you can easily spend twice as much money getting a laptop as a desktop that meets or exceeds the same technical specifications.

Get a desktop if you're more concerned about "future-proofing." You can replace any component of a desktop for better parts as they become available, and bigger models have plenty of room for expansion. They also cost less than notebooks, and are usually performance leaders; the fastest desktop at any given time is going to be faster than the best-performing notebook. That's just how it works out.

Laptop Minimum Requirements
When choosing a notebook computer, make sure that the computer you select meets or exceeds these recommendations. Any other options available from the manufacturer are irrelevant to gaming. (Although, I can promise you that a lot of the cruddy software they'll preload on your system is unnecessary and will steal memory and CPU cycles from your games until you clean up your computer a bit.) Remember, these are minimum recommendations. If you can afford better, go for it:
  • Display: The computer MUST have ATI or NVIDIA graphics with at least 128MB of video RAM. 256MB is recommended, as you won't be able to upgrade your video later on.
  • CPU: Choose an Intel dual-core CPU with a clock speed of at least 2.0GHz. For the past couple of years, Intel processors have consistently delivered the best performance, power efficiency, and features. If you're really strapped for cash and you find a super-cheap AMD-based system, go for it. It won't be too much worse than an equivalent Intel system.
  • RAM: For Windows XP, get at least 2GB RAM. For Vista you'll see the best performance with 3GB. Less will be tolerable, so long as you don't run any programs in the background, and more than 3GB won't make a noticeable difference just yet.
  • Hard disk: If you can afford it, pick at least a 7200RPM hard drive. Faster drives are usually smaller. I wouldn't want to have a hard drive any smaller than 60GB. 80GB or more is better.
  • Wireless adapter: Pretty much all notebooks include WiFi capability. You want 802.11b/g at a minimum. 802.11a is kind of useless, while the faster 802.11n is growing in popularity. Unless you KNOW you need Bluetooth or WiMAX capability, you can pass on those options.
  • Operating system: Even though I personally kind of hate Vista, and it still doesn't perform quite as well as Windows XP, any brand-new computer is going to be designed for Vista, and support for it will improve over time. If you can afford it, get Vista Home Ultimate edition, because Ultimate includes all of the Media Center features of the Premium edition, plus Remote Desktop, which is one of the most useful home networking features Microsoft has ever produced. If you don't need Remote Desktop, then Vista Home Premium will suit you just fine.
  • Extra power supply (optional): In order to conserve battery power, notebooks automatically cut back on performance when they're not plugged in. You will always get the most out of your laptop when it's plugged into A/C, so it's really handy to have an extra power supply for traveling or if you typically use your notebook in different rooms of the house. Your computer will come with one power supply, and an extra one will probably cost about $50 USD more.
  • Cooling pad (optional): 3D games make computers work hard, and when computers work hard they heat up, and when they heat up, performance starts taking a hit. When my Gateway gets too hot, Second Life performance gets very choppy and big black triangles start appearing all over the screen... and then it locks up. A cooling pad is a little platform that you set your notebook on that cools the bottom of the computer with some extra fans. They draw extra power, so they're another good argument for an extra power supply. Make sure to get one that matches the dimensions of your computer (there are special cooling pads for wide-screen notebooks, for example). These cost $20-50 USD.
Desktop Minimum Requirements
  • Display: Same as for laptops; no integrated graphics- ATI or NVIDIA only. NVIDIA has been the performance leader, these days, and supposedly has better compatibility with Vista. With desktops, you have a wider range of choices. Some motherboards support technologies like NVIDIA's SLI, which actually lets you link two video cards together, making them act like one super-fast display adapter. All of your options here are out of scope for this article. 256MB video memory minimum.
  • CPU: Intel Dual Core, 2.2GHz minimum.
  • RAM: 2GB for XP, 3 for Vista.
  • Hard Disk: Here's another area where you have tons of options. Some systems have "RAID" configurations which give you a choice of either super-fast or super-reliable storage, while others offer standard "SATA" drives, which are similar to those in notebooks. The standard speed for desktop drives these days is 10,000RPM.
  • Power Supply: Get the highest-wattage power supply your computer can support. The biggest, fastest video cards use a huge amount of electricity, and getting a heavy-duty power supply from the start will help future-proof your computer a bit.
  • Cooling Solution: Just like with notebooks, the hotter your computer gets, the worse your gaming experience will be. There are many desktop cooling solutions available these days, some better than others.
Extended Service Plans
Every computer will come with at least 90 days service/repair, but all manufacturers I know of offer extended plans for a wide range of prices. Some plans actually cover in-home support; they will contract a local repairman in your area to come out and fix your problems. Others just offer phone support and parts replacement. Since I'm a notebook user, I expect my notebook to become basically obsolete within 3 or 4 years, so I won't buy a service plan any longer than 3 years. While I typically don't buy service plans for smaller things, like iPods, I have used my warranty plans on my computers several times, so I feel they are a worthwhile (if optional) expense.

Upgrading an Existing System
If you're not happy with your current system's performance, you might be able to do something about it. Your chances are much better with an old desktop than with a notebook, because there's not much you can replace on a notebook. Please keep this in mind, though: The typical "expiration date" on a desktop computer is about 5 years, and for notebooks it's more like 3 or 4. If you're puttering about on a 6-year-old system, you might be better served saving your upgrading dollars for a new or used computer on eBay or CraigsList. It really depends on what you can afford and what your options are.

How do you know what you already have?
A lot of people simply know they have a slow computer; they don't necessarily know anything about the individual components inside the case. Windows includes a useful tool, called dxdiag (the DirectX Diagnostic Tool), which will give you most of the information you need. These instructions were written for Windows XP, but should hold true on Vista.
  1. From your desktop, click Start, and then click Run.
  2. Type dxdiag in the Open box, and then click OK.
  3. The System tab of the tool will tell you about your operating system, how much memory you have, and what kind of CPU you've got, in addition to its clock speed and the number of cores.
  4. The Display tab will tell you what kind of display adapter you've got, in addition to the amount of video memory you have. Please note that some integrated graphics solutions will actually report a positive number here, for "Approx. Total Memory" but it's kind of a lie. Most, if not all, integrated graphics solutions steal memory from your system, they don't have their own.
Hard drive speed is very difficult to determine programmatically. Luckily, most hard drives report their size and speed on a big black-and-white label on the top of the drive itself.

Upgrading a Laptop
The only things you can do to improve performance on a laptop, other than tweak your software and operating system settings (for another article), are to add more memory and replace the hard disk with a faster model. You can do both for about $400 total. Your manufacturer will likely have upgrade parts for you, but they won't have the best prices. For memory, go to Crucial and for hard drives, go to Drive Solutions. (They have those USB hard drive transfer kits there, too!) Both sites let you look up your computer model and make recommendations based on what your system will support.

Upgrading a Desktop
While desktops offer more expandability, they also require a bit more knowledge to upgrade, and aren't always worth the effort. The best single thing you can do to improve graphics performance on a desktop is to replace the display adapter. (Or, to install one to begin with if you were previously running with on-board graphics. If your system is really old it might have PCI or AGP graphics, which is much slower than modern PCI-Express graphics, and also hard to find replacements for. Your best bet for PCI or AGP cards (or any other computer parts, really) would be NewEgg.

Also remember that the biggest and the best video cards require the most electricity. The power supplies that come in most off-the-shelf computers, are usually bare-minimum in terms of what they can support. Make sure your power source can handle all your upgrades.

Memory can be tricky to upgrade, because some motherboards have weird requirements, like, maybe it will only accept 2 DIMMs at a time, or maybe you have to use the DIMM slots in a special order. You also want to make sure you use the right memory for your system (look your computer or motherboard up on Crucial's site), and that the DIMMs you have match in terms of specifications.You can replace your hard drives (or add additional ones), but you'll need to know whether your drive uses IDE, SATA, or some other form of storage bus. But if you currently are running Second Life with anything less than 2GB of RAM, you will see improvements with an upgrade.

It is possible to upgrade CPUs, but every generation of CPU requires a new generation of motherboards. A five-year-old PC simply cannot support a modern-day processor. You will need to find either an old processor that fits your motherboard, or be prepared to get a whole new board and processor (which may mean upgrading other components).

Final thoughts
Second Life is a very demanding application, and if you love it as much as I think you do (considering how much time you've just spent reading this), I think you'll find that it's worth the significant investment in computing power required to make it run best. Some day I may post some tips for squeezing the best possible performance out of Second Life once you've got a computer that meets the minimum requirements.