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
沒有留言:
張貼留言