google code prettify

2019年5月4日 星期六

[ASP.NET] Boxing And NoBoxing, 以匯入Excel資料流水號為例。

Bug: 近日使用者回應匯入Excel資料後,超過9項之後會存檔失敗。
剛好這個案例跟Boxing有點關聯,就用此篇順道說明。
Fix:發生Bug的原因是匯入Excel資料後,產生7位數字SAP流水號,DB只能接受6位數,
導致存檔失敗。

SAP流水號規則傳遞(規則如下)。以10,20,30為單位,不足的位數要補0,例如
000010
000020
000030
000040

原本的Bug的寫法竟然是用For迴圈在前面補0,然後買超過10個就補過頭,變成
0000100
所以買10項跑了40迴圈,這種寫法是會讓CPU起飛的 😆 恩恩~~叫

通常都會上網找解法,然後貼上,於是就產生了Boxing

NoBoxing

NoBoxing and PadLefter

Performance

簡化來說,就是明確告知型別,避免發生Boxing,執行速度會上升

額外補充
NoBoxing and PadLefter ,執行速度又會更快,
目前先筆記此方法,哪天找到更快的方法再更新此篇:D

沒有留言:

張貼留言