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.某个页面,因为研发处理不合适, ...
随机推荐
- 从Eclipse迁移到Android Studio碰到的问题记录
背景: 1. 一直在做.NET的开发,工作之余,学习了一下Android开发,写了一些Demo,当时用的Eclipse开发工具:这两天,刚好项目不是很忙,就打算把之前写的Demo,迁移到Android ...
- win7安装Linux
1. 新建分区必须为FAT32 (不是绿色的可用分区,只要linux安装时可以识别) 大小大于8G 2.打开ISO, 把casper文件夹下的initrd.lz vmlinuz 两个文件提取到C盘下 ...
- Mybatis 学习笔记1 不整合Spring的方式使用mybatis
两种方式都包含了: package com.test.mybatis; import java.util.List; import org.apache.ibatis.io.Resources; im ...
- XSS跨站点脚本攻击
XSS攻击:跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS. 以下为Jav ...
- 【leetcode】Simplify Path
题目简述: Given an absolute path for a file (Unix-style), simplify it. For example, path = "/home/& ...
- HTML5中的对象的拖拽
拖拽: draggable="true"页面上就能实现拖拽事件: ondragstart 拖拽开始事件 ondrag 拖拽中 ondragend 拖拽结束事件 投放区事件: ond ...
- jQuery插件(拖拽)
拖曳插件draggable的功能是拖动被绑定的元素,当这个jQuery UI插件与元素绑定后,可以通过调用draggable()方法,实现各种拖曳元素的效果,调用格式如下: $(selector). ...
- inner join on 和 where = 的区别!
请看下面两条语句:select * from table1 inner join table2 on table1.id = table2.idselect * from table1,table2 ...
- Python for Infomatics 第12章 网络编程一(译)
注:文章原文为Dr. Charles Severance 的 <Python for Informatics>.文中代码用3.4版改写,并在本机测试通过. 本书中的许多例子关注的是读取文件 ...
- java的poi技术读,写Excel[2003-2007,2010]
在上一篇blog:java的poi技术读取Excel[2003-2007,2010] 中介绍了关于java中的poi技术读取excel的相关操作 读取excel和MySQL相关: java的poi技术 ...