欧美成人精品手机在线观看_69视频国产_动漫精品第一页_日韩中文字幕网 - 日本欧美一区二区

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

C#慎用ToLower和ToUpper,小心把你的系統(tǒng)給拖垮了

admin
2023年7月18日 10:5 本文熱度 656

不知道何時開始,很多程序員喜歡用ToLower,ToUpper去實現(xiàn)忽略大小寫模式的字符串相等性比較,有可能這個習慣是從別的語言引進的,大膽猜測下是JS,為了不引起爭論,我指的JS是技師的意思~

1. 講故事

在我們一個訂單聚合系統(tǒng)中,每一筆訂單都會標注來源,比如JD,Taobao,Etao,Shopex 等等一些渠道,UI上也提供高級配置輸入自定義的訂單來源,后來客戶反饋輸入xxx查詢不出訂單,這里就拿shopex為例,用戶用小寫的shopex查詢,但系統(tǒng)中標注的是首字母大寫的Shopex,所以自然無法匹配,為了解決這個問題開發(fā)小哥就統(tǒng)一轉成大寫做比對,用代碼表示如下:

var orderfrom="shopex".ToUpper();
customerIDList=MemoryOrders.where(i=>i.Orderfrom.ToUpper()==orderfrom)
.select(i=>i.CustomerId).ToList();

改完后就是這么牛的上線了,乍一看也沒啥問題,結果一查詢明顯感覺比之前速度慢了好幾秒,干脆多點幾下,好咯。。。在監(jiān)控中發(fā)現(xiàn)CPU和memory突高突低,異常波動,這位小哥又在寫bug了,查了下代碼問他為什么這么寫,小哥說在js中就是這么比較的~~~

2. string.Compare 改造

其實在C#中面對忽略大小寫形式的比較是有專門的方法,性能高而且還不費內(nèi)存,它就是 string.Compare,所以把上面代碼改成如下就可以了。

var orderfrom="shopex";
customerIDList=MemoryOrders.where(string.Compare(i.Tradefrom,tradefrom,StringComparison.OrdinalIgnoreCase)==0)
.select(i=>i.CustomerId).ToList();

這其中的 StringComparison.OrdinalIgnoreCase枚舉就是用來忽略大小寫的,上線之后除了CPU還是有點波動,其他都沒有問題了。


出處:https://www.cnblogs.com/huangxincheng/archive/2020/05/04/12827314.html


該文章在 2023/7/18 10:05:52 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業(yè)務管理,結合碼頭的業(yè)務特點,圍繞調度、堆場作業(yè)而開發(fā)的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved