谈谈一直被开发者们过于在乎的性能问题

简介:

软件开发者最初为了做出某种功能而努力着。

  当有一天,开发者们掌握了开发的门道,实现功能已经家常便饭了。

  于是人们开始考虑更多问题,性能就是一个问题。

  通常2-4年工作经验的开发者会很纠结这个问题,但由于基础参差不齐,对性能的理解也大不相同。

  那些年也许我们过于在乎性能问题了。

误区一:O/RM工具影响性能

  发现很多人喜欢拿O/RM工具讨论性能,害怕引入ORM工具以后带来损失性能的问题,

  不过据我所知目前一些主流的ORM工具性能都半斤八两,ORM工具之间的比较不是性能问题,而是使用习惯的问题。

  ORM与原生ADO.NET比较,肯定会损失一定的性能,但是带来了提高开发效率的优势。

  据我所知,很多同行做着的OA、ERP什么的系统用户数量都不多,

  过于计较性能问题,那就是拿5%不到的特殊情况,拒绝大多数情况提高开发效率。

  没有人说用了ORM就一定要每个地方都用ORM到底。

 误区二:存储过程可提高性能

  采用存储过程本身没有什么问题,过于频繁地用存储过程,调试就会比较烦。

  1、程序里加断点,然后变量复制到存储过程里加断点调试。

  2、过于依赖存储过程,数据库里包含业务逻辑,业务逻辑就分散在程序与数据库,代码可读性损失。

  3、调用存储过程的确让很多SQL语句变成了一个存储过程名和参数,减少了网络传输,但很多情况下不需要这点性能。

  4、业务逻辑都写在存储过程里了,用面向对象语言的话就当做面向过程语言用了,对开发功能复杂的项目比较不利。

误区三:大数据性能问题

  只要接触到几百万或者几千万就认为是大数据,有些人甚至以为MSSQLSERVER数据库碰到千万级的就得挂了。

  其实不然,如果每个月以百万级的数据增长,那么对查询而言这些都是小数据,利用分区与查询约束还是比较容易解决的。

  而用同样的方法,MSSQLSERVER也能处理超越千万级的数据。

  数据库真正的性能问题在哪里?

  真正的性能问题从宏观上讲我认为是数据库设计问题,微观上则是SQL调优。

总结

  不该以性能为理由拒绝ORM工具,也不该滥用存储过程。

  关注性能从设计阶段开始,不可过于纠结性能问题而损失开发效率。


原文发布时间为:2018-06-7

本文来自云栖社区合作伙伴“IT168”,了解相关信息可以关注“IT168”。

相关文章
|
18天前
|
开发框架 缓存 安全
说一说你在移动应用开发中遇到的最大挑战是什么,你是如何解决的?
【4月更文挑战第1天】移动应用开发挑战包括设备兼容性、性能、网络连接、UI/UX设计、安全和用户留存。解决策略涉及跨平台框架、性能分析、离线功能、用户研究、安全编码及营销策略。通过这些方法,开发者能应对挑战,打造优质应用。
说一说你在移动应用开发中遇到的最大挑战是什么,你是如何解决的?
|
21天前
|
存储 缓存 监控
【分布式技术专题】「缓存解决方案」一文带领你好好认识一下企业级别的缓存技术解决方案的运作原理和开发实战(场景问题分析+性能影响因素)
【分布式技术专题】「缓存解决方案」一文带领你好好认识一下企业级别的缓存技术解决方案的运作原理和开发实战(场景问题分析+性能影响因素)
32 0
|
9月前
|
设计模式 架构师 Java
程序员必修课:阿里性能优化全解终开源!设计+代码+JVM三飞
性能优化可以说是我们程序员的必修课,如果你想要跳出CRUD的苦海,成为一个更“高级”的程序员的话,性能优化这一关你是无论无何都要去面对的。为了提升系统性能,开发人员可以从系统的各个角度和层次对系统进行优化。除了最常见的代码优化外,在软件架构上、JVM虚拟机层、数据库以及操作系统层面都可以通过各种手段进行调优,从而在整体上提升系统的性能。
|
11月前
|
C语言
如何更好地刷题?谈谈我的一点看法
如何更好地刷题?谈谈我的一点看法
|
11月前
|
机器学习/深度学习 数据采集 人工智能
谈谈当下火热chatgpt的优点及缺点,实践及总结
谈谈当下火热chatgpt的优点及缺点,实践及总结
1174 0
|
12月前
|
数据可视化 程序员 Docker
你在什么时候觉的自己的技术成长很快;低代码在实际开发中的效率到底怎么样;Docker 的优缺点有哪些|极客观点
你在什么时候觉的自己的技术成长很快;低代码在实际开发中的效率到底怎么样;Docker 的优缺点有哪些|极客观点
|
设计模式 机器学习/深度学习 算法
聊一聊过度设计!
新手程序员在做设计时,因为缺乏经验,很容易写出欠设计的代码,但有一些经验的程序员,尤其是在刚学习过设计模式之后,很容易写出过度设计的代码,而这种代码比新手程序员的代码更可怕,过度设计的代码不仅写出来时的成本很高,后续维护的成本也高。因为相对于毫无设计的代码,过度设计的代码有比较高的理解成本。说这么多,到底什么是过度设计?
206 0
|
缓存 前端开发 NoSQL
程序员该知道大型网站架构的发展历程吗?如何有效地增加服务器?
前面介绍了大型网站的业务需求和大致的工作原理,但是不能简单地理解为只要增加服务器就能把一个网站变成一个能应对大量用户的网站。 通过增加服务器来达到支持更多的用户是大型网站架构的目的。 本节简要介绍大型网站架构的发展,并介绍大型网站架构如何有效地增加服务器。 本节介绍的技术点只要了解即可,后续章节会有更详细的说明。 大型网站系统的内部是复杂的,一般是多种网站架构的混合(包括静态网站、动态网站和B/S架构网站等)。
|
设计模式 缓存 算法
阿里逆天级调优方案,内部这套Java性能调优实战宝典,堪称教科书
随着互联网的发展,高可靠、高并发以及降本增效,已成为各大公司面临的现实挑战,性能优化需求愈发迫切,大到分布式系统,小到代码块的算法优化,都已经成为你日常工作中必须要面对的事情。对于开发者而言,性能优化也从加分项变为一个热门技能,缺乏相关知识将很难在面试或工作中脱颖而出
阿里逆天级调优方案,内部这套Java性能调优实战宝典,堪称教科书
|
SQL 缓存 分布式计算
【面经】面试官:做过性能优化的工作吗?你会从哪些方面入手做性能优化呢?
随着互联网的高速发展,互联网行业已经从IT时代慢慢步入到DT时代。对于Java程序员的要求越来越高,只是单纯的掌握CRUD不足以胜任互联网公司的相关职位,大量招聘岗位显示:如果是面试中高级的Java岗,基本上都需要懂性能优化的相关知识。今天,我们就一起来聊聊一个经典的面试题:做过性能优化的工作吗?你会从哪些方面入手做性能优化呢?
232 0
【面经】面试官:做过性能优化的工作吗?你会从哪些方面入手做性能优化呢?