质量属性—性能
性能是指系统的响应能力,即对外部刺激(事件)做出反应时所需要的时间或在某段时间内所处理的事件个数。一般我们会用等待时间、处理期限、系统吞吐量、响应抖动、未处理事件、丢失数据等指标了解系统性能。
等待时间:刺激达到和系统对其做出响应之间的时间。
处理期限:最长等待时间。
系统吞吐量:系统单位时间处理事务的次数。
响应抖动:等待时间的变化。
缺失率(未处理事件):由于系统太忙因而无法做出响应所导致的未处理事件的数量。
数据丢失:因为系统太忙所丢失的数据。
性能战术分类图:
资源需求:
需求具有两个特性:资源流中事件之间的时间间隔;每个请求所消耗的资源
1.减少一个事件流所用的资源
(1)提高计算效率,如改进关键算法
比如在数据查找时采用二分查找法可以大大减少查找时间
(2)减少计算开销
比如保留上次计算结果
2.减少处理事件的数量,减小频率。
(1)管理事件率
(2)控制采样频率
3.控制资源的使用
(1)限制执行时间
(2)限制队列大小
例子:以数据库、数据表为例,连接数据库代码:
public static void close(Connection conn, PreparedStatement pstmt, ResultSet rs) { if (conn != null) { try { conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if (pstmt != null) { try { pstmt.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } if (rs != null) { try { rs.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
建立表
public void createtable(String key) throws SQLException { String sql = "create table "+key+" (select * from words where baike like '%"+key+"%')"; Connection conn = DBUtil.getConnection(); Statement stmt = null; //执行创建表 System.out.println("//创建表"); stmt = conn.createStatement(); if(0 == stmt.executeLargeUpdate(sql)) { System.out.println("成功创建表!"); } else { System.out.println("创建表失败!"); } DBUtil.close(conn); DBUtil.close(stmt); }