C#异常处理性能测试
异常处理性能测试
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int cnt = ;
StringBuilder sb = new StringBuilder();
string msg = "";
Stopwatch w = new Stopwatch();
w.Start();
int a = ;
for (int i = ; i <= cnt; i++)
{
Int32.TryParse("a", out a);
} w.Stop();
msg = string.Format("Int32.TryParse {0}次:{1}毫秒", cnt, w.ElapsedMilliseconds);
sb.AppendLine(msg); w.Reset();
w.Start();
for (int i = ; i <= cnt; i++)
{
try
{
int a2 = ;
}
catch (Exception e)
{ }
finally
{ } } w.Stop(); msg = string.Format("try catch中执行 a2 = 1 {0}次:{1}毫秒", cnt, w.ElapsedMilliseconds);
sb.AppendLine(msg); w.Reset();
w.Start();
for (int i = ; i <= cnt; i++)
{
try
{
Int32.TryParse("a", out a);
}
catch (Exception e)
{ }
finally
{ }
} w.Stop();
msg = string.Format("try catch中执行 Int32.TryParse无异常 {0}次:{1}毫秒", cnt, w.ElapsedMilliseconds);
sb.AppendLine(msg); w.Reset();
w.Start();
for (int i = ; i <= cnt; i++)
{
try
{
Int32.Parse("a");
}
catch (Exception e)
{ }
finally
{ }
} w.Stop(); msg = string.Format("try catch中执行 Int32.Parse有抛异常{0}次:{1}毫秒", cnt, w.ElapsedMilliseconds);
sb.AppendLine(msg); w.Reset();
w.Start();
for (int i = ; i <= cnt; i++)
{
try
{
throw new Exception("");
}
catch (Exception e)
{ }
finally
{ }
} w.Stop();
msg = string.Format("try catch中执行 throw new Exception有抛异常{0}次:{1}毫秒", cnt, w.ElapsedMilliseconds);
sb.AppendLine(msg); Console.WriteLine(sb.ToString()); Console.Read();
}
}
}
输出结果:
Int32.TryParse 1000次:0毫秒
try catch中执行 a2 = 1 1000次:0毫秒
try catch中执行 Int32.TryParse无异常 1000次:0毫秒
try catch中执行 Int32.Parse有抛异常1000次:6276毫秒
try catch中执行 throw new Exception有抛异常1000次:4904毫秒
结论:
1. C#中使用 TryParse性能较好。
2. 一次异常处理大约耗时5毫秒。
C#异常处理性能测试的更多相关文章
- JMeter学习-022-JMeter 分布式测试(性能测试大并发、远程启动解决方案)
在使用 JMeter 进行性能测试时,难免遇到要求并发请求数比较的场景,此时单台测试机的配置(CPU.内存.带宽等)可能无法支持此性能测试场景.因而,此时 JMeter 提供的分布式测试功能就有了用武 ...
- 插入排序的性能测试对比(C与C++实现)
一.概述: [标题]学生成绩管理的设计与实现 [开发语言]C.C++ [主要技术]结构体.STL [基本功能]实现对学生成绩类的基本操作:增加.删除.查询.排序 [测试数据]功能测试:按提示输入5组正 ...
- [转].NET 性能测试工具 -- 事件跟踪器(ETW)
.NET 性能测试工具 -- 事件跟踪器(ETW) 内容预告: Windows内置工具(性能计数器) 事件跟踪器(WPT,PerfMoniter,PerfView,自定义ETW) 时间分析 内存分配分 ...
- Selenium自动化测试,接口自动化测试开发,性能测试从入门到精通
Selenium自动化测试,接口自动化测试开发,性能测试从入门到精通Selenium接口性能自动化测试基础部分:分层自动化思想Slenium介绍Selenium1.0/2.0/3.0Slenium R ...
- dubbo超时重试和异常处理
dubbo超时重试和异常处理 dubbo超时重试和异常处理 参考: https://www.cnblogs.com/ASPNET2008/p/7292472.html https://www.tuic ...
- WPF MVVM UI分离之《交互与数据分离》 基础才是重中之重~delegate里的Invoke和BeginInvoke 将不确定变为确定系列~目录(“机器最能证明一切”) 爱上MVC3系列~全局异常处理与异常日志 基础才是重中之重~lock和monitor的区别 将不确定变成确定~我想监视我的对象,如果是某个值,就叫另一些方法自动运行 将不确定变成确定~LINQ DBML模型可以对
WPF MVVM UI分离之<交互与数据分离> 在我们使用WPF过程中,不可避免并且超级喜欢使用MVVM框架. 那么,使用MVVM的出发点是视觉与业务逻辑分离,即UI与数据分离 诸如下 ...
- 性能测试——记XX银行保全项目性能问题分析优化
记XX银行保全项目性能问题分析优化 数据库问题也许是大部分性能问题的关注点,但是JAVA应用与数据库交互的关节,JDBC 就像是我们人体的上半身跟下半身的腰椎,支持上半身,协调下半身运动的重要支撑点. ...
- asyncio与gevent并发性能测试
asyncio与gevent并发性能测试 在对网站进行扫描或者暴破时需要对网站进行高并发操作,然而requests+concurrent多线程性能上不太理想,了解到python用得比较多的并发库有as ...
- 9.2专项测试-Android性能测试黑盒分析-1
1. 专项测试 业务测试:面向新需求 回归测试:面向已交付需求 专项测试:面向非功能需求的各类质量唯独特征 表现 用户维度 技术维度 崩溃 crash,弱网 检测崩溃1.某个页面,因为研发处理不合适, ...
随机推荐
- Power BI FAQ
关于Power BI,最近一直想写点什么,但是也想不到写什么.直到前几天,有个朋友在qq加我,问了我好几个问题,我发现都是一些很有代表性的问题,所以都记录了下来,特意整理了一下分享出来,希望能帮到更多 ...
- [译]:Orchard入门——使用WebMatrix管理Orchard网站
原文链接:Working with Orchard in WebMatrix WebMatrix--微软一站式Web开发工具,包括网站的创建.编辑以及发布--不过现在微软更推荐VS code .Web ...
- iOS 线程间共享资源添加排它锁
#import "ViewController.h" @interface ViewController () @property(nonatomic,strong)NSThrea ...
- Sharepoint + Office Infopart + Quick Apps for Sharepoint搭建无纸化工作平台
项目背景: 某大型外企各分部通过互联网专线统一域环境,Exchange邮件系统,Sharepoint平台及依赖环境已经购买并搭建起来,Dell Quick app for Sharepoint已购卖并 ...
- React组件属性部类(propTypes)校验
React组件属性类型(propTypes)校验 Prop 验证 随着应用不断变大,保证组件被正确使用变得非常有用.为此我们引入propTypes.React.PropTypes 提供很多验证器 (v ...
- win10 install JDK&&JRE
重装系统后,安装的java环境没了,只能重装一下~~~~ 1.下载JDK 2.这里会安装两次,其中第一次为安装 JDK,第二次安装JRE,建议不要将这两个放在同一个文件夹. 3.配置环境变量 用鼠标右 ...
- MySql常用命令总结
转载:http://www.php100.com/html/webkaifa/database/Mysql/2009/0910/3288.html 1:使用SHOW语句找出在服务器上当前存在什么数据 ...
- C# XMPP客户端与openfire通信(Matrix Xmpp 授权破解教程)
如此著名的XMPP , 居然试过jabber-net, agsXmpp,matrix Xmpp, 无数多个例子, 居然没有一个能实现最简单的 发消息.收消息功能.好无语. 最后还是决定从商业产品 Ma ...
- 【最简单IOC容器实现】实现一个最简单的IOC容器
前面DebugLZQ的两篇博文: 浅谈IOC--说清楚IOC是什么 IoC Container Benchmark - Performance comparison 在浅谈IOC--说清楚IOC是什么 ...
- HDU2608-0 or 1(数论+找规律)
一,题意: 给定一个n,定义S(n)=T(1)+T(2)+T(3)+...+T(n),T(n)是n的所有因子之和,最后输出S(n)%2的值 (因子就是所有可以整除这个数的数,不包括这个数自身)二,思路 ...