使用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.pswp.cn/news/397261.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/397261.shtml
英文地址,請注明出處:http://en.pswp.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;但保存內…