User:Jaszon Maynard/Jaszons sandbox Performance

From Second Life Wiki
< User:Jaszon Maynard
Revision as of 11:13, 29 February 2008 by Jaszon Maynard (talk | contribs) (→‎Short Guide to Improving Performance: editing)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

I'm currently developing this article and will probably eventually publish it to the wiki

Second Life is very demanding on most computer systems. Due to the unusually dynamic, user-modifiable, constantly changing nature of the Second Life world, you may never see it display as smoothly as you would in your typical 3D computer game. However, it can be well-enjoyed nonetheless.

Performance in Second Life is primarily affected by your computer and the speed at which it is capable of drawing the world that is Second Life. It can also be affected by other factors, such as the quality of your Internet connection, as well as problems occurring on the server computers [definition] that are running the Second Life world. Performance can be improved by changing settings in Second Life, though in some cases you may not achieve satisfactory performance without hardware and software upgrades (new computer, or new CPU [1], memory [2], graphics card [3], newer drivers [4], etc).

Types of Performance Problems in Second Life

Low Framerate (FPS)

The Second Life Main Viewer may be asking your computer to do more than it can handle, and if your computer hardware is not powerful enough, or not setup correctly, it cannot draw the Second Life world very quickly. This will result in a low framerate [definition] (also called low FPS, frames-per-second) and your view of the world will be jerky and stuttering, more like a slideshow than a movie.

Complex objects, composed of many polygons [definition] with complex behaviors, animation, and special effects, require your computer to to do extra work. An avatar is a pretty complex "object", as a result, framerates tend to worsen when you are near a crowd of other avatars (though a future version of the Main Viewer based on Windlight technology will have an "avatar imposters" option to help with that problem).

While it would be terrific to get 20-30+ FPS in-world most of the time, many residents do not achieve that, yet can still enjoy Second Life quite well. Linden Lab keeps track of residents' average framerates [5] and generally 1/2 of the residents have a framerate average of less than 15FPS.

If you'd like to see what your framerate is, you can learn how to display it by reading about the Statistics Bar.

Excessive Lag

If your Internet connection is not very good, or if the Second Life Main Viewer is overwhelming your connection with the amount of information it is trying to download, you may experience Internet-related lag [definition]. What is happening is that information flowing between your computer and the Second Life server computers [definition] is making that trip too slowly, possibly with data getting dropped (lost) and needing re-transmissions. This often results in events being delayed in Second Life. For instance, you may try to make your avatar walk, but it may take a long time for it to respond to your attempt to make it walk. Then, when you attempt to stop walking, your avatar continues walking longer than you wanted it to. You may type some chat text but it doesn't appear on the screen right away. Or someone may reply to a question of yours but you don't see the reply for a long time after they wrote it.

Short Guide to Improving Performance

You do not have to complete all the steps in this quick guide to improving performance, or even do in them in order. Simply pick a problem that applies to you (framerate, lag), look at the suggestions to fix it, and execute a step or two. When you've had enough, or when your performance has improved enough, you can skip the rest of the guide, and perhaps come back to it another time.

One tip that can improve framerate, decrease lag, etc, is to run no other applications (or as few as possible) at the same time as Second Life. If your computer is too limited in CPU power, memory, it's Internet connection, etc, having other applications open can leave too few computer resources available for Second Life to run well. You can also choose to adjust Second Life's settings (detailed below) so it requires less of your computer, and thus you may find you can run Second Life well enough at the same time as some other applications.

This short guide will not cover in-depth diagnostics, analyzing server performance, diagnosing your system's weaknesses (so you'd know if a simple memory upgrade would help), or any steps that would require you to install additional hardware or software. It should be applicable to all supported operating systems [definition].

Increasing Framerate

