On Tue, 2002-11-26 at 13:14, Joost Diepenmaat wrote:
> Attached is a JSP page that demonstrates the problem.
Oops :-)
Bij deze.
Joost.
<%@page import="org.mmbase.bridge.*"%>
<%!
static Cloud cloud;
%>
<%
CloudContext cloudContext = ContextProvider.getCloudContext("local");
if (cloud == null) {
cloud = cloudContext.getCloud("mmbase");
}
Runtime rt = Runtime.getRuntime();
if (request.getParameter("gc") != null) {
rt.gc();
}
if (request.getParameter("times") != null) {
int times = Integer.parseInt(request.getParameter("times"));
for (int i = 0; i < times; i++) {
// replace "profile" with some node type you don't have
// too many of
cloud.getList(null,"profile","profile.name,profile.number",null,null,null,"both",true);
}
}
%>
<h2>memory overview</h2>
<dl>
<dt>Free memory on heap</dt>
<dd><%= n(rt.freeMemory()) %></dd>
<dt>Total memory on heap</dt>
<dd><%= n(rt.totalMemory()) %></dd>
</dl>
<p>
<a href="mem-demo.jsp?gc=1">Run garbage collector</a>
</p>
<p>
<form action="mem-demo.jsp" method="POST">
Run cloud.getList()
<select name="times">
<option value="10">10</option>
<option value="100">100</option>
<option value="1000">1000</option>
<option value="10000">10000</option>
<option value="100000">100000</option>
<option value="1000000">1000000</option>
</select>
times.
<input type="submit" value="Go crash me!">
</form>
</p>
</body>
</html>
<%!
String n (long n) {
if (n >= 1024L * 1024L * 1024L) {
return (n / (1024L * 1024L * 1024L)) + "G";
} else if (n >= 1024L * 1024L) {
return (n / (1024L * 1024L)) + "M";
} else if (n >= 1024L) {
return (n / 1024L) + "K";
}
return n + "";
}
%>