带你玩转Visual Studio——性能分析与优化

本文介绍了如何利用Visual Studio的性能分析工具找到并优化代码的性能瓶颈。通过实际案例,详细阐述了CPU Usage、GPU Usage、Memory Usage和Performance Wizard等工具的使用,并通过调整代码实现性能提升。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

找到性能瓶颈

二八法则适合很多事物:最重要的只占其中一小部分,约20%,其余80%的尽管是多数,却是次要的。在程序代码中也是一样,决定应用性能的就那20%的代码(甚至更少)。因此优化实践中,我们将精力集中优化那20%最耗时的代码上,这那20%的代码就是程序的性能瓶颈,主要针对这部分代码进行优化。

常见优化方法:

这部分我就不写,直接参见《性能调优攻略》,因为我没有自信能写出比这更好的。

如果不想这么深入地了解,看看《C++程序常见的性能调优方式》这篇文章也是不错的。

应用案例

我们以一个应用案例来讲解,以至于不会那么乏味难懂。

我们知道能被1和它本身整除的整数叫质数,假设1到任意整数N的和为Sn(Sn=1+2+3+…+n)。现在要求10000100000之间所有质数和Sn

可能你会觉得这问题不是So Easy吗!都不用脑袋想,咣当一下就把代码写完了,代码如下:

#include <iostream>
#include <windows.h>

// 定义64位整形
typedef __int64 int64_t;

// 获取系统的当前时间,单位微秒(us)
int64_t GetSysTimeMicros()
{
    // 从1601年1月1日0:0:0:000到1970年1月1日0:0:0:000的时间(单位100ns)
#define EPOCHFILETIME   (116444736000000000UL)
    FILETIME ft;
    LARGE_INTEGER li;
    int64_t tt = 0;
    GetSystemTimeAsFileTime(&ft);
    li.LowPart = ft.dwLowDateTime;
    li.HighPart = ft.dwHighDateTime;
    // 从1970年1月1日0:0:0:000到现在的微秒数(UTC时间)
    tt = (li.QuadPart - EPOCHFILETIME) / 10;
    return tt;
}

// 计算1到n之间所有整数的和
int64_t CalculateSum(int n)
{
    if (n < 0)
    {
        return -1;
    }

    int64_t sum = 0;
    for (int i = 0; i < n; i++)
    {
        sum += i;
    }
    return sum;
}

// 判断整数n是否为质数
bool IsPrime(int n)
{
    if (n < 2)
    {
        return false;
    }

    for (int i = 2; i < n; i++)
    {
        if (n %i == 0)
        {
            return false;
        }
    }

    return true;
}

 

void main()
{
    int64_t startTime = GetSysTimeMicros();
    int count = 0;
    int64_t sum = 0;
    for (int i = 10000; i <= 100000; i++)
    {
        if (IsPrime(i))
        {
            sum = CalculateSum(i);
            std::cout << sum << "\t
Visual Studio中创建一个新项目的步骤如下: 1. 打开Visual Studio后,点击菜单栏上的 "文件"。 2. 在下拉菜单中选择 "新建",然后选择 "项目"。 3. 弹出 "新建项目" 对话框后,选择你想要创建的项目类型。例如,选择 "Win32控制台应用程序"。 4. 在 "项目名称" 栏中输入你想要给项目起的名字。 5. 指定项目的保存路径。 6. 点击 "确定" 完成项目的创建。 这样,你就成功创建了一个新的Visual Studio项目。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [C++编程:Visual Studio启动之后如何创建项目](https://blog.csdn.net/zjjcchina/article/details/130744122)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [玩转Visual Studio——你新建一个工程](https://blog.csdn.net/luoweifu/article/details/48692267)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值