Small increases in framerate you will only be able to detect by using the Statistics Bar. Enough small improvements, or one large improvement, will make your movement in-world noticeably smoother. To test framerate, some options are:

  • Head to an empty location, and look off in the direction of some buildings, trees, etc. You do not need to move. Simply make various adjustments, and see how those adjustments affect your framerate.
  • Testing in an empty location is all well and good, but it doesn't tell you how smoothly the world will work when you're talking in a group of 10 other avatars. The only way to test your performance in that regard, and see what other options you wish to take and how they affect framerate, is to go someplace where there are people and stand where you can see them. A problem with that is, you may make an adjustment, and your framerate may go up, down, or stay the same...and that may have nothing at all to do with the change you made. Because if an avatar or 2 recently arrived or left, or activated an animation or changed outfits, etc, then that may have increased or decreased the load on your computer, and camouflaged the fact that your recent adjustment was actually helpful, detrimental, or had no effect at all.

A) Wear Simple Clothing/Accessories

If you walk around in-world wearing flowing clothing and exotic shoes, with flowing hair and automatically flexing angel wings, and jewelry that leaves a trail of fireworks, while a cloud of butterflies swirls about you, then your clothing and accessories are composed of many polygons [definition] and complex behaviors. All this is extra work for your computer to process and draw. If you're willing to trade fashion for performance (or even become a public eyesore), you can experiment to see how much performance improvement you can get from wearing simpler clothing. You can always dress up for parties! Another option is to use mouselook mode (see below), then you look good for everyone else without the strain on your own computer.

B) Use Mouselook Mode

One simple option, if you don't mind this mode, is to use mouselook mode. In mouselook mode, your avatar is not shown (you are looking through its eyes, just like you see in the real world). Since even an ordinary avatar has a lot of detail, by not showing it your computer now has a lot less work to do to draw your screen. Of course, this means you don't get to see your avatar that you worked so hard on. Regardless of whether you like mouselook mode or not and whether or not you use it, there are still other ways to improve your performance.

C) Reduce Graphics Quality

The Second Life world can look pretty attractive. But that beauty comes at a price. Your computer has to work hard to draw the world. If you turn down your graphics quality settings to the minimum settings, your framerate should improve. If you'd like to take a cool looking screenshot or Snapshot, you can always turn your graphics settings all the way up temporarily, then set them back to your "normal" settings for everyday use.

If you have a lot of time, you can turn your settings all the way down, then experiment with gradually increasing some of the settings to see if there are any that noticeably improve appearance without making your world become noticeably jerkier. Depending upon your computer and graphics card, there may be some graphical details you can get "for free". That is, activating them causes no noticeable degradation in performance.

To reduce your graphics settings you first need to bring up the Second Life Preferences window. To do so, look in the Main Viewer's menubar and in the Edit menu choose the option for Preferences. Now you will adjust various settings in some of the tabs [definition] in the Preferences window.

C1) The Graphics Tab

Click the Graphics Tab and find the field labelled "Draw Distance" and set it to the minimum value, 64. What this means is, at a higher value, like 128, items that are farther away (up to 128 meters) are drawn so you get to see them, but items even farther away are not drawn. When you reduce this to 64, more items are not drawn...all the things between 64 and 128 meters away that you could see before, you won't be able to see now. This should improve your framerate. The effect in-world will be, as you're walking down a street, if you look in the distance you will see...nothing. No people, buildings, trees, mountains, etc. Even if they're actually there. As you walk closer to them, they will appear to suddenly pop into existence. You can now either click "OK" in the Preferences window and see if this change has improved your performance enough, or you can continue making changes.

C2) The Graphics Detail Tab

Some options on the Graphics Detail Tab may be disabled/"greyed-out" [definition]. If so, ignore them.

Uncheck all the "Shaders" options. Note that on many systems, "Enable Bumpmapping and Shiny" can be activated with no performance penalty.

Set "Avatar Rendering" to "Normal". Set "Lighting Detail" to "Sun and moon only".

