.net性能测试和优化1 基本概念

软件的性能问题是个绕不开的问题,最近看了这方面的一本书,把主要的内容笔记一下

Performance, load, and stress testing

性能测试 负载测试 压力测试

http://www.51testing.com/?uid-61747-action-viewspace-itemid-3036

性能测试的目的不是去找bugs,而是排除系统的瓶颈,以及为以后的回归测试建立一个基准。而性能测试的操作,实际上就是一个非常小心受控的测量分析过程。

负载测试的目的找到一些在测试流程中前面的阶段所进行的粗略测试中没有被找出的bugs,例如,内存管理bugs,内存泄露,缓冲器溢出等等。保证应用程序达到性能测试中确定的性能基线。这个可以在运行回归试验时,通过加载特定的最大限度的负载来实现。

尽管性能测试和负载测试似乎很像,但他们的目的还是有差异的。一方面,性能测试使用负载测试的技术,工具,以及用不同的负载程度来测度和基准化系统。在另一方面来讲,负载测试是在一些已经定义好的负载程度上进行测试的,通常对系统加上最大负载之后,系统应该仍然可以提供全部功能。这里需要明确一点,负载测试并不是要对系统加载上过度的负载而使系统不能工作,而是要使系统像一个上满了油的机器嗡嗡叫.

压力测试是指通过对系统加载过度的资源或者例系统没有应该具有的令系统可以正常运作的资源,来使系统崩溃(在某些情况的时候,它又可以叫做负面测试)。

Profiling

.net程序有两种profiling的过程: performance-based / memory-based

Ø performance-based profiling

n 性能Performance profiling measures how long a method or function may take to run

Ø memory-based profiling

n 内存 memory profiling measures how much memory certain aspects of the application (or even individual objects) use

测试度量基本工具和查看指标 Performance and Load Test Metrics

性能监视器工具PerfMon tool (perfmon.exe)【Windows环境内置的一个工具】,如下是些参考资料,这个基本工具可以用于初步的侦测

MSDN http://technet.microsoft.com/zh-cn/library/cc749249(WS.10).aspx

使用性能监视器监视系统性能/运行情况 http://www.cnblogs.com/MaoBisheng/archive/2010/07/18/1780024.html

性能监视器使用http://wenku.baidu.com/view/255287f9941ea76e58fa04a9.html

使用性能监视器找出硬件瓶颈http://www.ygbk.info/archives/39.html

http://wenku.baidu.com/view/e3ee86a3b0717fd5360cdc16.html

Visual Studio Team Test

开发工具进行测试

Chapter 15 — Measuring .NET Application Performance

http://msdn.microsoft.com/en-us/library/ms998579.aspx

基本度量Basic metrics

CPU利用率和内存使用率

Web程序度量Web application basic metrics

response time / requests per second

Time to First Byte (TTFB)

其他的度量项

一些主要的度量项

基本类别

Category: Processor

• % Processor Time

Category: Process

• % Processor Time

• Working Set

Category: Memory

• Available Mbytes

• Pages/Sec

• Page Faults/Sec

Category: .NET CLR Memory

• Gen 0 heap size, Gen 1 heap size, Gen 2 heap size

• #Gen 0 Collections, #Gen 1 Collections, #Gen 2 Collections

Category: .NET CLR Exceptions

• # of Exceps Thrown / sec

Category: .NET CLR Jit

• % Time in Jit

Category: .NET CLR Security

• % Time in RT Checks

Category: .NET CLR Locks and Threads

• Total # of Contentions

• Contention Rate/Sec

Web/ASP.NET 类别

Category: ASP.NET

• Application Restarts

Category: ASP.NET Applications

• Pipeline Instance Count

• Requests in Application Queue

• Request Execution Time

• Requests/Second

Database

Category: Physical Disk

• Avg. Disk Queue Length

Category: SQL Server: SQL Statistics

• Batch Requests/Sec

Category: SQL Server: Databases

• Transactions/Sec

