?? cache.jsp
字號:
<%@ page contentType="text/html;charset=UTF-8" %>
<%
/**
* $RCSfile: cache.jsp,v $
* $Revision: 1.1.1.1 $
* $Date: 2002/09/09 13:50:09 $
*/
%>
<%@ page import="java.util.*,
java.text.*,
com.jivesoftware.util.*,
com.jivesoftware.forum.*,
com.jivesoftware.forum.database.*,
com.jivesoftware.forum.util.*"
%>
<%! // global variables
// decimal formatter for cache values
static final DecimalFormat mbFormat = new DecimalFormat("#0.00");
static final DecimalFormat percentFormat = new DecimalFormat("#0.0");
// cache identifiers, names
static final int[] CACHE_TYPES = {
DatabaseCacheManager.FORUM_CACHE,
DatabaseCacheManager.THREAD_CACHE,
DatabaseCacheManager.MESSAGE_CACHE,
DatabaseCacheManager.USER_CACHE,
DatabaseCacheManager.USER_PERMS_CACHE,
DatabaseCacheManager.GROUP_CACHE
};
static final String[] CACHE_NAMES = {
"論壇",
"主題",
"消息",
"用戶",
"用戶許可",
"用戶組"
};
// variable for the VM memory monitor box
static final int NUM_BLOCKS = 50;
%>
<%@ include file="global.jsp" %>
<% // get parameters
boolean cacheEnabled = ParamUtils.getBooleanParameter(request,"cacheEnabled");
boolean doCache = ParamUtils.getBooleanParameter(request,"doCache");
boolean clearCache = ParamUtils.getBooleanParameter(request,"clearCache");
// Get the underlying DbForumFactory
DbForumFactory dbForumFactory = null;
try {
dbForumFactory = (DbForumFactory)(((ForumFactoryProxy)forumFactory).getProxiedForumFactory());
} catch (Exception e) {}
// Get a cache manager
DatabaseCacheManager cacheManager = dbForumFactory.getCacheManager();
if (clearCache) {
for (int i=0; i<CACHE_TYPES.length; i++) {
cacheManager.clear(CACHE_TYPES[i]);
}
response.sendRedirect("cache.jsp");
return;
}
// turn the cache on or off
if (doCache) {
cacheManager.setCacheEnabled(cacheEnabled);
response.sendRedirect("cache.jsp");
return;
}
cacheEnabled = cacheManager.isCacheEnabled();
%>
<%@ include file="header.jsp" %>
<p>
<% // Title of this page and breadcrumbs
String title = "緩存設置";
String[][] breadcrumbs = {
{"主頁面", "main.jsp"},
{"緩存設置", "cache.jsp"}
};
%>
<%@ include file="title.jsp" %>
<font size="-1">
Jive論壇依賴于它的緩存有效的處理論壇數據。使用此面板監視和修改你的緩存設置。只有在非常少見的情況下你需要完全關閉緩存功能。你可以編輯緩存的大小調整成最小的內存使用或者最好的性能。
</font>
<p>
<font size="-1"><b>緩存狀態</b></font>
<ul>
<font size="-1">
你可以使用下面的表單打開或者關閉Jive的緩存功能。關閉緩存將嚴重的降低性能!
</font>
<form action="cache.jsp">
<input type="hidden" name="doCache" value="true">
<table bgcolor="<%= tblBorderColor %>" cellpadding="0" cellspacing="0" border="0" width="300">
<td>
<table bgcolor="<%= tblBorderColor %>" cellpadding="3" cellspacing="1" border="0" width="100%">
<tr bgcolor="#ffffff">
<td align="center"<%= (cacheEnabled)?" bgcolor=\"#99cc99\"":"" %>>
<font size="-1">
<input type="radio" name="cacheEnabled" value="true" id="rb01"
<%= (cacheEnabled)?"checked":"" %>>
<label for="rb01"><%= (cacheEnabled)?"<b>打開</b>":"打開" %></label>
</font>
</td>
<td align="center"<%= (!cacheEnabled)?" bgcolor=\"#cc6666\"":"" %>>
<font size="-1">
<input type="radio" name="cacheEnabled" value="false" id="rb02"
<%= (!cacheEnabled)?"checked":"" %>>
<label for="rb02"><%= (!cacheEnabled)?"<b>關閉</b>":"關閉" %></label>
</font>
</td>
<td align="center">
<font size="-1"><input type="submit" value="更新"></font>
</td>
</tr>
</table>
</td>
</table>
</form>
<% if (cacheEnabled) { %>
<p>
<font size="-1">
你可以單擊下面的按鈕清除所有的緩存內容。
</font>
<form action="cache.jsp">
<input type="hidden" name="clearCache" value="true">
<input type="submit" value="清除緩存內容">
</form>
<% } %>
</ul>
<% if (cacheEnabled) { %>
<p>
<font size="-1"><b>緩存性能概覽</b></font>
<ul>
<font size="-1">
下面是所有緩存的概覽。要調整各個緩存的大小,單擊下面的“編輯緩存大小”按鈕
<p>
效力測量告訴你你的緩存工作得如何。如果效力低,那么通常意味著你的緩存太小。各個部分的情況標記于下:
</font>
<p>
<table bgcolor="<%= tblBorderColor %>" cellpadding="0" cellspacing="0" border="0">
<td>
<table cellpadding="4" cellspacing="1" border="0" width="100%">
<tr bgcolor="#eeeeee">
<td align="center"><font size="-2" face="verdana"><b>緩存類型</b></font></td>
<td align="center"><font size="-2" face="verdana"><b>大小</b></font></td>
<td align="center"><font size="-2" face="verdana"><b>對象數</b></font></td>
<td align="center"><font size="-2" face="verdana"><b>效力</b></font></td>
</tr>
<% // cache variables
double memUsed;
double totalMem;
double freeMem;
double hitPercent;
long hits;
long misses;
// Loop through each cache, print out its info
for( int i=0; i<CACHE_TYPES.length; i++ ) {
String name = CACHE_NAMES[i];
int type = CACHE_TYPES[i];
memUsed = (double)cacheManager.getSize(type)/(1024*1024);
totalMem = (double)cacheManager.getMaxSize(type)/(1024*1024);
freeMem = 100 - 100*memUsed/totalMem;
hits = cacheManager.getHits(type);
misses = cacheManager.getMisses(type);
if (hits + misses == 0) {
hitPercent = 0.0;
}
else {
hitPercent = 100*(double)hits/(hits+misses);
}
boolean lowEffec = (hits > 500 && hitPercent < 85.0 && freeMem < 20.0);
%>
<tr bgcolor="#ffffff">
<td><font size="-1"><%= name %></font></td>
<td align="right">
<font size="-1">
<%= mbFormat.format(totalMem) %> MB,
<%= percentFormat.format(freeMem)%>% 空閑
</font>
</td>
<td align="right">
<font size="-1">
<%= cacheManager.getNumElements(type) %>
</font>
</td>
<td align="right">
<font size="-1">
<% if (lowEffec) { %>
<font color="#ff0000"><b><%= percentFormat.format(hitPercent)%>%</b></font>
<% } else { %>
<b><%= percentFormat.format(hitPercent)%>%</b>
<% } %>
(<%= hits %> 次點擊, <%= misses %> 次未擊中)
</font>
</td>
</tr>
<% } %>
</table>
</td>
</table>
<p>
<form action="editCache.jsp">
<input type="submit" value="編輯緩存大小">
</form>
</ul>
<% } // end if cacheEnabled %>
<p>
<font size="-1"><b>Java VM (Java虛擬機)內存</b></font>
<ul>
<% // The java runtime
Runtime runtime = Runtime.getRuntime();
double freeMemory = (double)runtime.freeMemory()/(1024*1024);
double totalMemory = (double)runtime.totalMemory()/(1024*1024);
double usedMemory = totalMemory - freeMemory;
double percentFree = ((double)freeMemory/(double)totalMemory)*100.0;
int free = 100-(int)Math.round(percentFree);
%>
<table border=0>
<tr><td><font size="-1">已用內存:</font></td>
<td><font size="-1"><%= mbFormat.format(usedMemory) %> MB</font></td>
</tr>
<tr><td><font size="-1">內存總量:</font></td>
<td><font size="-1"><%= mbFormat.format(totalMemory) %> MB</font></td>
</tr>
</table>
<br>
<table border=0><td>
<table bgcolor="#000000" cellpadding="1" cellspacing="0" border="0" width="200" align=left>
<td>
<table bgcolor="#000000" cellpadding="1" cellspacing="1" border="0" width="100%">
<% for (int i=0; i<NUM_BLOCKS; i++) {
if ((i*(100/NUM_BLOCKS)) < free) {
%>
<td bgcolor="#00ff00" width="<%= (100/NUM_BLOCKS) %>%"><img src="images/blank.gif" width="1" height="15" border="0"></td>
<% } else { %>
<td bgcolor="#006600" width="<%= (100/NUM_BLOCKS) %>%"><img src="images/blank.gif" width="1" height="15" border="0"></td>
<% }
}
%>
</table>
</td>
</table></td><td>
<font size="-1">
<b><%= percentFormat.format(percentFree) %>% 空閑</b>
</font>
</td></table>
</ul>
<% // Destroy the runtime reference
runtime = null;
%>
<%@ include file="footer.jsp" %>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -