使用vs自带的性能诊断工具

visual studio是个强大的集成开发环境,内置了程序性能诊断工具。下面通过两段代码进行介绍。

 

static void Main( string[] args){Test1();Test2();Console.ReadKey();}protected static void Test1(){Stopwatch sp = new Stopwatch();sp.Start();string str = "" ;for (int i = 0; i < 100; i++){for (int j = 0; j < 100; j++){str += "string append1= " ;str += i.ToString() + " ";str += "string append2= " ;str += j.ToString() + " ";}}sp.Stop();Console.WriteLine("Test1 Time={0}" , sp.Elapsed.ToString());}protected static void Test2(){Stopwatch sp = new Stopwatch();sp.Start();StringBuilder str = new StringBuilder();for (int i = 0; i < 100; i++){for (int j = 0; j < 100; j++){str.Append( "string append1= " );str.Append(i.ToString());str.Append( "string append2=" );str.Append(j.ToString());}}sp.Stop();Console.WriteLine("Test2 Time={0}" , sp.Elapsed.ToString());}
View Code


先运行一下查看运行结果如下:

两个函数实现的功能都一样,实现方式不一样,效率却完全不一样,下面通过vs自带的性能分析工具进行分析,可以分析出程序对cpu使用率和内存使用情况等,
本次以cpu测试为例。
注:本次测试用的是vs2013,在vs2010里为启动性能向导。




 

从以上分析结果可以得出对函数内部具体代码的的cpu使用情况,由此在实际开发中,可以针对某个代码单独拿出进行分析,以找出消耗cpu的地方,
加以改进从而提高程序的效率。
性能诊断工具还有不少,如微软的CLR Profiler,还有WinDbg等,后续的博客会对这两个工具作介绍。

 

转载于:https://www.cnblogs.com/kungge/p/4962339.html

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

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

相关文章

Avg_row_length是怎么计算的?

通过一下命令我们可以获取表的使用情况&#xff1a; rootmysql 05:49:33>show table status like tbname\G 结果&#xff1a; *************************** 1. row ***************************Name: tbnameEngine: InnoDBVersion: 10Row_format: CompactRows: 3425Avg_row_…

1.用代码演示String类中的以下方法的用法 (2018.08.09作业)

