Re: [邊緣] 原來substring
看板Marginalman作者lturtsamuel (謹言慎行 拼relocate)時間4年前 (2021/09/10 17:12)推噓0(0推 0噓 1→)留言1則, 1人參與討論串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
09/10 17:13, 1F
討論串 (同標題文章)