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.某个页面,因为研发处理不合适, ...
随机推荐
- Linux yum配置文件详解
说明:经过网上抄袭和自己的总结加实验,非常详细,可留作参考. yum的配置一般有两种方式: 一种是直接配置/etc目录下的yum.conf文件, 另外一种是在/etc/yum.repos.d目录下 ...
- myeclipse eclipse 使用git插件访问github 的解决方案
具体的步骤很多帖子都有写,这里不再赘述,需要说明的一点,git插件的版本很重要,在官网上下载的最新版本在MyEclipse8.5,MyEclipse9.1,MyEclipse10上面都没有成功. 这里 ...
- ExtJS 中自定义类
首先我们来看一看在Javascript中,是怎样自定义类的: var Person = function (name, age) { this.Name = ""; this.Ag ...
- iOS NSDate本地化
1. NSDateFormatter *outputFormatter = [[NSDateFormatter alloc] init]; [outputFormatter setLocale:[NS ...
- CocoaPods安装和使用
CocoaPods是iOS最常用的第三方类库管理工具,绝大部分有名的开源类库都支持CocoaPods. CocoaPods是用Ruby实现的,要想使用它首先需要有Ruby的环境.幸运的是OS X系统默 ...
- Spring任务调度之Spring-Task
一.前言 上面两篇介绍了在Spring 中使用Timer与Quartz,本篇将介绍Spring3.0以后自主开发的定时任务工具,spring task,可以将它比作一个轻量级的Quartz,而且使用起 ...
- 团队Git工作流总结
为什么使用Git “svn用了这么多年都好好的,为啥折腾搞Git?” “Git一点都不好用,提交个代码都提交不上去!” “Git这么复杂,命令多到记不住,而且完全用不到.哪有svn简单好用?” 推 ...
- Leetcode Divide Two Integers
Divide two integers without using multiplication, division and mod operator. 不用乘.除.求余操作,返回两整数相除的结果,结 ...
- 搭建centos测试环境:window安装xshell,WinSCP 。 centos安装jdk tomcat
通过ssh实现远程访问linux系统: 由于xshell 连接centos,需要centos开启ssh服务.所以先启动SSH服务,没有ssh需要先安装. 1 . 查看SSH是否安装命令:rpm -qa ...
- 双系统win+ubuntu无法访问win的盘符
1.打开终端:如果没有安装ntfs-3g就要安装: sudo apt-get install ntfs-3g 2.修复挂载错误的相应的分区: sudo ntfsfix /dev/sda(×) (×)取 ...