aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Framework/Statistics
diff options
context:
space:
mode:
authorJustin Clarke Casey2008-06-10 18:10:57 +0000
committerJustin Clarke Casey2008-06-10 18:10:57 +0000
commit184a288b4d04a58579d03b2d9518b1b6e0640e80 (patch)
tree3f7d1628268dae9057c57af5f17384b467ad31f2 /OpenSim/Framework/Statistics
parentMantis#1501. Thank you kindly, Nebadon, for a patch that (diff)
downloadopensim-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/Framework/Statistics')
-rw-r--r--OpenSim/Framework/Statistics/AssetStatsCollector.cs2
-rw-r--r--OpenSim/Framework/Statistics/BaseStatsCollector.cs51
-rw-r--r--OpenSim/Framework/Statistics/SimExtraStatsCollector.cs10
-rw-r--r--OpenSim/Framework/Statistics/UserStatsCollector.cs2
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
28using System;
29using System.Text;
30
31namespace 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
159Blocked requests for missing textures: {2}" + Environment.NewLine, 159Blocked 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