对于大批量赋值功能,使用if判断是否能提高性能
场景:
如果对某变量进行赋值,是否需要判断一下,如果相等就不用赋值,这样会不会提高性能。
代码如下:
string a = "";
string b = ""; long x1=, x2=, x3=; Stopwatch w = new Stopwatch(); for (int x = ; x < ; x++)
{
w.Reset();
w.Start();
for (int i = ; i < ; i++)
{
a = b;
}
w.Stop();
x1 += w.ElapsedMilliseconds; w.Reset();
w.Start();
for (int i = ; i < ; i++)
{
if(a != b)
a = b;
}
w.Stop();
x2 += w.ElapsedMilliseconds; w.Start();
for (int i = ; i < ; i++)
{
if (!a.Equals(b))
a = b;
}
w.Stop();
x3 += w.ElapsedMilliseconds;
} System.Diagnostics.Debug.WriteLine(String.Format("直接赋值耗时:{0}ms", x1));
System.Diagnostics.Debug.WriteLine(String.Format("判断赋值耗时:{0}ms", x2));
System.Diagnostics.Debug.WriteLine(String.Format("判断赋值2耗时:{0}ms", x3));
运行结果:
直接赋值耗时:3294ms
判断赋值耗时:5955ms
判断赋值2耗时:18244ms
结论:
判断后严重影响性能,所以无需判断,直接赋值。
对于大批量赋值功能,使用if判断是否能提高性能的更多相关文章
- MySQL 笔记整理(7) --行锁功能:怎么减少行锁对性能的影响?
笔记记录自林晓斌(丁奇)老师的<MySQL实战45讲> 7) --行锁功能:怎么减少行锁对性能的影响? MySQL的行锁是在引擎层由各个引擎自己实现的.因此,并不是所有的引擎都支持行锁,如 ...
- 2019-11-29-C#-字典-Dictionary-的-TryGetValue-与先判断-ContainsKey-然后-Get-的性能对比
原文:2019-11-29-C#-字典-Dictionary-的-TryGetValue-与先判断-ContainsKey-然后-Get-的性能对比 title author date CreateT ...
- Java基础知识强化72:正则表达式之判断功能(手机号码判断 和 校验邮箱)
1. 判断功能: 使用了String类的matches方法,如下: public boolean matches(String regex): 2. 判断手机号码的案例: package cn.it ...
- MyBatis参数为Integer型并赋值为0时判断失误的问题解决
mybatis.xml中有if判断条件判断参数不为空时,赋值为0的Integer参数被MyBatis判断为空,因此不执行<if test="param != null and para ...
- iOS 设备定位功能可用的判断
if ([CLLocationManager locationServicesEnabled] && ([CLLocationManager authorizationStatus] ...
- 获取Win和Linux系统启动时间,类似uptime功能,用于判断是否修改过系统时间
目录 前言 测试代码 Win测试 Linux测试 总结 前言 有时候需要判断系统是否有修改过时间,最简单的方法就是获取当前时间A,然后sleep X秒,然后获取 时间B,如果 时间B - 时间A ≠ ...
- jquery ajax 赋值问题, 后面程序判断逻辑用
添加async:false; 像 $.get() 等是没有async参数的, 所以需要用到如下 $.ajaxSetup({ async : false //这个意思是等这个ajax有了返回值后才会执行 ...
- GitHub Java项目推荐|功能丰富的 Java 工具包|提高开发效率
GitHub Java项目推荐|功能丰富的 Java 工具包|提高开发效率 功能丰富的 Java 工具包.它帮助我们实现了常用的工具方法,从而减少代码的体积,提高开发效率.该项目最初是作者工作项目中的 ...
- ES 大批量写入提高性能的策略
1.用bulk批量写入 你如果要往es里面灌入数据的话,那么根据你的业务场景来,如果你的业务场景可以支持让你将一批数据聚合起来,一次性写入es,那么就尽量采用bulk的方式,每次批量写个几百条这样子. ...
随机推荐
- mysql 完整性约束
mysql 完整性约束 数据的完整性概述根据完整性实施的方法将完整性约束分为四类:1.实体完整性 实体完整性的实现:通过在表中设置主键约束.唯一约束或标识列来实现 主键约束:应用于表列的一个约束 用法 ...
- jquery的checkbox 全选和全不选
今天写了一个checkbox的全选和全不选的功能: var check_all=function(){ if(this.checked){ //alert($(".adv_check_num ...
- [SimHash] find the percentage of similarity between two given data
SimHash algorithm, introduced by Charikarand is patented by Google. Simhash 5 steps: Tokenize, Hash, ...
- Membership基本用法
MemberShip简介: Membership是Asp.Net框架,用于管理网站的用户Membership,角色Roles以及配置信息Profile. System.Web.Security.Mem ...
- 不同编程语言打印“元旦快乐!"
javascript: document.write("元旦快乐!"+"<br/>"); PHP: <?php echo "元旦快乐 ...
- Visibility属性控制元素的显示和隐藏
w3cschool案例: <!DOCTYPE html> <html> <body> <p id="p1">这是一段文本.</ ...
- spring && Cobertura && maven &&junit 单元测试以及测试覆盖率
1. 目的: junit 单元测试,Cobertura 测试覆盖率报告 项目目录结构 2. maven 配置 <project xmlns= ...
- Python isinstance() type()
isinstance(object, classinfo) 判断实例是否是这个类或者object是变量 classinfo 是类型(tuple,dict,int,float,long...)(包括自定 ...
- PHP 数组转码
/** * 数组转码 * @param array $arr 要转码的数组 * @param string $in_charset 输入的字符集 * @param string $out_charse ...
- 初级文法课程-第1课:名词的种类/名词的数/名词的所有格/冠词;be 动词、一般动词的现在式
January 31, 2016 Unit 1 名词和冠词 名词:n (noun) 作用:当主词.补语.受词 1.名词的种类 [单数和复数--I like dogs] 普通名词:book,pen ...