* This update contains a bucket-full of network optimizations.

* ParcelProperties are sent only when needed instead of on any movement
* Terse Updates and other temporary data packets are marked unreliable
* After a certain amount of users, the sim actually sends updates on things less
* Experimental
* Tested to 68 avatar with pCampBot  (And it's surprising what actually causes the most lag..  the text chat!)
This commit is contained in:
Teravus Ovares
2008-02-07 08:15:38 +00:00
parent 0e771c8d39
commit 3674257095
6 changed files with 53 additions and 7 deletions

View File

@@ -957,6 +957,7 @@ namespace OpenSim.Region.ClientStack
kill.ObjectData = new KillObjectPacket.ObjectDataBlock[1];
kill.ObjectData[0] = new KillObjectPacket.ObjectDataBlock();
kill.ObjectData[0].ID = localID;
kill.Header.Reliable = false;
OutPacket(kill, ThrottleOutPacketType.Task);
}
@@ -1378,6 +1379,7 @@ namespace OpenSim.Region.ClientStack
viewertime.TimeInfo.SunDirection = sunPos;
viewertime.TimeInfo.SunAngVelocity = sunVel;
viewertime.TimeInfo.UsecSinceStart = (ulong)Util.UnixTimeSinceEpoch();
viewertime.Header.Reliable = false;
OutPacket(viewertime, ThrottleOutPacketType.Task);
}
@@ -1426,6 +1428,7 @@ namespace OpenSim.Region.ClientStack
}
viewertime.TimeInfo.SunAngVelocity = new LLVector3(0, 0.0f, 10.0f);
viewertime.TimeInfo.UsecSinceStart = (ulong)Util.UnixTimeSinceEpoch();
viewertime.Header.Reliable = false;
OutPacket(viewertime, ThrottleOutPacketType.Task);
}
@@ -1521,7 +1524,7 @@ namespace OpenSim.Region.ClientStack
ani.AnimationList[i].AnimID = animations[i];
ani.AnimationList[i].AnimSequenceID = seqs[i];
}
ani.Header.Reliable = false;
OutPacket(ani, ThrottleOutPacketType.Task);
}
@@ -1580,6 +1583,9 @@ namespace OpenSim.Region.ClientStack
terse.RegionData.TimeDilation = timeDilation;
terse.ObjectData = new ImprovedTerseObjectUpdatePacket.ObjectDataBlock[1];
terse.ObjectData[0] = terseBlock;
terse.Header.Reliable = false;
OutPacket(terse, ThrottleOutPacketType.Task);
}
@@ -1604,6 +1610,7 @@ namespace OpenSim.Region.ClientStack
ib.You = -1;
ib.Prey = -1;
loc.Index = ib;
loc.Header.Reliable = false;
OutPacket(loc, ThrottleOutPacketType.Task);
}
@@ -1706,7 +1713,7 @@ namespace OpenSim.Region.ClientStack
terse.RegionData.TimeDilation = timeDilation;
terse.ObjectData = new ImprovedTerseObjectUpdatePacket.ObjectDataBlock[1];
terse.ObjectData[0] = CreatePrimImprovedBlock(localID, position, rotation, velocity, rotationalvelocity);
terse.Header.Reliable = false;
OutPacket(terse, ThrottleOutPacketType.Task);
}
@@ -1719,7 +1726,7 @@ namespace OpenSim.Region.ClientStack
terse.RegionData.TimeDilation = timeDilation;
terse.ObjectData = new ImprovedTerseObjectUpdatePacket.ObjectDataBlock[1];
terse.ObjectData[0] = CreatePrimImprovedBlock(localID, position, rotation, velocity, rotationalvelocity);
terse.Header.Reliable = false;
OutPacket(terse, ThrottleOutPacketType.Task);
}