diff options
author | Justin Clarke Casey | 2008-06-10 18:10:57 +0000 |
---|---|---|
committer | Justin Clarke Casey | 2008-06-10 18:10:57 +0000 |
commit | 184a288b4d04a58579d03b2d9518b1b6e0640e80 (patch) | |
tree | 3f7d1628268dae9057c57af5f17384b467ad31f2 /OpenSim | |
parent | Mantis#1501. Thank you kindly, Nebadon, for a patch that (diff) | |
download | opensim-SC-184a288b4d04a58579d03b2d9518b1b6e0640e80.zip opensim-SC-184a288b4d04a58579d03b2d9518b1b6e0640e80.tar.gz opensim-SC-184a288b4d04a58579d03b2d9518b1b6e0640e80.tar.bz2 opensim-SC-184a288b4d04a58579d03b2d9518b1b6e0640e80.tar.xz |
* Add memory currently allocated to OpenSim to 'show stats' statistics
* This is the GC.GetTotalMemory() method, which I'm guessing does not include memory used by the VM (hence the memory usage reported in top on linux would be much higher)
Diffstat (limited to 'OpenSim')
4 files changed, 59 insertions, 6 deletions
diff --git a/OpenSim/Framework/Statistics/AssetStatsCollector.cs b/OpenSim/Framework/Statistics/AssetStatsCollector.cs index ed6779d..f2b765f 100644 --- a/OpenSim/Framework/Statistics/AssetStatsCollector.cs +++ b/OpenSim/Framework/Statistics/AssetStatsCollector.cs | |||
@@ -33,7 +33,7 @@ namespace OpenSim.Framework.Statistics | |||
33 | /// <summary> | 33 | /// <summary> |
34 | /// Asset service statistics collection | 34 | /// Asset service statistics collection |
35 | /// </summary> | 35 | /// </summary> |
36 | public class AssetStatsCollector : IStatsCollector | 36 | public class AssetStatsCollector : BaseStatsCollector |
37 | { | 37 | { |
38 | private Timer ageStatsTimer = new Timer(24 * 60 * 60 * 1000); | 38 | private Timer ageStatsTimer = new Timer(24 * 60 * 60 * 1000); |
39 | private DateTime startTime = DateTime.Now; | 39 | private DateTime startTime = DateTime.Now; |
diff --git a/OpenSim/Framework/Statistics/BaseStatsCollector.cs b/OpenSim/Framework/Statistics/BaseStatsCollector.cs new file mode 100644 index 0000000..9e827af --- /dev/null +++ b/OpenSim/Framework/Statistics/BaseStatsCollector.cs | |||
@@ -0,0 +1,51 @@ | |||
1 | /* | ||
2 | * Copyright (c) Contributors, http://opensimulator.org/ | ||
3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. | ||
4 | * | ||
5 | * Redistribution and use in source and binary forms, with or without | ||
6 | * modification, are permitted provided that the following conditions are met: | ||
7 | * * Redistributions of source code must retain the above copyright | ||
8 | * notice, this list of conditions and the following disclaimer. | ||
9 | * * Redistributions in binary form must reproduce the above copyright | ||
10 | * notice, this list of conditions and the following disclaimer in the | ||
11 | * documentation and/or other materials provided with the distribution. | ||
12 | * * Neither the name of the OpenSim Project nor the | ||
13 | * names of its contributors may be used to endorse or promote products | ||
14 | * derived from this software without specific prior written permission. | ||
15 | * | ||
16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY | ||
17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | ||
18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||
19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY | ||
20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | ||
21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||
22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | ||
23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | ||
25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
26 | */ | ||
27 | |||
28 | using System; | ||
29 | using System.Text; | ||
30 | |||
31 | namespace OpenSim.Framework.Statistics | ||
32 | { | ||
33 | /// <summary> | ||
34 | /// Statistics which all collectors are interested in reporting | ||
35 | /// </summary> | ||
36 | public class BaseStatsCollector : IStatsCollector | ||
37 | { | ||
38 | public virtual string Report() | ||
39 | { | ||
40 | StringBuilder sb = new StringBuilder(Environment.NewLine); | ||
41 | sb.Append("MEMORY STATISTICS"); | ||
42 | sb.Append(Environment.NewLine); | ||
43 | sb.Append( | ||
44 | string.Format( | ||
45 | "Allocated to OpenSim : {0} MB" + Environment.NewLine, | ||
46 | Math.Round(GC.GetTotalMemory(false) / 1024.0 / 1024.0))); | ||
47 | |||
48 | return sb.ToString(); | ||
49 | } | ||
50 | } | ||
51 | } | ||
diff --git a/OpenSim/Framework/Statistics/SimExtraStatsCollector.cs b/OpenSim/Framework/Statistics/SimExtraStatsCollector.cs index 506db31..7a74e72 100644 --- a/OpenSim/Framework/Statistics/SimExtraStatsCollector.cs +++ b/OpenSim/Framework/Statistics/SimExtraStatsCollector.cs | |||
@@ -36,7 +36,7 @@ namespace OpenSim.Framework.Statistics | |||
36 | /// <summary> | 36 | /// <summary> |
37 | /// Collects sim statistics which aren't already being collected for the linden viewer's statistics pane | 37 | /// Collects sim statistics which aren't already being collected for the linden viewer's statistics pane |
38 | /// </summary> | 38 | /// </summary> |
39 | public class SimExtraStatsCollector : IStatsCollector | 39 | public class SimExtraStatsCollector : BaseStatsCollector |
40 | { | 40 | { |
41 | private long abnormalClientThreadTerminations; | 41 | private long abnormalClientThreadTerminations; |
42 | 42 | ||
@@ -140,14 +140,14 @@ namespace OpenSim.Framework.Statistics | |||
140 | /// Report back collected statistical information. | 140 | /// Report back collected statistical information. |
141 | /// </summary> | 141 | /// </summary> |
142 | /// <returns></returns> | 142 | /// <returns></returns> |
143 | public string Report() | 143 | public override string Report() |
144 | { | 144 | { |
145 | StringBuilder sb = new StringBuilder(Environment.NewLine); | 145 | StringBuilder sb = new StringBuilder(Environment.NewLine); |
146 | sb.Append("ASSET STATISTICS"); | 146 | sb.Append("ASSET STATISTICS"); |
147 | sb.Append(Environment.NewLine); | 147 | sb.Append(Environment.NewLine); |
148 | sb.Append( | 148 | sb.Append( |
149 | string.Format( | 149 | string.Format( |
150 | @"Asset cache contains {0,6} assets using {1,10:0.000}K" + Environment.NewLine, | 150 | @"Asset cache contains {0,6} assets using {1,10:0.000} K" + Environment.NewLine, |
151 | AssetsInCache, AssetCacheMemoryUsage / 1024.0)); | 151 | AssetsInCache, AssetCacheMemoryUsage / 1024.0)); |
152 | 152 | ||
153 | sb.Append(Environment.NewLine); | 153 | sb.Append(Environment.NewLine); |
@@ -155,7 +155,7 @@ namespace OpenSim.Framework.Statistics | |||
155 | sb.Append(Environment.NewLine); | 155 | sb.Append(Environment.NewLine); |
156 | sb.Append( | 156 | sb.Append( |
157 | string.Format( | 157 | string.Format( |
158 | @"Texture cache contains {0,6} textures using {1,10:0.000}K | 158 | @"Texture cache contains {0,6} textures using {1,10:0.000} K |
159 | Blocked requests for missing textures: {2}" + Environment.NewLine, | 159 | Blocked requests for missing textures: {2}" + Environment.NewLine, |
160 | TexturesInCache, TextureCacheMemoryUsage / 1024.0, | 160 | TexturesInCache, TextureCacheMemoryUsage / 1024.0, |
161 | BlockedMissingTextureRequests)); | 161 | BlockedMissingTextureRequests)); |
@@ -193,6 +193,8 @@ Blocked requests for missing textures: {2}" + Environment.NewLine, | |||
193 | sb.Append(Environment.NewLine); | 193 | sb.Append(Environment.NewLine); |
194 | } | 194 | } |
195 | 195 | ||
196 | sb.Append(base.Report()); | ||
197 | |||
196 | return sb.ToString(); | 198 | return sb.ToString(); |
197 | } | 199 | } |
198 | } | 200 | } |
diff --git a/OpenSim/Framework/Statistics/UserStatsCollector.cs b/OpenSim/Framework/Statistics/UserStatsCollector.cs index c7fe7c2..e094d91 100644 --- a/OpenSim/Framework/Statistics/UserStatsCollector.cs +++ b/OpenSim/Framework/Statistics/UserStatsCollector.cs | |||
@@ -32,7 +32,7 @@ namespace OpenSim.Framework.Statistics | |||
32 | /// <summary> | 32 | /// <summary> |
33 | /// Collects user service statistics | 33 | /// Collects user service statistics |
34 | /// </summary> | 34 | /// </summary> |
35 | public class UserStatsCollector : IStatsCollector | 35 | public class UserStatsCollector : BaseStatsCollector |
36 | { | 36 | { |
37 | private Timer ageStatsTimer = new Timer(24 * 60 * 60 * 1000); | 37 | private Timer ageStatsTimer = new Timer(24 * 60 * 60 * 1000); |
38 | 38 | ||