本系列是系统的看了下面的图书的一些总结和心得

.NET Performance Testing and Optimization

The Complete Guide

Paul Glavich and Chris Farrell

ISBN: 978-1-906434-40-3

转载于:https://www.cnblogs.com/2018/archive/2011/07/02/2096179.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/462590.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Windows PowerShell:(2)基本操作

一、启动PowerShell 2.0 打开“开始”、“所有程序”、“附件”、“Windows PowerShell”程序组,点击“Windows PowerShell”。 二、基本操作 1、查看可用的命令的列表 Get-Command 注:PowerShell有自动补齐命令的功能。例如,在本例中只需要输…

Install Python3.6 on Amazon Linux/EC2 在Amazon Linux实例中安装使用Python3.6

本文转载自 https://gist.github.com/niranjv/f80fc1f488afc49845e2ff3d5df7f83b 由于Amazon Linux中预装的Python版本为2.7,该脚本教程很好地解决了在Amazon Linux中安装Python3.6的需求,遂转发记录至此 # install pre-requisites sudo yum -y groupins…

怎样从red hat linux图形登录改成从文本登录

修改 /etc/inittab id:5:initdefault: 把 5 改为 3 就是文本方式 需要用vi文件打开才可以保存!

sicily 1012. Stacking Cylinders

//纯计算题,三角形内,已知两点坐标A(x1,y1),B(x2,y2)&#xff0c;求第三点的坐标C(x3,y3),其中顶点A,B到C距离都为2//由 (x3-x1)^2(y3-y1)^24 和 (x3-x2)^2(y3-y2)^24 //可得 2(x2-x1)*x32(y2-y1)*y3x2^2-x1^2y2^2-y1^2 (1)//设A,B距离为L,则顶点C到直线AB的距离 H2*sin<CAB…

CMDB小计1

1.web开发&#xff08;Django&#xff0c;flask&#xff0c; tornado&#xff09;。 2.自动化运维&#xff08;CMDB项目&#xff09;。 3.爬虫 和 数据分析。 4.自动化测试。 4.人工智能&#xff0c;机械学习&#xff0c; 算法 CMDB 项目&#xff1a; 自动化运维&#xff1a; 运…

Eclipse搭建Cocos2d-x运行环境问题汇总(不含CygWin)

具体搭建方法&#xff0c;可参阅这两篇文章 http://www.cnblogs.com/ybgame/archive/2012/06/07/2540693.html http://blog.csdn.net/maojudong/article/details/7261986 首先导入Cocos2d-x下的HelloCpp项目 本文主要记录在配置的过程中遇到的问题及注意事项 问题1.jni/Android…

字符串转换为整数的源码atoi()

#define is_digit(c) ((c) > 0 && (c) < 9) static int skip_atoi(const char **s) { int i0; while (is_digit(**s)) i i*10 *((*s)) - 0; return i; }

Oracle 异常错误处理

本篇主要内容如下&#xff1a;  5.1 异常处理概念  5.1.1 预定义的异常处理  5.1.2 非预定义的异常处理  5.1.3 用户自定义的异常处理  5.1.4 用户定义的异常处理  5.2 异常错误传播  5.2.1 在执行部分引发异常错误  5.2.2 在声明部分引发异常错误  5.3 异常…

mui 获取地图当前位置和经纬度

转&#xff1a;https://blog.csdn.net/qaqqmq/article/details/79151610 希望对大家有用, mui.plusReady(function() { plus.geolocation.getCurrentPosition(MapPoint, function(e) { mui.toast("error:" e.message); }) }) …

宋体配置JAVA j2ee (一) 轻松入门

最近使用开辟的程过中现出了一个小问题&#xff0c;顺便记录一下原因和方法--宋体配置 背景绍介我们经已学习了.NET台平环境下开辟Web目项&#xff0c;经过较长时光接触与学习&#xff0c;慢慢的对于它也熟习了&#xff0c;然而你否是对于Java熟习呢。.NET台平同Java有很多型类…

