谈谈被大家过于在乎的性能
軟件開(kāi)發(fā)者最初為了做出某種功能而努力著。
當(dāng)有一天,開(kāi)發(fā)者們掌握了開(kāi)發(fā)的門道,實(shí)現(xiàn)功能已經(jīng)家常便飯了。
于是人們開(kāi)始考慮更多問(wèn)題,性能就是一個(gè)問(wèn)題。
通常2-4年工作經(jīng)驗(yàn)的開(kāi)發(fā)者會(huì)很糾結(jié)這個(gè)問(wèn)題,但由于基礎(chǔ)參差不齊,對(duì)性能的理解也大不相同。
那些年也許我們過(guò)于在乎性能問(wèn)題了。
?
誤區(qū)一:O/RM工具影響性能
發(fā)現(xiàn)很多人喜歡拿O/RM工具討論性能,害怕引入ORM工具以后帶來(lái)?yè)p失性能的問(wèn)題,
不過(guò)據(jù)我所知目前一些主流的ORM工具性能都半斤八兩,ORM工具之間的比較不是性能問(wèn)題,而是使用習(xí)慣的問(wèn)題。
ORM與原生ADO.NET比較,肯定會(huì)損失一定的性能,但是帶來(lái)了提高開(kāi)發(fā)效率的優(yōu)勢(shì)。
據(jù)我所知,很多同行做著的OA、ERP什么的系統(tǒng)用戶數(shù)量都不多,
過(guò)于計(jì)較性能問(wèn)題,那就是拿5%不到的特殊情況,拒絕大多數(shù)情況提高開(kāi)發(fā)效率。
沒(méi)有人說(shuō)用了ORM就一定要每個(gè)地方都用ORM到底。
?
誤區(qū)二:存儲(chǔ)過(guò)程可提高性能
采用存儲(chǔ)過(guò)程本身沒(méi)有什么問(wèn)題,過(guò)于頻繁地用存儲(chǔ)過(guò)程,調(diào)試就會(huì)比較煩。
1、程序里加斷點(diǎn),然后變量復(fù)制到存儲(chǔ)過(guò)程里加斷點(diǎn)調(diào)試。
2、過(guò)于依賴存儲(chǔ)過(guò)程,數(shù)據(jù)庫(kù)里包含業(yè)務(wù)邏輯,業(yè)務(wù)邏輯就分散在程序與數(shù)據(jù)庫(kù),代碼可讀性損失。
3、調(diào)用存儲(chǔ)過(guò)程的確讓很多SQL語(yǔ)句變成了一個(gè)存儲(chǔ)過(guò)程名和參數(shù),減少了網(wǎng)絡(luò)傳輸,但很多情況下不需要這點(diǎn)性能。
4、業(yè)務(wù)邏輯都寫在存儲(chǔ)過(guò)程里了,用面向?qū)ο笳Z(yǔ)言的話就當(dāng)做面向過(guò)程語(yǔ)言用了,對(duì)開(kāi)發(fā)功能復(fù)雜的項(xiàng)目比較不利。
?
誤區(qū)三:大數(shù)據(jù)性能問(wèn)題
只要接觸到幾百萬(wàn)或者幾千萬(wàn)就認(rèn)為是大數(shù)據(jù),有些人甚至以為MSSQLSERVER數(shù)據(jù)庫(kù)碰到千萬(wàn)級(jí)的就得掛了。
其實(shí)不然,如果每個(gè)月以百萬(wàn)級(jí)的數(shù)據(jù)增長(zhǎng),那么對(duì)查詢而言這些都是小數(shù)據(jù),利用分區(qū)與查詢約束還是比較容易解決的。
而用同樣的方法,MSSQLSERVER也能處理超越千萬(wàn)級(jí)的數(shù)據(jù)。
?
數(shù)據(jù)庫(kù)真正的性能問(wèn)題在哪里?
真正的性能問(wèn)題從宏觀上講我認(rèn)為是數(shù)據(jù)庫(kù)設(shè)計(jì)問(wèn)題,微觀上則是SQL調(diào)優(yōu)。
?
總結(jié)
不該以性能為理由拒絕ORM工具,也不該濫用存儲(chǔ)過(guò)程。
關(guān)注性能從設(shè)計(jì)階段開(kāi)始,不可過(guò)于糾結(jié)性能問(wèn)題而損失開(kāi)發(fā)效率。
轉(zhuǎn)載于:https://www.cnblogs.com/Johnson-ou/p/3544015.html
總結(jié)
以上是生活随笔為你收集整理的谈谈被大家过于在乎的性能的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: android 退出程序提示是否退出对话
- 下一篇: 不知不觉一年