关于性能比较的应用误区

简介:

今天周末,就不写太长的文章了,刚不小心看了篇性能比较的文章,有感而就写了此篇。

 

这年头,好多人都对性能比较产生了兴趣,然后就开始写比较示例,之后就得出了一个正确但误导新手的误区。

 

本文不是性能比较文章,只说说观点,没有具体的测试数据,相关的性能比较文篇,园子里一搜,都是一堆一堆的。

 

这里举较常见的说:

1:string和StringBuilder

2:反射和Emit

3:==和String.Equals

 

通常比较都怎么比?

复制代码

1:写个测试示例

2:for它个10万百万次

3:看输出时间

4:得出结论

复制代码

 

结论与“推荐”

后者速度比前者速度快了N倍,然后就开始“推荐”使用后者。

很多学者爱看比较性文章,然而内容他不看,就看“推荐”两字。

然后就盲目“推荐”给自己和周围的人士。

 

广泛“推荐”及人推人之后的现象

复制代码

于是现在看很多人的代码,都喜欢:

动不动就来个Stringbuilder。

动不动就来下Emit。

动不动就来次String.Equals。

复制代码

 

看文章请认准性能临界点

复制代码

什么是临界点,下面是一个精略的估算次数:

600次循环之前,string比StringBuilder快。

500次循环之前,反射比Emit快。

90000000的循环,才换来:1.6392576秒和1.1163117秒间46.675%的性能差别。

复制代码

 

应用应该看场景

别动不动就在StringBuiler,或以砖家的身份还在嫌人家的string+="xxx"慢。

别动不动就在Emit,虽然写Emit是个相对难以理解和编写的。

别动不动就在String.Equals,难道你的代码真会循环9千万次?

 

简单说句是什么?

认准你的代码的应用场景,是否会产生大于N百次的临界点,再决定使用哪个。

 

再简单?

复制代码

通常你的string循环不会超过600次,老实的用string+=“”。

通常你的List<T>的集合不会超过500条,老实的用反射。

通常你的==没什么问题,该用就用。

其它提示:object对象比较时,记得该用object.Equals。

复制代码

 

本文就到此结束了,欢迎有感者留言。

 

附加:

最近发布了:CYQ.Data 数据框架 V4.5版本,欢迎收看与使用。

版权声明:本文原创发表于博客园,作者为路过秋天,原文链接:

http://www.cnblogs.com/cyq1162/archive/2011/05/08/2040294.html

相关文章
|
7月前
|
运维 监控 架构师
03-揭秘大厂性能方案的奥秘!(上)
03-揭秘大厂性能方案的奥秘!
51 0
|
7月前
|
运维 监控 Java
03-揭秘大厂性能方案的奥秘!(下)
03-揭秘大厂性能方案的奥秘!
43 0
|
10月前
|
SQL 缓存 监控
掌握了这些优化技巧,再也不用担心接口性能上不去了!
优化接口性能对每个后端开发同学来说见惯不惯了,也是一项必备的技能,因为我们平时开发中都会对外提供接口,性能差的话,功能多少会有影响。
|
10月前
|
缓存 负载均衡 固态存储
MySQL优化心得:提升性能的关键步骤
MySQL作为最常用的关系型数据库管理系统之一,优化性能是每个开发者和管理员必须掌握的技能。
120 0
|
11月前
|
SQL 存储 缓存
我们常说的数据库优化,可以从哪些维度入手?
我们常说的数据库优化,可以从哪些维度入手?
102 0
|
网络协议 测试技术
loadrunner 场景设计-学习笔记之性能误区
loadrunner 场景设计-学习笔记之性能误区
59 0
|
缓存 负载均衡 测试技术
到底什么级别才算是高并发
到底什么级别才算是高并发
1028 0
|
测试技术 数据库
|
存储 缓存 负载均衡
C++高并发场景下读多写少的优化方案
C++高并发场景下读多写少的优化方案 述 一谈到高并发的优化方案,往往能想到模块水平拆分、数据库读写分离、分库分表,加缓存、加mq等,这些都是从系统架构上解决。单模块作为系统的组成单元,其性能好坏也能很大的影响整体性能,本文从单模块下读多写少的场景出发,探讨其解决方案,以其更好的实现高并发。 不同的业务场景,读和写的频率各有侧重,有两种常见的业务场景: 读多写少:典型场景如广告检索端、白名单更新维护、loadbalancer 读少写多:典型场景如qps统计 本文针对读多写少(也称一写多读)场景下遇到的问题进行分析,并探讨一种合适的解决方案。
570 0
C++高并发场景下读多写少的优化方案
|
缓存 负载均衡 搜索推荐
到底什么级别才算是高并发?
写这个话题是因为我对搜索引擎给我的答案很不满意,然后决定把思考的一些东西分享出来,希望可以大家彼此讨论下。