第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

結(jié)構(gòu)切片與指向結(jié)構(gòu)的指針切片

結(jié)構(gòu)切片與指向結(jié)構(gòu)的指針切片

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

3 回答

?
料青山看我應(yīng)如是

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超8個(gè)贊

與映射、切片、通道、函數(shù)和方法不同,結(jié)構(gòu)變量通過復(fù)制傳遞,這意味著在場(chǎng)景后面分配了更多內(nèi)存。另一方面,減少指針會(huì)減少垃圾收集器的工作。從我的角度來看,我會(huì)更多地考慮 3 件事:結(jié)構(gòu)復(fù)雜性、要處理的數(shù)據(jù)量以及創(chuàng)建 var 后的功能需求(當(dāng)它被傳遞到函數(shù)時(shí)是否需要可變?等等..)


查看完整回答
反對(duì) 回復(fù) 2021-09-10
  • 3 回答
  • 0 關(guān)注
  • 204 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)