首页 > 其他 > 详细

性能战术在代码层面中的体现(以热词分析为例)

时间:2020-03-02 23:20:23      阅读:103      评论:0      收藏:0      [点我收藏+]

性能战术的目标:对一定时间限制内到达系统的事件生成一个响应,这些事件可以是消息到达、定时器到时,系统状态的变化。

技术分享图片

 

 性能战术的分类以及基本的方法

技术分享图片

1.资源需求

 需求具有两个特性:资源流中事件之间的时间间隔;每个请求所消耗的资源

针对这个问题,在之前的热词分析项目中,把首页直接表格显示所有数据库内容,改成了分页显示,并且跳页才查询,只查询当前页的记录

技术分享图片
<table border="1" cellpadding="3" cellspacing="0" style="width: 80%;margin:auto">
            <tr>
                <td style="width:40px">序号</td>
                <td style="width:40px">热词</td>
                <td>热词解释</td>
                <td>内容链接</td>
            </tr>
            <%     List<WordBean> list = dao.select_page(pages,limit);
                //List<WordBean> list =(List<WordBean>)session.getAttribute("list");
                for(WordBean n:list){ %>
            <tr>
                <td><%=n.getId() %></td>
                <td><%=n.getWord() %></td>
                <td><%=n.getExplain() %></td>
                <td><a href=‘<%=n.getLink() %>‘><%=n.getLink() %></a></td>
            </tr>
            <%} %>
        </table>
原代码
技术分享图片
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@page import="com.bean.WordBean" %>
<%@page import="com.dao.WordDao" %>
<%@page import="java.util.List" %>
<%@page import="java.util.ArrayList" %>
<%
    WordDao dao = new WordDao();
    int pages=0;            //待显示页面
    int count=0;            //总条数
    int totalpages=0;        //总页数
    int limit=10;            //每页显示记录条数    
    count = dao.select_count();
    
    //由记录总数除以每页记录数得出总页数
    totalpages = (int)Math.ceil(count/(limit*1.0));
    //获取跳页时传进来的当前页面参数
    String strPage = request.getParameter("pages");
    //判断当前页面参数的合法性并处理非法页号(为空则显示第一页,小于0则显示第一页,大于总页数则显示最后一页)
    if (strPage == null) { 
        pages = 1;
    } else {
        try{
            pages = java.lang.Integer.parseInt(strPage);
        }catch(Exception e){
            pages = 1;
        }
        
        if (pages < 1){
            pages = 1;
        }
        
        if (pages > totalpages){
            pages = totalpages;
        }                            
    }
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <style type="text/css">
    body{ 
        background: #ffffff;
        font-family: 华文行楷;
    } 
    tr:nth-child(2n)
    {
        background:#f5fafc;
    }
    </style>
    <meta charset="UTF-8">
</head>
<body style="height: 100%; margin: 0;">
    <div style="text-align:center" class="results">
        <table border="1" cellpadding="3" cellspacing="0" style="width: 80%;margin:auto">
            <tr>
                <td style="width:40px">序号</td>
                <td style="width:40px">热词</td>
                <td>热词解释</td>
                <td>内容链接</td>
            </tr>
            <%     List<WordBean> list = dao.select_page(pages,limit);
                //List<WordBean> list =(List<WordBean>)session.getAttribute("list");
                for(WordBean n:list){ %>
            <tr>
                <td><%=n.getId() %></td>
                <td><%=n.getWord() %></td>
                <td><%=n.getExplain() %></td>
                <td><a href=‘<%=n.getLink() %>‘><%=n.getLink() %></a></td>
            </tr>
            <%} %>
        </table>
        <form name="f1" method="POST" action="select.jsp" onSubmit="return checknum()">
            <table border="0" align="center" >
                <tr>
                    <td>第<%=pages%>页 共<%=totalpages%>页 <a href="select.jsp?pages=1">首页</a></td>
                    <td><a href="select.jsp?pages=<%=(pages<1)?pages:(pages-1) %>"> 上一页</a></td>
                    <td><a href="select.jsp?pages=<%=(pages>=totalpages)?totalpages:(pages+1)%>"> 下一页</a></td>
                    <td><a href="select.jsp?pages=<%=totalpages%>">最后一页</a></td>
                    <td>转到第:<input type="text" name="page" size="8">页<input type="submit" value="GO" name="cndok"></td>
                </tr>
            </table> 
         </form>
    </div>
</body>
</html>
现代码

分页代码学习的这篇博客https://www.cnblogs.com/firstdream/p/7732672.html

2.资源管理

资源管理常用的方法:引入并发、维持数据或计算的多个副本、增加可用资源

3.资源仲裁

因为个人的热词分析做的比较简单,这边想不出有什么可以修改的地方

 

性能战术在代码层面中的体现(以热词分析为例)

原文:https://www.cnblogs.com/gothic-death/p/12398507.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!