Jump to content

How much script memory is too much on land


Frank Ziplon
 Share

You are about to reply to a thread that has been inactive for 1686 days.

Please take a moment to consider if this thread is worth bumping.

Recommended Posts

So this is a burning question I have, that there seems to be no information on. In a full region it doesn't seem to matter because there is no covenant, though it matters from a lag perspective of course. But just how many scripts or how much script memory is too much.

When I downgraded to a 1/4 sim parcel, I posed this question to one of the Chungs and the response I got was "well there isn't actually a limit, you just have to be responsible"

So how does one be responsible without knowing some kind of limit?

I've looked in the adjacent 1/4 sim parcels on the land I'm at and script memory usuage varies, one parcel is using 194340kb which is the highest in the region, this seems quite high and I don't think I was even using that when I had my full region, however, I'm not getting any lag issues so I personally have no problem with it. I'm currently using 95414kb, but then I'm working on a multi-scene rp platform at the moment and many of the scripts will disappear once that is the scene rezzer, though the downside is, that the scene rezzer itself needs to add an additional script to each object.

Script usage is something I try to be mindful of and although there is advise on avatar script usage, there seems to be no advise in terms of scripts on land.

Anyway, I would love to hear thoughts, script memory usage only seems to become an issue when the lag starts, but that seems to me to be closing the gate after the horse has bolted and clear guidelines to begin with, would be a better option.

Link to comment
Share on other sites

Script timing is more important to put under the microscope than memory.

A region runs at 45 FPS, meaning 22.222222ms of timing per frame.

Open Stats by using ctrl-shift-1 and look at the "Time" sub-parameters at the bottom of the floater.

These show what's using timing in the region.

The more scripts in a region and the more things they do(see Script Events in the same floater) the more script timing will be consumed.

Back in 2011, reported script timing at the object level via llGetObjectDetails() and OBJECT_SCRIPT_TIME had more of a 1:1 reported vs. impact on script timing.

Ever since then over the years that ratio has lessened to an average of about 1:4, meaning an object with fully trended and constant script time of 0.125ms will consume 0.5ms from available timing in Stats.

This ratio also varies from what kind of script functions are in use especially if they trigger updates.

Once all available timing is consumed, region FPS will start to go down and timings will start to go up.

Script run rate % and eps will also go down since fewer script events will run per frame.

Also, understand that there is no fair resource distribution of script timing across parcels that each have different owners like there is with the distribution and limiting of prims per land owner.

So with all this general information, your basic goal is to not let all the scripts on your land consume more % of the region maximum available timing(22.222222ms) than the % of the land you own in the region.

You say you own 1/4 of a sim, so that would mean to not let the total script timing of your scripted objects exceed 5.555555ms.

Now, with that reported-to-impact ratio I mentioned, you have to reduce that value even further to 1.388888ms.

This does not take into account scripts worn by your guests which will also impact timings.

This does not take into account other activity that consumes timing, such as net timing (http usage, child agent connections), physics timing (physics movement, shape changes, pathfinding, etc), agent timing (object update checking in and around agent FOV).

This does not take into account if your region is a Homestead as multiple Homestead regions will run on a single host server CPU core and report lowered script run rates.

So "in theory" if there are only 4 parcels owners in the region, each owning 1/4 of the land, if each owner's scripted object totals don't exceed 1.388888ms, script run rates "should" always be near 100% and region FPS "should" always be near 45.

But, since we don't have fair script usage enforcement, it is all too common for one land owner's scripted objects to consume more than their fair share in the region.

Here are some examples of how people can abuse their share of script resources, whether knowing/caring or not:

  • One land owner owning a 4096 sqm parcel which is 6.25% of the land in the region, rezzes dozens of Amaretto horses that consume 33% - 50% of the script timing in the region.
  • One land owner owning a 4096 sqm parcel which is 6.25% of the land in the region, logs in dozens of AFK accounts whose attachments consume 33% - 50% of the script timing in the region.

Here is a feature request to bring us enforced fair script use.

