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) 收藏 举报 ...
随机推荐
- 获取cookie值
function get_cookie(Name) { var search = Name + "=" var returnvalue = ""; if (do ...
- 最小生成树,并查集的思想 nyoj1239
#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; int ...
- JavaScript-Tool:Uploadify-un
ylbtech-JavaScript-Tool:Uploadify 1.返回顶部 2.返回顶部 3.返回顶部 4.返回顶部 5.返回顶部 0. http://www.uploadify ...
- 【旧文章搬运】分析了一下360安全卫士的HOOK
原文发表于百度空间及看雪论坛,2009-10-08 看雪论坛地址:https://bbs.pediy.com/thread-99128.htm 看时间,09年的国庆节基本上就搞这玩意儿了...==== ...
- 【旧文章搬运】ZwQuerySystemInformation枚举内核模块及简单应用
原文发表于百度空间,2008-10-24========================================================================== 简单说,即 ...
- Rational Rose 2007 &Rational Rose 2003 下载及破解方法和汉化文件下载
Rational Rose 2007 &Rational Rose 2003 下载及破解方法和汉化文件下载 分类: 其它2010-08-10 13:28 12926人阅读 评论(4) 收藏 举 ...
- TRACE 学习
TRACE 宏有点象我们以前在C语言中用的Printf函数,使程序在运行过程中输出一些调试信息,使我们能了解程序的一些状态.在Output中可以查看到结果. 但有一点不同的是:TRACE 宏只 ...
- Button Style
Button Style BS_3STATE 与复选框一样本样式按钮可被单击变暗.变暗状态通常用于指示本样式的按键正处于禁用状态. BS_AUTO3STATE 与三状态的复选框一样当用户选中它本按钮样 ...
- atof和atoi
atof:将字串转换成浮点型数 表头文件 #include <stdlib.h> 函数说明 atof()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而 ...
- bzoj 4044: [Cerc2014] Virus synthesis【回文自动机+dp】
建回文自动机,注意到一个回文串是可以通过一个长度小于等于这个串长度的一半的回文串添上一些字符然后复制得到的,也就是在自动机上向fa走,相当于treedp 每次都走显然会T,记录一个up,指向祖先中最下 ...