Speeding Up Second Life

Hunger hud not running as fast as usual? Recently changed to a different Second Life viewer? Well that might just be your problem right there, especially if you are still running on the default settings.

This article contains some tips to help speed up your SL experience and explain why some problems occur in the first place.

A few important points:

The scripts that control your Hunger hud or anything else in SL are not running on your computer, they are running on which ever SL region's server you are currently visiting. Situations where your hud slows down to the point that it seems to be doing nothing at all or is running extremely slowly most likely means the region you're in is overloaded, or your SL client is working very hard to deal with other things it deems more important than your hud (such as loading up your surrounding prims, textures, avatars, etc.). These are things that as a scripter, I have no control over.

* If a region is overloaded, it is simply impossible to make a hud run consistently fast as it is also running on that regions server *

Hud Buttons not responding after teleport

By "not responding" I mean, they don't turn green when pressed, and you don't see any local chat from the hud such as "Scanning for targets...". This is normal. It affects some more than others, and some viewers more than others. Even a very simple script that just says "Hello" when you click it can be affected in this way, with the button seemingly not responding for a long time after arrival. This is why you have a 30 second safe period. There is no script that can help, no magic technique that will ultimately solve it. You just have to deal with it, get yourself some distance from the rez point, and allow things to rez in. One thing that MIGHT help is listed below under the draw distance section.. see "Draw distance stepping".

If you DO see "Scanning for targets"... pressing your scan button again is pointless. It will send the same request to the Hunger server again, and override the communications ID the hud is expecting when it replies, meaning it will drop the response you would have got from the first request. Slapping your scan button repeatedly after you've already seen "Scanning for targets..." will not help you or the region.

Once you see "Scan returned x results", the hud has received its list of nearby avatars, but at this point it STILL might not visually show it on the scanner list. This is also explained under the Draw Distance section.

Ok, enough of that... here's some things you can do to help ease the load on your client (aka, SL Viewer).


* When upgrading to new versions of some viewers, they will override your previous settings and you might have to check all of these things again! *


Viewer Settings and why they make a difference...

Max Bandwidth: Edit - Preferences - Network (v1.23) or Me - Preferences - Setup (v2.x)


If you have a nice fast internet connection, the default viewer settings might be limiting the speed that your viewer is able to download your surroundings! Set your Max Bandwidth as high as your viewer will allow. This number does vary between viewers, the old official LL viewer (1.23) for example will allow up to 1500 kbps. Ascent viewer allows 5000 kbps, whereas Kirstens viewer displays as up to 10000 kbps. Many viewers will default to only 500kbps after install (or possibly after being updated). Please also see the notes below on background internet usage and file sharing.


Draw distance: Edit - Preferences - Graphics - Custom (v1.23) or Me - Preferences - Graphics - Advanced (v2.x)

The higher your draw distance, the further you can see, but also the more data your viewer is requesting from the server at any given time as you rez in and move around. The viewer doesn't prioritise loading up information about your hud, so with all those prims, sculpties and textures to load it might be a while before you see any changes to your Hunger scanner.

* Lowering your draw distance means the viewer has less work to do and will get around to your hud faster.

* Sometimes right clicking on the hud will bring it to the viewers attention and suddenly you can see those scan results that you were told arrived 20 seconds ago, but this doesn't always seem to work.

* VERY USEFUL - Draw Distance Stepping:
If you're using Ascent viewer, it has a nice little feature under Edit - Preferences - Ascent System - Performance tab - Enable speed-rezzing via draw distance stepping.

What this does is start your draw distance low, then gradually step it up to your chosen setting when you arrive at a new region. This is very useful because when you first arrive it will only request information about objects within 32 meters of your avatar, giving the viewer a much better chance of getting round to your Hud before it asks for any more. It will then step up the draw distance at time intervals you can specify. I personally have seen major improvements using this, with the hud responding within 10 seconds of arrival at a new sim, compared to 40 seconds or more with high draw distance settings. The speed that you should make it wait before "stepping up" will depend on your internet speed and how much is within 32 meters when you arrive at a particular sim. On a 24mb connection I found leaving it at 15 to 20 seconds to work quite nicely.

PLEASE NOTE: There are devices you can get that will try to do something like this using gestures that are compatible with certain viewers and will lower your draw distance on arrival at a new sim. The problem with that is, when you first arrive your draw distance is high and you request and start downloading everything around you in that range. THEN your draw distance is lowered, and all that is discarded. Then you have to request and download it AGAIN as your draw distance is gradually increased! Using the Ascent viewer version this is avoided, as the draw distance is reduced the moment you press teleport, long before you arrive at the new region.


Graphics Settings: Edit - Preferences - Graphics - Custom (v1.23) or Me - Preferences - Graphics - Advanced (v2.x)

The effect these have will depend on how good your computer / graphics card is. A region can be running just fine, but if you turn every funky graphics setting to high and your computer / graphics card can't handle it, you will experience client lag. I can't really advise any specifics here as it will depend on your system. Just start low and work up, and if you want max performance turn down / off anything you don't really need, such as particles, Mesh detail levels, water reflections, etc...

