flotsam: slower...
parent
bd2476c61e
commit
c575c211f9
|
@ -678,6 +678,13 @@ namespace OpenSim.Region.CoreModules.Asset
|
|||
|
||||
private void CleanupExpiredFiles(object source, ElapsedEventArgs e)
|
||||
{
|
||||
lock (timerLock)
|
||||
{
|
||||
if(!m_timerRunning || m_cleanupRunning)
|
||||
return;
|
||||
m_cleanupRunning = true;
|
||||
}
|
||||
|
||||
long heap = 0;
|
||||
//if (m_LogLevel >= 2)
|
||||
{
|
||||
|
@ -685,19 +692,12 @@ namespace OpenSim.Region.CoreModules.Asset
|
|||
heap = GC.GetTotalMemory(false);
|
||||
}
|
||||
|
||||
lock (timerLock)
|
||||
{
|
||||
if(!m_timerRunning || m_cleanupRunning)
|
||||
return;
|
||||
m_cleanupRunning = true;
|
||||
}
|
||||
// Purge all files last accessed prior to this point
|
||||
DateTime purgeLine = DateTime.Now - m_FileExpiration;
|
||||
|
||||
// An asset cache may contain local non-temporary assets that are not in the asset service. Therefore,
|
||||
// before cleaning up expired files we must scan the objects in the scene to make sure that we retain
|
||||
// such local assets if they have not been recently accessed.
|
||||
m_log.Info("[FLOTSAM ASSET CACHE] start touch files of assets in use");
|
||||
TouchAllSceneAssets(false);
|
||||
int cooldown = 0;
|
||||
m_log.Info("[FLOTSAM ASSET CACHE] asset files expire");
|
||||
|
@ -742,7 +742,7 @@ namespace OpenSim.Region.CoreModules.Asset
|
|||
if (File.GetLastAccessTime(file) < purgeLine)
|
||||
{
|
||||
File.Delete(file);
|
||||
cooldown += 5;
|
||||
cooldown += 2;
|
||||
string id = Path.GetFileName(file);
|
||||
if(!String.IsNullOrEmpty(id))
|
||||
{
|
||||
|
@ -750,7 +750,7 @@ namespace OpenSim.Region.CoreModules.Asset
|
|||
weakAssetReferences.Remove(id);
|
||||
}
|
||||
}
|
||||
if(++cooldown >= 100)
|
||||
if(++cooldown >= 30)
|
||||
{
|
||||
Thread.Sleep(50);
|
||||
cooldown = 0;
|
||||
|
@ -952,6 +952,8 @@ namespace OpenSim.Region.CoreModules.Asset
|
|||
/// <returns>Number of distinct asset references found in the scene.</returns>
|
||||
private int TouchAllSceneAssets(bool tryGetUncached)
|
||||
{
|
||||
m_log.Info("[FLOTSAM ASSET CACHE] start touch files of assets in use");
|
||||
|
||||
UuidGatherer gatherer = new UuidGatherer(m_AssetService);
|
||||
|
||||
int cooldown = 0;
|
||||
|
@ -980,7 +982,7 @@ namespace OpenSim.Region.CoreModules.Asset
|
|||
gatherer.AddForInspection(e);
|
||||
while(gatherer.GatherNext())
|
||||
{
|
||||
if (++cooldown > 100)
|
||||
if (++cooldown > 50)
|
||||
{
|
||||
Thread.Sleep(50);
|
||||
cooldown = 0;
|
||||
|
@ -996,16 +998,15 @@ namespace OpenSim.Region.CoreModules.Asset
|
|||
gatherer.GatherAll();
|
||||
|
||||
cooldown = 0;
|
||||
// windows does not update access time :(
|
||||
foreach(UUID id in gatherer.GatheredUuids.Keys)
|
||||
{
|
||||
string idstr = id.ToString();
|
||||
if(!UpdateFileLastAccessTime(GetFileName(idstr)) && tryGetUncached)
|
||||
{
|
||||
cooldown += 10;
|
||||
cooldown += 5;
|
||||
m_AssetService.Get(idstr);
|
||||
}
|
||||
if (++cooldown > 100)
|
||||
if (++cooldown > 50)
|
||||
{
|
||||
Thread.Sleep(50);
|
||||
cooldown = 0;
|
||||
|
|
|
@ -1802,7 +1802,7 @@
|
|||
; AppDomainLoading = false
|
||||
|
||||
; Set this to true to load attachment scripts in separated domain, if AppDomainLoading is false
|
||||
; same issues as AppDomainLoading, but my be usefull on regions with a lot of avatars traffic, if they carry scripts like AOs
|
||||
; same issues as AppDomainLoading, but my be useful on regions with a lot of avatars traffic, if they carry scripts like AOs
|
||||
; AttachmentsDomainLoading = false
|
||||
|
||||
; Controls whether previously compiled scripts DLLs are deleted on sim restart.
|
||||
|
@ -2066,7 +2066,7 @@
|
|||
;XmlRpcServiceWriteKey = 1234
|
||||
|
||||
; Disables HTTP Keep-Alive for XmlRpcGroupsServicesConnector HTTP Requests,
|
||||
; only set to false it if you absolute sure regions and groups server support it.
|
||||
; only set to false it if you absolute sure regions and groups server support it.
|
||||
; XmlRpcDisableKeepAlive = true
|
||||
|
||||
; Minimum user level required to create groups
|
||||
|
@ -2084,20 +2084,20 @@
|
|||
|
||||
[InterestManagement]
|
||||
; This section controls how state updates are prioritized for each client
|
||||
|
||||
|
||||
; UpdatePrioritizationScheme valid values are BestAvatarResponsiveness and SimpleAngularDistance
|
||||
; SimpleAngularDistance does use more cpu
|
||||
; SimpleAngularDistance does use more cpu
|
||||
UpdatePrioritizationScheme = BestAvatarResponsiveness
|
||||
ReprioritizationEnabled = true
|
||||
ReprioritizationInterval = 2000.0
|
||||
RootReprioritizationDistance = 10.0
|
||||
ChildReprioritizationDistance = 20.0
|
||||
|
||||
; ObjectsCullingByDistance, if true, don't send object updates if outside view range
|
||||
; currently viewers are also told to delete objects that leave view range
|
||||
; only avater position is considered, free camera may not see objects
|
||||
; does increase cpu load
|
||||
ObjectsCullingByDistance = false
|
||||
; ObjectsCullingByDistance, if true, don't send object updates if outside view range
|
||||
; currently viewers are also told to delete objects that leave view range
|
||||
; only avater position is considered, free camera may not see objects
|
||||
; does increase cpu load
|
||||
ObjectsCullingByDistance = false
|
||||
|
||||
; If n > 1, only every n UDP terse updates will be sent to observers of an avatar that are in the same region
|
||||
; Updates will always be sent to the avatar that the update addresses and if av velocity is effectively zero (to prevent drift due to missing updates).
|
||||
|
@ -2134,9 +2134,9 @@
|
|||
; enabled=false
|
||||
|
||||
[Statistics]
|
||||
; NumberOfFrames is used in a moving average calculation, where NumberOfFrames is the number of frames
|
||||
; to include in the averaging calculations
|
||||
NumberOfFrames=10
|
||||
; NumberOfFrames is used in a moving average calculation, where NumberOfFrames is the number of frames
|
||||
; to include in the averaging calculations
|
||||
NumberOfFrames=10
|
||||
|
||||
[MediaOnAPrim]
|
||||
; Enable media on a prim facilities
|
||||
|
@ -2146,18 +2146,18 @@
|
|||
[NPC]
|
||||
;; Enable Non Player Character (NPC) facilities
|
||||
Enabled = false
|
||||
;; several options to control NPCs creation
|
||||
;; several options to control NPCs creation
|
||||
|
||||
;; allow NPCs to be created not Owned {true false} default: true
|
||||
;; allow NPCs to be created not Owned {true false} default: true
|
||||
; AllowNotOwned = true
|
||||
|
||||
;; allow NPCs to set to be sensed as Avatars {true false} default: true
|
||||
;; allow NPCs to set to be sensed as Avatars {true false} default: true
|
||||
; AllowSenseAsAvatar = true
|
||||
|
||||
;; allow NPCs to created cloning any avatar in region {true false} default: true
|
||||
;; allow NPCs to created cloning any avatar in region {true false} default: true
|
||||
; AllowCloneOtherAvatars = true
|
||||
|
||||
;; if true NPCs will have no group title, if false display "- NPC -" for easy identification {true false} default: true
|
||||
;; if true NPCs will have no group title, if false display "- NPC -" for easy identification {true false} default: true
|
||||
; NoNPCGroup = true
|
||||
|
||||
[Terrain]
|
||||
|
|
Loading…
Reference in New Issue