There's also an issue that with today's high streaming cost content and the current generic land impact calc, that script counts/memory do not have any actual impact on land impact.

Here is a feature request to make scripts have a more correct effect on land impact.

  • Like 2
  • Thanks 4
Link to comment
Share on other sites

10 minutes ago, Lucia Nightfire said:

Script timing is more important to put under the microscope than memory.

A region runs at 45 FPS, meaning 22.222222ms of timing per frame.

Open Stats by using ctrl-shift-1 and look at the "Time" sub-parameters at the bottom of the floater.

These show what's using timing in the region.

The more scripts in a region and the more things they do(see Script Events in the same floater) the more script timing will be consumed.

Back in 2011, reported script timing at the object level via llGetObjectDetails() and OBJECT_SCRIPT_TIME had more of a 1:1 reported vs. impact on script timing.

Ever since then over the years that ratio has lessened to an average of about 1:4, meaning an object with fully trended and constant script time of 0.125ms will consume 0.5ms from available timing in Stats.

This ratio also varies from what kind of script functions are in use especially if they trigger updates.

Once all available timing is consumed, region FPS will start to go down and timings will start to go up.

Script run rate % and eps will also go down since fewer script events will run per frame.

Also, understand that there is no fair resource distribution of script timing across parcels that each have different owners like there is with the distribution and limiting of prims per land owner.

So with all this general information, your basic goal is to not let all the scripts on your land consume more % of the region maximum available timing(22.222222ms) than the % of the land you own in the region.

You say you own 1/4 of a sim, so that would mean to not let the total script timing of your scripted objects exceed 5.555555ms.

Now, with that reported-to-impact ratio I mentioned, you have to reduce that value even further to 1.388888ms.

This does not take into account scripts worn by your guests which will also impact timings.

This does not take into account other activity that consumes timing, such as net timing (http usage, child agent connections), physics timing (physics movement, shape changes, pathfinding, etc), agent timing (object update checking in and around agent FOV).

This does not take into account if your region is a Homestead as multiple Homestead regions will run on a single host server CPU core and report lowered script run rates.

So "in theory" if there are only 4 parcels owners in the region, each owning 1/4 of the land, if each owner's scripted object totals don't exceed 1.388888ms, script run rates "should" always be near 100% and region FPS "should" always be near 45.

But, since we don't have fair script usage enforcement, it is all too common for one land owner's scripted objects to consume more than their fair share in the region.

Here are some examples of how people can abuse their share of script resources, whether knowing/caring or not:

  • One land owner owning a 4096 sqm parcel which is 6.25% of the land in the region, rezzes dozens of Amaretto horses that consume 33% - 50% of the script timing in the region.
  • One land owner owning a 4096 sqm parcel which is 6.25% of the land in the region, logs in dozens of AFK accounts whose attachments consume 33% - 50% of the script timing in the region.

Here is a feature request to bring us enforced fair script use.

There's also an issue that with today's high streaming cost content and the current generic land impact calc, that script counts/memory do not have any actual impact on land impact.

Here is a feature request to make scripts have a more correct effect on land impact.

thank you, that's very interesting, I guess it explains why nobody tells you a set limit as there is more going on than the actual memory usage. I pulled up the stats for the region as per your instructions and the time is peaking at 22.438, which if I am understanding you correctly is for the entire region, opposed to my personal contribution. I am assuming there is no way currently to determine what is being used per parcel. I think it is very right to request a feature than enforces fair script usage and indeed account for them in land impact, people like me who are interested in their part would value land impact indicating that information. Unfortunately when you only lease a parcel, there is no way of viewing top scripts, like you can when you are estate manager or owner of a full region, so it's difficult for me to know, just how much impact my own scripts are having. Like I say there is no lag, so I'm hopeful that is the case for everyone who uses the land.

I thank you for taking the time to put this very useful information up :)

Link to comment
Share on other sites

You are about to reply to a thread that has been inactive for 1686 days.

Please take a moment to consider if this thread is worth bumping.

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
 Share

×
×
  • Create New...