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

简介:

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

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

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

  通常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”。

相关文章
|
9天前
|
前端开发 开发者 C++
通过对比普通开发者与大牛们的学习策略,揭秘他们高效学习的秘诀
前端技术日新月异,大牛们如何保持竞争力?本文对比普通开发者与大牛的学习策略,揭示高效学习的秘诀:明确目标、主动探索、系统资源、注重实践、持续学习。通过这些方法,大牛们能快速掌握新技术并应用于实际工作。
43 5
|
2月前
|
存储 缓存 前端开发
灵魂拷问-前端到底能做些什么?--性能优化篇
作者最近在尝试对负责的平台进行性能优化,本文整理了些前端性能优化的一些常见策略。
|
3月前
|
JSON C# 开发者
💡探索C#语言进化论:揭秘.NET开发效率飙升的秘密武器💼
【8月更文挑战第28天】C#语言凭借其强大的功能与易用性深受开发者喜爱。伴随.NET平台演进,C#持续引入新特性,如C# 7.0的模式匹配,让处理复杂数据结构更直观简洁;C# 8.0的异步流则使异步编程更灵活高效,无需一次性加载全部数据至内存。通过示例展示了模式匹配简化JSON解析及异步流实现文件逐行读取的应用。此外,C# 8.0还提供了默认接口成员和可空引用类型等特性,进一步提高.NET开发效率与代码可维护性。随着C#的发展,未来的.NET开发将更加高效便捷。
60 1
|
3月前
|
开发者 C# Android开发
震惊!Xamarin 跨平台开发优势满满却也挑战重重,代码复用、熟悉语言与性能优势并存,学习曲线与差异处理何解?
【8月更文挑战第31天】Xamarin 与 C# 结合,为移动应用开发带来高效跨平台解决方案,使用单一语言和框架即可构建 iOS、Android 和 Windows 原生应用。本文通过问答形式探讨 Xamarin 和 C# 如何塑造移动开发的未来,并通过示例代码展示其实际应用。Xamarin 和 C# 的组合不仅提高了开发效率,还支持最新的移动平台功能,帮助开发者应对未来挑战,如物联网、人工智能和增强现实等领域的需求。
53 0
|
6月前
|
开发框架 缓存 安全
说一说你在移动应用开发中遇到的最大挑战是什么,你是如何解决的?
【4月更文挑战第1天】移动应用开发挑战包括设备兼容性、性能、网络连接、UI/UX设计、安全和用户留存。解决策略涉及跨平台框架、性能分析、离线功能、用户研究、安全编码及营销策略。通过这些方法,开发者能应对挑战,打造优质应用。
83 0
说一说你在移动应用开发中遇到的最大挑战是什么,你是如何解决的?
|
算法 安全 程序员
分享刷题的个人经验!!!(特别高效)
分享刷题的个人经验!!!(特别高效)
87 0
|
C语言
如何更好地刷题?谈谈我的一点看法
如何更好地刷题?谈谈我的一点看法
111 0
|
机器学习/深度学习 数据采集 人工智能
谈谈当下火热chatgpt的优点及缺点,实践及总结
谈谈当下火热chatgpt的优点及缺点,实践及总结
1669 0
|
设计模式 机器学习/深度学习 算法
聊一聊过度设计!
新手程序员在做设计时,因为缺乏经验,很容易写出欠设计的代码,但有一些经验的程序员,尤其是在刚学习过设计模式之后,很容易写出过度设计的代码,而这种代码比新手程序员的代码更可怕,过度设计的代码不仅写出来时的成本很高,后续维护的成本也高。因为相对于毫无设计的代码,过度设计的代码有比较高的理解成本。说这么多,到底什么是过度设计?
262 0