vs2010 在函数级别设置优化
平时开发的时候,为了方便调试,visual studio 的Configuration 设置成Release。
同时为了事后调试,Optimization总是设置成Disabled。这样做是方便查看变量的数值。
但遇到计算密集的功能实现,优化关闭还是挺费时间的。
void calc(int nMax)
{
int nTotal = 0;
for (int index = 0;index < nMax;index++)
{
nTotal = 0;
for (int subIndex = index;subIndex < nMax+index;subIndex++ )
{
nTotal += subIndex;
}
}
}
最初我的想法是project的优化关闭,相关文件的优化打开,测试后发现没有什么作用。

参考visual studio的帮助后,发现可以针对函数进行优化。
这样做考虑其他方法依旧可以事后调试。
在函数前后增加 #pragma optimize即可
#pragma optimize( "gs", on )
void calc(int nMax)
{
int nTotal = 0;
for (int index = 0;index < nMax;index++)
{
nTotal = 0;
for (int subIndex = index;subIndex < nMax+index;subIndex++ )
{
nTotal += subIndex;
}
}
}
#pragma optimize( "gs", off )
经过测试,针对函数的优化,性能和project优化相当。
未优化前:0.67秒
优化后:0.00秒
这样以后事后调试还是很方便的。
测试环境:
ide:vs2010
项目:console
Configuration :Release。
Optimization:Disabled
实现代码:
#include "stdafx.h"
#include <Windows.h> #pragma optimize( "gs", on )
void calc(int nMax)
{
int nTotal = 0;
for (int index = 0;index < nMax;index++)
{
nTotal = 0;
for (int subIndex = index;subIndex < nMax+index;subIndex++ )
{
nTotal += subIndex;
}
}
}
#pragma optimize( "gs", off ) void retry(int nMin)
{
int nTry = 0;
nTry = nMin;
} int _tmain(int argc, _TCHAR* argv[])
{
LARGE_INTEGER freq = {0};
LARGE_INTEGER beginPerformanceCount = {0};
LARGE_INTEGER closePerformanceCount = {0}; QueryPerformanceFrequency(&freq); QueryPerformanceCounter(&beginPerformanceCount);
calc(10000);
QueryPerformanceCounter(&closePerformanceCount); retry(2020);
double delta_seconds = (double)(closePerformanceCount.QuadPart - beginPerformanceCount.QuadPart) / freq.QuadPart;
printf("%f",delta_seconds);
getchar();
return 0;
}
相关链接:
https://msdn.microsoft.com/en-us/library/chh3fb0k(v=vs.100).aspx
vs2010 在函数级别设置优化的更多相关文章
- 关于jquery中用函数来设置css样式
关于jquery中用函数来设置css样式 2016-12-21 23:27:55 1.jquery语法 $(selector).css(name,function(index,value)) name ...
- (转)js函数参数设置默认值
原文:http://www.cnblogs.com/RightDear/archive/2013/06/26/3156652.html js函数参数设置默认值 php有个很方便的用法是在定义函数时 ...
- 关于在II7里面出现:当前信任级别设置不支持调试 的解决方法
问题得到解决,把查到的方案贴出来: 在windows server 2008里面做网站,遇到当前信任级别设置不支持调试. 这个问题,在网上找了不少,但是没有关于IIS7 的. 突然想起来IIS7里面A ...
- event级别设置Resumable Space Allocation
每日一贴,今天的内容关键字为event级别 设置Resumable Space Allocation 设置Resumable Space Alloc ...
- (转)log4j日志级别设置成DEBUG时输出Html代码等问题:
log4j日志级别设置成DEBUG时输出Html代码等问题: 问题: log4j日志级别设置成DEBUG时会输出很多信息,包括一些Html代码 解决方案: log4j的控制是树形,所以在log4j.p ...
- VMware12 安装 Mac OS 10.12 步骤及设置优化教程
最近公司要开发苹果的ARKit应用,但是项目组穷啊,只有美工用着一台苹果本本,所以肯定不能老用他的电脑,效率低还老打扰他.所以我就想着用虚拟机整,毕竟玩了N年的虚拟机了,应该是没啥问题的.所以就开始各 ...
- 误把Linux运行级别设置为6后的解决方法【转】
本文转载自:http://www.wuji8.com/meta/841011126.html 误把Linux运行级别设置为6后的解决方法 我们知道,Linux有7个运行级别,而运行级别设置为6 ...
- MySQL-事务隔离级别设置
加锁研究:http://www.cnblogs.com/JohnABC/p/4377529.html 先了解下 第一类丢失更新.脏读.不可重复读.幻读.第二类丢失更新 第一类丢失更新 撤销一个事务时, ...
- Autocad 2010+ObjectArx 2010 +Vs2010 的.net 开发设置(转)
Autocad 2010+ObjectArx 2010 +Vs2010 的.net 开发设置 分类: ObjectArx.net2010-09-14 16:52 4203人阅读 评论(7) 收藏 举报 ...
随机推荐
- Quartz2D绘图 及实例:下载进度
基础绘图: C语言coregraphics框架 绘制一条线:(不常用) UIBezierPath 路径画图 1.线段 线段2: 2.三角形 填充颜色 如果边框颜色和填充颜色都为红色:[[UICol ...
- NOIP2006题解
传送门 考查题型 模拟 dp T1 能量项链 题目描述 在Mars星球上,每个Mars人都随身佩带着一串能量项链.在项链上有N颗能量珠.能量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数.并 ...
- Balancing Act(树的重心)
传送门 Balancing Act Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 14070 Accepted: 593 ...
- bzoj1017 [JSOI2008]魔兽地图DotR——DP
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1017 好难想的状态啊!f[i][j][k]表示i号物品有j个向上贡献,一共花了k钱的最大力量 ...
- 打印斐波那契(Fibonacci)数列
需求:打印 Fibonacci数列 思路: 当前项的值等于前两项数值的和 F=(F-1)+F(F-2) 样例: 输入:10 输出:1 1 2 3 5 8 13 21 34 55 辗转相加法实现 #in ...
- 如何 Xcode 开发工具里安装一个空的项目末模板
很多朋友因为Xcode升级取消了空工程模板而发愁 今天给大家推荐一个简单方便的方法,导入空工程模板 对于 xcode7 来说可以使用下面的方法添加空模板.建议在升级的时候,不要下载beta版,最好下 ...
- UVaLive 6585 && Gym 100299F Draughts (暴力+回溯)
题意:给定一个 10*10的矩阵,每一个W可以跳过一个B向对角走到#并把B吃掉,并且可以一直跳直到不能动为止,现在是W走的时候,问你最多吃几个B. 析:直接暴力+回溯,深搜就好. 代码如下: #pra ...
- Spring Cloud Alibaba基础教程:Sentinel Dashboard中修改规则同步到Nacos
上一篇我们介绍了如何通过改造Sentinel Dashboard来实现修改规则之后自动同步到Apollo.下面通过这篇,详细介绍当使用Nacos作为配置中心之后,如何实现Sentinel Dashbo ...
- (水题)洛谷 - P1618 - 三连击(升级版)
https://www.luogu.org/problemnew/show/P1618 枚举所有的A,最多 $A_9^3$ ,然后生成B和C(先判断是不是能够生成),判断有没有重复数字(比之前那个优雅 ...
- hdoj1078【DP·记忆化搜索】
还是满水的一道题目吧...这个一看肯定要搜索了..然后又是这么DP,那就是记忆化搜索了...走K步,下一步要比他多...很好写啊/// #include<iostream> #includ ...