Boxing

  • 386
  • 0
  • 2018-07-04

c# boxing mvc

因.net framework 世界的所有物件都來自於Object class,其實滿容易將東西放進object定義裡。

TempData["switch"] = true;

像上面類似的程式碼,就會不自覺的寫出,當系統變大而程式又抄來抄去,可能效能會有點影響。

Boxing 是value type 轉換成 reference type的一個過程。

它會將原本在stack裡的值,複製一份到heap裡,並回傳參考回去。

這樣子的變動是需要成本的,另外在GC可能也是一個負擔。

在官方http://docs.microsoft.com/zh-tw/dotnet/framework/performance/performance-tips的文件說比simple reference assignment多花費20倍。