Avatar imposters: I suspect this is a double edged sword. On one hand, when the avatar is far away, they are not fully rendered, so your client doesn't bother with them. This is great if you're out clubbing, but on the other hand, when that person flies towards you and into your draw distance at 100 mps, suddenly your viewer has to download all their details. I suspect this is a frequent cause of lag spikes as people rapidly fly at you, and is the source of a lot of false "Cheat!" accusations. If you get a lot of lag spikes like this, turning off avatar imposters might help. They will still have to load as they enter your draw distance, but that might at least happen while you still have some distance between you. This likely won't help at all if you're close to a lot of avatars, but is worth experimenting with when fighting at 3000 meters.


File Sharing and general internet usage

Be aware that your internet activity and that of anyone sharing your connection can have detrimental effects over how SL will run. File sharing especially can be bad if it's using up all your upload bandwidth, which is likely substantially lower than your download bandwidth. The act of pressing a hud button on your screen has to be transmitted to the SL region's server you're currently in, processed by it, and returned to your viewer for each and every interaction. The same goes for scripts reading key-presses, such as the flight assist or the upcoming Hunger combat system. When file sharing, make sure you have limited its upload allowance to leave plenty spare for SL. Otherwise you might be limiting how fast you can interact with SL and the hud, even if you seem to be downloading your surroundings at a good speed. In tests I have found that heavy uploading can completely stop hud button presses from reaching the server, or drop out certain parts of it (i.e. it might detect that you pressed the button, but doesn't detect you releasing it, or vice-versa).


Keeping your computer clean

If you've ever nearly run out of hard drive space you might have noticed this can greatly effect how SL runs. Make sure you're not pushing your hard drive to its limits and regularly defrag it (unless you've got a nice fast Solid State Drive, they don't require defragging and doing so will just reduce their life span). Defragging will re-order the information on your harddrive so that it can be more easily and rapidly accessed. A nice free windows compatible defragger can be found here... http://www.iobit.com/iobitsmartdefrag.html . It also includes optimisers that can speed up access to you most frequently accessed files.


Properly clearing your Second Life cache

Clicking the "Clear Cache" button doesn't always do as much as it should. Follow this link to read about manually clearing your cache.


How to check region conditions

Pressing Ctrl Shift 1 will open a statistics window containing various useful information.

Basic:

At the top is a "Basic" section, under which you can see FPS, Bandwidth, Packet Loss and Ping Sim.

FPS: Your clients Frames per second. This will be affected by how much stuff your viewer is dealing with, and how good your computer and graphics card are.

Bandwidth: Shows how much bandwidth your viewer is currently using. I frequently see this climb up above the usual default of 500 kbps.

Ping: The speed of your computers connection to your current region. Different regions are on different servers, and the speed of your connection to different regions may vary, and may be different from your friends in other parts of the country / world.


Simulator:

Further down, under "Simulator" you can see Time Dilation, Sim FPS and Physics FPS, and near the bottom under Time (ms), Total Frame Time.

Time dilation: The ideal number to see is 1.0. As the region degrades you will see this number drop. As an example... when reading 1.0, a script with a 1 second timer, or a 1 second pause, will actually run them at the intended 1 second. If time dilation drops to 0.5, those processes will take twice as long to execute. You may well see spikes on an otherwise fast system that will suddenly cause time dilation to drop. It only takes one badly written script somewhere, or heavily scripted avatar to cause such problems. You can't assume that a region that's fine one minute will still be fine the next.

Sim FPS & Physics FPS: These should read the same, and the ideal number to see is 45. Consistently lower than that number is a bad sign for the region.

Total Frame Time: (taken from the SL wiki)

The sum of all time values listed below it, this measures how much time it takes the simulator to run everything that the simulator is trying to do each frame.
* Less than 22 ms - The simulator is healthy, everything is running as fast as it can, and more scripts can be added without reducing the performance of individual scripts.

* approx. 22 ms - The simulator is healthy, but there are probably a lot of scripts and agents on the simulator, meaning that script execution is being slowed down in order to maintain the simulator frame rate.

* Greater than 22 ms - The simulator is experiencing severe load, either due to physics or a large number of agents, such that even by slowing down script execution it is impossible to compensate. The simulator frame rate has been reduced as a result.



Second Life being what it is, when things are looking really bad, there is simply nothing that can be done beyond leaving the region and looking for a better place to play. If your hud works in one region, but not in another, it's most likely the regions fault. If it's fast in one region for your friends but slow for you, it's most likely your connection to that region, your general internet connection, your client settings or your computers current condition. There is only so much a script can do, the rest is up to you and Linden labs.

If anyone has any other suggestions that could be added to this page, or indeed corrections if I've made any mistakes or assumptions (I'm certainly no expert on Second Life viewers or servers), then please let me know.

Tryptofaa Sands.