imgareaselect 缩略图 裁剪图片

(客户端模拟裁剪图片&#xff09; imgareaselect: http://odyniec.net/projects/imgareaselect/ php生成缩略图参考&#xff1a; http://www.php.net/manual/en/book.image.php http://www.webmotionuk.co.uk/php-jquery-image-upload-and-crop/ http://www.leonkessler.com/bl…

token的作用

toke token的作用 使用基于 Token 的身份验证方法&#xff0c;在服务端不需要存储用户的登录记录。大概的流程是这样的&#xff1a; 1. 客户端使用用户名跟密码请求登录。 2.通过ajax向后端发送请求。 3.服务端收到请求&#xff0c;去验证用户名与密码。 4.验证成功后&#xff…

mysql数据的表分区一

当mysql中医个表的总记录数超过了1000W&#xff0c;会出现性能大幅度下降的情况&#xff0c;单性能下降的比率由系统的架构、应用程序、数据库索引、服务器硬件等多种因素而定。数据库多达上亿的数据量&#xff0c;分表之后的单个表 也已经超过了千万&#xff0c;那么单个表的更…

static关键字 void和void指针 函数指针

static关键字1&#xff0e;作用于变量&#xff1a; 用static声明局部变量-------局部变量指在代码块{}内部定义的变量&#xff0c;只在代码块内部有效&#xff08;作用域&#xff09;&#xff0c;其缺省的存储方式是自动变量或说是动态存储的&#xff0c;即指令执行到变量定义…

走台阶 OR 台阶走——《狂人C》习题解答14(第三章习题4)

题目&#xff1a; 4. 有一段楼梯有6级台阶,规定每一步只能跨一级或两级,要登上第6级台阶有几种不同的走法? 这个题目从数学角度来看可能有一点难度&#xff0c;但一经点破也就没什么难度了。 首先第1级台阶只有一种走法。第2级台阶有两种走法&#xff0c;因为可以直接跨上…

ZOJ-2587 Unique Attack 最小割的唯一性判定

题意&#xff1a;给定一个无向图&#xff0c;要求判定分离两个点的最小割是否唯一。 解法&#xff1a;在求出最大流的基础上&#xff0c;从源点进行一次搜索&#xff0c;搜索按照未饱和的边进行&#xff0c;得到顶点子集S的顶点个数&#xff1b;再从汇点反向搜索未饱和的边&…

#define va_arg(AP, TYPE)

Linux内核 stdarg.h 中&#xff1a; #define va_arg(AP, TYPE) / (AP __va_rounded_size (TYPE), / *((TYPE *) (AP - __va_rounded_size (TYPE)))) 为&#xff0c;AP 指针先向前移动&#xff08;sizeof&#xff08;Type&#xff09;&#xff09;位&#xff0c; 再获取前指针点…

新手学html 第一节:html简介

什么是 HTML&#xff1f; HTML&#xff08;Hypertext Markup Language&#xff09;文本标记语言&#xff0c;是用于描述网页文档的一种标记语言. HTML 是用来描述网页的一种语言。 HTML 指的是超文本标记语言 (Hyper Text Markup Language) .HTML 不是一种编程语言&#xff0c;…

dubbo与springmvc的简单使用

什么是Dubbo&#xff1f; dubbo是阿里巴巴公司开源的高性能优秀服务框架&#xff0c;通过高性能的RPC&#xff08;远程服务调用&#xff09;实现服务的输入输出功能&#xff0c;可以与spring框架无缝整合&#xff1b; 传统的架构所有的模块都在一台服务器上&#xff0c;单台服务…

怎么用VC编程实现把用户名,密码提交到网页上并且实现登录?

网址&#xff1a;http://topic.csdn.net/u/20100526/11/d8ce2c65-a151-44d0-ae57-3847a1f01cfd.html 相关链接&#xff1a;VC POST表单——登录验证新浪邮箱VC提交网页表单&#xff0d;自动评论留言