Re: [邊緣] 原來substring

看板Marginalman作者 (謹言慎行 拼relocate)時間4年前 (2021/09/10 17:12), 編輯推噓0(001)
留言1則, 1人參與, 4年前最新討論串3/3 (看更多)
※ 引述《lopp54321010 (日南肚子上的肥肉)》之銘言: : ※ 引述《KusanagiYuma (草薙由麻)》之銘言: : : → lopp54321010: https://github.com/Cysharp/ZString 09/10 16:30 : : 字串原來有這麼多玩具可以玩是不是XD : 這個其實就Cygames負責研究.Net技術的子公司Cysharp自己出的StringBuilder : 他們的CEO很喜歡用Struct重做一些微軟本來就有提供的Class : 因為Struct會直接用Stack的空間不會產生Garbage Collection : 而依照我自己的感覺,C#的八成效能瓶頸都來自GC : 以你的情況來說就是SubString每次執行的時候都會去Allocate一塊新的記憶體區塊 : 然後把你擷取出來的一段char陣列複製進那塊區塊內 : https://i.imgur.com/CE52Jjd.png
: 每多要一塊區塊,GC就越會搞== : 不過ZString算是為了跟Unity的某些東西配合的 : 內建的StringBuilder應該就夠一般使用了ㄅ : --- : C#要追求效能的話,理論上是通通掛unsafe用指標操作當C++在寫ㄅ : 曾經看過一個中國的遊戲程序猿真的這樣寫,蠻牛逼der : 很想問他為什麼不乾脆用C++就好 這我知道 去看cassandra的java原始碼 就會發現到處用byte stream 用index的方法在stream上滑來滑去 然後cast成自己想要的類別的指針 就是為了要最大程度上避免垃圾蒐集 程序員好像在直接跟memory裡面的1和0打交道 怎麼不直接用rust呢? 我看redit r/rust講的 有錯別怪我 ----- Sent from JPTT on my Google Pixel 3 XL. -- ~$ sudo make love -j4 Error: 女朋友.c: 沒有此一檔案或目錄 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.10.6.223 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1631265168.A.E93.html

09/10 17:13, 4年前 , 1F
Java跟C#有蠻多地方類似的 都被GC搞最嚴重==
09/10 17:13, 1F
文章代碼(AID): #1XEo6GwJ (Marginalman)
文章代碼(AID): #1XEo6GwJ (Marginalman)