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 | |
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)
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 | ||