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

本文涉及的产品
性能测试 PTS,5000VUM额度
简介: 软件的性能问题是个绕不开的问题,最近看了这方面的一本书,把主要的内容笔记一下 Performance, load, and stress testing 性能测试 负载测试 压力测试 http://www.51testing.com/?uid-61747-action-viewspace-itemid-3036 性能测试的目的不是去找bugs,而是排除系统的瓶颈,以及为以后的回归测试建立一个基准。

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

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

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
相关文章
|
11天前
|
测试技术 持续交付 API
深入挖掘探索.NET单元测试
【10月更文挑战第11天】
29 2
|
20天前
|
Web App开发 前端开发 JavaScript
探索Python科学计算的边界:利用Selenium进行Web应用性能测试与优化
【10月更文挑战第6天】随着互联网技术的发展,Web应用程序已经成为人们日常生活和工作中不可或缺的一部分。这些应用不仅需要提供丰富的功能,还必须具备良好的性能表现以保证用户体验。性能测试是确保Web应用能够快速响应用户请求并处理大量并发访问的关键步骤之一。本文将探讨如何使用Python结合Selenium来进行Web应用的性能测试,并通过实际代码示例展示如何识别瓶颈及优化应用。
69 5
|
19天前
|
缓存 监控 算法
软件测试中的性能瓶颈分析与优化策略
【10月更文挑战第6天】 性能测试是确保软件系统在高负载条件下稳定运行的重要手段。本文将深入探讨性能测试的常见瓶颈,包括硬件资源、网络延迟和代码效率等问题。通过具体案例分析,我们将展示如何识别并解决这些问题,从而提升软件的整体性能。最后,文章还将分享一些实用的性能优化技巧,帮助读者在日常开发和测试中更好地应对性能挑战。
59 3
|
2月前
|
监控 测试技术 持续交付
软件测试中的性能瓶颈分析与优化策略
性能瓶颈,如同潜伏于软件深处的隐形障碍,悄然阻碍着系统的流畅运行。本文旨在揭示这些瓶颈的形成机理,剖析其背后的复杂成因,并汇聚一系列针对性的优化策略,为软件开发者提供一套系统性的解决方案。
45 5
|
21天前
|
消息中间件 分布式计算 大数据
大数据-123 - Flink 并行度 相关概念 全局、作业、算子、Slot并行度 Flink并行度设置与测试
大数据-123 - Flink 并行度 相关概念 全局、作业、算子、Slot并行度 Flink并行度设置与测试
72 0
|
17天前
|
运维
【运维基础知识】用dos批处理批量替换文件中的某个字符串(本地单元测试通过,部分功能有待优化,欢迎指正)
该脚本用于将C盘test目录下所有以t开头的txt文件中的字符串“123”批量替换为“abc”。通过创建批处理文件并运行,可实现自动化文本替换,适合初学者学习批处理脚本的基础操作与逻辑控制。
111 56
|
27天前
|
测试技术 网络安全
什么是软件测试? 软件测试都有什么岗位 ?软件测试和调试的区别? 软件测试和开发的区别? 一位优秀的测试人员应该具备哪些素质? 软件测试等相关概念入门篇
文章全面介绍了软件测试的基本概念、目的、岗位分类、与开发和调试的区别,并阐述了成为优秀测试人员应具备的素质和技能。
106 1
什么是软件测试? 软件测试都有什么岗位 ?软件测试和调试的区别? 软件测试和开发的区别? 一位优秀的测试人员应该具备哪些素质? 软件测试等相关概念入门篇
|
11天前
|
测试技术 API 开发者
精通.NET单元测试:MSTest、xUnit、NUnit全面解析
【10月更文挑战第15天】本文介绍了.NET生态系统中最流行的三种单元测试框架:MSTest、xUnit和NUnit。通过示例代码展示了每种框架的基本用法和特点,帮助开发者根据项目需求和个人偏好选择合适的测试工具。
27 3
|
24天前
|
缓存 监控 测试技术
软件测试中的性能瓶颈分析与优化策略
本文深入探讨了在软件测试过程中,如何有效地识别和解决性能瓶颈问题。通过对性能瓶颈的定义、分类以及常见原因的分析,结合实际案例,提出了一系列针对性的优化策略和方法。这些策略旨在帮助测试人员和开发人员提高软件的性能表现,确保软件在高负载条件下依然能够稳定运行。
|
22天前
|
分布式计算 Hadoop Unix
Hadoop-28 ZooKeeper集群 ZNode简介概念和测试 数据结构与监听机制 持久性节点 持久顺序节点 事务ID Watcher机制
Hadoop-28 ZooKeeper集群 ZNode简介概念和测试 数据结构与监听机制 持久性节点 持久顺序节点 事务ID Watcher机制
39 1