作者lovecold (小豬頭)
看板C_Sharp
標題[問題] 有方法取得正被引用的次數?
時間Tue Apr 11 11:13:07 2017
大家好,想請教一下,我有一個class A,
a = new A(), b = a, c = a,.....
想請問一下,有辦法知道 new A() 被幾個引用嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.117.44.4
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_Sharp/M.1491880389.A.229.html
1F:→ yuhaw0715: vs 2015 2017有这个功能 04/11 12:51
2F:→ brian80122: 尋找所有參考 04/11 16:25
3F:→ Litfal: 他是指instance被strong reference的次數吧?這有辦法拿嗎 04/11 18:21
恩,我想取得被strong reference的次數...
4F:→ s4300026: 離題,object d = (object) A; 04/11 18:32
5F:→ s4300026: 糟了,應該要小寫 04/11 18:33
請問這是啥意思???^^"
※ 編輯: lovecold (122.117.44.4), 04/11/2017 19:19:38
6F:→ ssccg: .NET CLR根本沒有用reference count,沒有地方取得 04/11 20:25
7F:推 s4300026: 就是向上轉型成為最上層的物件,這樣也會被計數嗎? 就 04/12 19:36
8F:→ s4300026: 只是這樣的一個問題。 話說,gc應該知道有沒有人只到吧 04/12 19:36
9F:→ s4300026: ? 不然怎麼知道該不該回收了? 04/12 19:36
10F:→ ssccg: 會知道有沒有人指到,但不會去算幾個指到 04/12 20:36
11F:推 Litfal: 知道該不該釋放(0/1)和知道計數是不同的。而且這應該在 04/12 20:48
12F:→ Litfal: application's roots,目前是沒有辦法透過語法直接拿的 04/12 20:49
13F:→ Litfal: 用WinDbg說不定有辦法dump出來 04/12 20:53
14F:→ nickerChen: 設個變數丟回去? 或者用session 存起來? 04/13 09:22
16F:→ erspicu: ㄟ 原PO問題好像跟連結意思不太相同 04/13 15:06
17F:→ erspicu: 但感覺原PO其實要問的是連結的問題 04/13 15:07
18F:→ erspicu: 因為搞不太懂原PO提的這問題到底確切應用為何? 04/13 15:08
19F:→ erspicu: 反來是某CLAS被實體化次數資訊好像還有意義些 04/13 15:09
20F:→ erspicu: 原PO的問題是某被實體化物件被參考的次數 04/13 15:09
21F:→ Litfal: 嗯 原PO問的是reference count,樓上那篇是instance count 04/13 16:03
22F:推 s4300026: 也就是說,一個是數 類別實例化 幾次,一個是數 有幾個 04/13 18:52
23F:→ s4300026: 指標 指到該實例化的物件 04/13 18:52
24F:→ outofyou: 一樓說的是有列出所有指標值的功能嗎? 04/14 17:47
25F:推 s4300026: 今天不小心看到的 goo.gl/uVoUyz 04/18 11:43