我經常使用結構片。這是此類結構的示例:type MyStruct struct {
val1, val2, val3 int
text1, text2, text3 string
list []SomeType}所以我定義我的切片如下:[]MyStruct假設我有大約一百萬個元素,并且我正在大量使用切片:我經常添加新元素。(元素總數未知。)我時不時地整理一下。我還刪除了元素(雖然沒有添加新元素那么多)。我經常閱讀元素并將它們傳遞(作為函數參數)。元素本身的內容不會改變。我的理解是,這會導致對實際結構的大量改組。另一種方法是創建一個指向結構的指針:[]*MyStruct現在結構體保持原樣,我們只處理我認為占用空間較小的指針,因此會使我的操作更快。但是現在我給垃圾收集器做更多的工作。你能提供什么時候直接使用結構體還是什么時候使用指向結構體的指針的一般指南嗎?我是否應該擔心留給 GC 的工作量是多少?復制結構與復制指針的性能開銷可以忽略不計?也許一百萬個元素并不多。當切片變得更大(但仍然適合 RAM,當然)時,所有這些如何變化?
結構切片與指向結構的指針切片
慕碼人8056858
2021-09-10 15:11:47