1 public class Test_001 {2 3 public static void main(String[] args) {4 String a "德玛西亚!";5 String b "";6 String c "aBcDefG";7 String d " 123321 ";8 System.out.println…

【Java基础】List迭代并修改时出现的ConcurrentModificationException问题

现在有一个需求&#xff0c;要遍历一个List&#xff0c;假设List里面存储的是String对象&#xff0c;然后该需求事判断里面如果有某个对象&#xff0c;则添加一个新的对象进去。自然&#xff0c;我们得出下面的代码&#xff1a; import java.util.ArrayList; import java.util.…

tp5框架原理详解_TP5框架安全机制实例分析

本文实例讲述了TP5框架安全机制。分享给大家供大家参考&#xff0c;具体如下&#xff1a;防止sql注入1、查询条件尽量使用数组方式&#xff0c;具体如下&#xff1a;$wheres array();$wheres[account] $account;$wheres[password] $password;$User->where($wheres)->f…

碧蓝航线8.20服务器维护,碧蓝航线半人马来袭 8.20更新公告

半人马来袭&#xff01;碧蓝航线将于8月20日9:00~11:00对安卓、iOS全港区进行为期2小时的改造建设&#xff0c;维护后将开启限时活动「盛夏的半人马座」&#xff0c;一起来看看吧。一、内容新增1.开启限时活动「盛夏的半人马座」&#xff0c;活动时间8月20日维护后~8月30日&…

MySQL安装与设置

下载zip&#xff0c;配置 1&#xff0c;系统变量添加&#xff1a;...\mysql-5.7.10-winx64,环境变量添加&#xff1a;%MYSQL_HOME%\bin 2&#xff0c;修改MySQL.ini basedir&#xff08;同系统变量路径&#xff09; datadir&#xff08;系统变量路径\data&#xff09; port 33…

后端把Long类型的数据传给前端,前端可能会出现精度丢失的情况,以及解决方案...

后端把Long类型的数据传给前端&#xff0c;前端可能会出现精度丢失的情况。例如&#xff1a;201511200001725439这样一个Long类型的整数&#xff0c;传给前端后会变成201511200001725440。 解决方法&#xff1a; 方法一&#xff1a;在后台将这个Long类型的字段转换成String类型…

传奇服务端各文件用途说明

MirServer(服务器目录)├DBServer(数据库服务端)│ ├Connection│ ├FDB(人物数据库&#xff0c;数据库格式为传奇自定义格式)│ ├Log(角色选择服务端日志)│ ├!AddrTable.txt(IP地址配置)│ ├!IdList.txt(交费账号列表&#xff0c;!Setup.exe中ServiceModeTRUE时起作用)│…

认证服务器协议,基于口令的客户端/服务器认证协议

摘要&#xff1a;Identity authentication is the precondition for secure communication between the client and the server. Kim and Chung presented a mutual authentication scheme for client/server scene. The authors realized the mutual authentication with the …

印章仿制工具_仿制图章工具怎么用

在日常生活中&#xff0c;有时候我们需要帐单表格上的文字&#xff0c;用PS的防制图章工具&#xff0c;可以十分方便快捷的处理出来。我想最恨学霸的就是学渣了吧&#xff0c;因为他们每次考试成绩都是科科满分。是家长嘴里别人家的孩子。那么今天就教学渣一个神技能&#xff0…

java日期的运用(DateUtils工具类)

public static void main(String[] args) { Date now new Date(); SimpleDateFormat sd new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); System.out.println("------当前时间--------&#xff1a;" sd.format(now)); //年: 加、减操作 System.out.…

1、rbac权限组件-初识, 中间件校验1

1、权限组件rbac 1、什么是权限 1 项目与应用 2 什么是权限&#xff1f; 一个包含正则表达式url就是一个权限 who what how ---------->True or Flase 2、版本1&#xff1a;用户表与权限url表 对应关系 # 版本1UserInforname pwdpermissionmodels.manytomany(Permissi…

html中视频播放完后可以跳到另一个html

2&#xff1a;jquery 的例子如下$(document).ready(function(){$("#audioId").bind(ended, function(){location.href"other.html";});});转载于:https://www.cnblogs.com/mailan/p/4972123.html

实现打印异常日志_老生常谈SpringAop日志收集与处理做的工具包

场景 :使用Spring Aop拦截参数日志目前大部分做法都基本上大同小异,不想日后每个项目工程都写一份这样的Aop拦截处理日志的代码,甚至代码侵入。我想知道一些相对重要的请求方法的请求参数,响应参数,请求头,以及内部耗时,方法是成功还是失败等等信息。发生错误时我也不知道执行到…

服务器128g内存显示64g,64g内存服务器

64g内存服务器 内容精选换一换华为云帮助中心&#xff0c;为用户提供产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题、视频帮助等技术文档&#xff0c;帮助您快速上手使用华为云服务。接口名称GetCloudPhoneServerModelsGetCloudPhoneServerModels功能描…

[LeetCode]--71. Simplify Path

Given an absolute path for a file (Unix-style), simplify it. For example, path “/home/”, > “/home” path “/a/./b/../../c/”, > “/c” click to show corner cases. Corner Cases: Did you consider the case where path “/../”? In this case, …

IOPLL动态重配

连接 Avalon -MM接口 mgmt_waitrequest:当 PLL 重配置进程开始后&#xff0c;此端口变高并在 PLL 重配置期间保持高电平。 PLL 重配置进程完成后&#xff0c;此端口变低。 I/O PLL重配写操作步骤&#xff1a; 1、 为mgmt_address和mgmt_writedata设置有效值&#xff0c;并且…

android 的属性动画

public void zyluoti(View v){ValueAnimator animator ValueAnimator.ofFloat(0,screenHeight - mImageView.getHeight());//设置属性动画的值&#xff0c;值的类型为floatanimator.setDuration(1000);//动画的作用时间animator.setTarget(mImageView);//设置动画的作用目标an…

qt中如何模拟按钮点击_如何快速在 Shopify 中加入按钮

假如你会 CSS , HTML , JS 三件套&#xff0c;那么修改 Shopify 代码将不会太难&#xff08;毕竟一个模板中的代码量还是挺多的&#xff0c;除非深入研究了代码&#xff0c;不然改起来还是会比较麻烦的&#xff09;。但挺多玩家是不会这三件套的&#xff0c;修改代码来达到添加…

clear ,refresh,free

itab 即是内表也是工作区的情况下&#xff0c;即with header line. clear itab&#xff0c;仅清空HEADER LINE&#xff0c;对内表数据存储空间不影响&#xff0c;保留内存区。 refresh itab&#xff0c;不清空HEADER LINE&#xff0c;清除内表数据存储空间&#xff0c;但保存内…