Set "Terrain Detail" to "Low". Note that the world looks significantly better with this set to "High" (better-looking textures [6] are used), and on many systems it can be set "High" with no performance penalty.

Set all the "Mesh Detail" sliders to their lowest settings. This will make various things in-world look blockier and less round.

You can now either click "OK" in the Preferences window and see if this change has improved your performance enough, or you can continue making changes.

C3) The Adv. Graphics Tab

On the Adv. Graphics Tab make sure "Anisotropic Filtering" is unchecked. Make sure "Enable VBO" is checked.

Many residents like to increase "Fog Distance Ratio" to it's maximum, 4. This won't hurt performance. Most residents think the world looks better without stuff being fogged-out. Try it yourself to see what look you like better. With a low number, colors are more heavily fogged for objects that are farther from you. With a high number (like 4), colors are changed less by distant fog.

Set the "Max. Particle Count" to 1000. Particles are used to make stuff like fire, smoke, and various special effects. Turning this down will make such things look not as good, but it can keep your framerate from dropping as much when you're around them.

Set the "Outfit Composite Limit" to 0. This means that as avatars are editing their appearance, you won't see the effects of their changes until they're all done.

You can now either click "OK" in the Preferences window and see if this change has improved your performance enough, or you can continue making changes.

D) Disable Voice Chat

If you have been using voice chat features much, be aware that receiving audio from other residents or speaking to them can require your computer to do extra work to process the audio data, which may cause your framerate to drop. To deactivate voice, bring up the Preferences window

Reducing Lag

One cause of lag is packet loss [definition]. If you think you have been experiencing lag you should check for packet loss. Then if you have packet loss, you can adjust your settings to prevent it. To check for packet loss, see the Statistics Bar article to find out how to display Viewer statistics.

Once the statistics are displayed, go about your normal activities in-world. Keep an eye out to see if your "Packet Loss" goes above 0%. Especially take a look at the meter when your performance in-world is going poorly, or when your avatar seems hard to control.

If your packet loss is generally 0%, and occasionally hits 1-5%, then you don't really need to change anything.

If your packet loss is often above 5%, then it might be a good idea to change some settings. Bring up the Preferences window and select the Network Tab. Look at the value in "Maximum Bandwidth". Subtract 50 and use that as the new value (so if it was 500, enter 450 now). Click OK.

Now you repeat the steps. Go about your normal activities, if your packet loss is fine now, you're done. If it's still often above 5%, go back and subtract another 50 from "Maximum Bandwidth" and test again.

If you are forced to use Second Life with a low bandwidth [definition] setting, that means your computer will only be able to download information from the Second Life world slowly. The effect of this will be most noticeable when you teleport into a location. Your computer needs to download information about the new location...who's there, what they look like, the shape of the land, the buildings and objects there, their colors, etc. With low bandwidth, it will grab that info slowly, so it will take time for the world to materialize. Gradually objects will appear, and they'll take on their proper colors, etc. Low bandwidth may also make voice chat impractical, and, when you do use voice chat, it may slow down even further the download of information to your computer.

Full-Length Guide to Optimizing Performance

Someone should write this. Read the guidelines for writing help articles. Perhaps this section should tell people to do the short version first, then just cover the deeper topics here?

This section will cover, among other things:

  • verifying that Second Life is properly configured in regards to your graphic card (i.e.--amount of RAM on card, etc)
  • testing to see which graphics options your card supports "for free"/minimal impact
  • usage of expanded Lag Meter
  • driver updates
  • telling Second Life you have less graphics card RAM to force lower res textures to reduce bandwidth, cpu, and card strain
  • diagnosing sim performance (Stats Bar)
  • analyzing your own hardware/internet weaknesses

Further Reading

Relevant articles from the secondlife.com/support Knowledge Base:

Before any article can be read in the Knowledge Base, you must first go here and login to Second Life Support (you do not need an account). Then you may click the links you see below:

Additional topics at Wikipedia: