Redian新闻
>
c# 内存管理的一个小问题
avatar
c# 内存管理的一个小问题# DotNet - 窗口里的风景
b*y
1
图一是平地上建的raised bed。为了找平,把地面浅浅地刨出一条沟,把水泥砖摆上对
齐就行了。
图二和图三是在坡上建的梯田的正面和侧面照。因为是在坡上,沟挖的稍深些。为了防
止砖下沉以及有利渗水,我在砖下铺了防草布和一层小石子。
现在再说说它们的坚固性。大家可能都知道东部刚遭了Irene。其实在这之前,整个夏
天都是雨水不断。Irene的时候更是十几年未有的雨量。我的raised bed和梯田可是一
点儿事也没有呀。
另外更正今天早些说的信息。我的水泥砖是不带孔的那种,所以不用填小石子。如买带
孔的,要填上石子才结实。
avatar
u*d
2
如果把 primitive type 作为 System.Collections.Generic
的元素,比如 List, c# 编译之后用的是 primitive type,
还是 box 成 object 了?
谢谢
avatar
l*t
3
赞梯田!
萝卜不错嘛!
avatar
k*i
4
Good question.
Now let me ask you this: What's the different between List and
ArrayList with int elements?
If you can answer this then you can answer your own question.

【在 u**d 的大作中提到】
: 如果把 primitive type 作为 System.Collections.Generic
: 的元素,比如 List, c# 编译之后用的是 primitive type,
: 还是 box 成 object 了?
: 谢谢

avatar
l*o
5
请问这种水泥砖叫什么啊?
avatar
o*e
6
my guess, box?
List is in managed heap, object in List is referenced, and thus need a
pointer to its assigned memory block. That memory block has two leading
DWORD to store address of method table and syncblk index.
i think in this case the value is boxed and the method table is for a class
of boxed int.
avatar
b*y
7
谢谢!等着下个月拔萝卜呢。

【在 l*t 的大作中提到】
: 赞梯田!
: 萝卜不错嘛!

avatar
d*d
8
no boxing/unboxing is involved. That's one of the advantages of using
generic.

【在 u**d 的大作中提到】
: 如果把 primitive type 作为 System.Collections.Generic
: 的元素,比如 List, c# 编译之后用的是 primitive type,
: 还是 box 成 object 了?
: 谢谢

avatar
T*m
9
比上次秀的时候好多了。

【在 b**********y 的大作中提到】
: 图一是平地上建的raised bed。为了找平,把地面浅浅地刨出一条沟,把水泥砖摆上对
: 齐就行了。
: 图二和图三是在坡上建的梯田的正面和侧面照。因为是在坡上,沟挖的稍深些。为了防
: 止砖下沉以及有利渗水,我在砖下铺了防草布和一层小石子。
: 现在再说说它们的坚固性。大家可能都知道东部刚遭了Irene。其实在这之前,整个夏
: 天都是雨水不断。Irene的时候更是十几年未有的雨量。我的raised bed和梯田可是一
: 点儿事也没有呀。
: 另外更正今天早些说的信息。我的水泥砖是不带孔的那种,所以不用填小石子。如买带
: 孔的,要填上石子才结实。

avatar
a9
10
范型的目的不就是不用类型转换嘛,呵呵。

class

【在 o****e 的大作中提到】
: my guess, box?
: List is in managed heap, object in List is referenced, and thus need a
: pointer to its assigned memory block. That memory block has two leading
: DWORD to store address of method table and syncblk index.
: i think in this case the value is boxed and the method table is for a class
: of boxed int.

avatar
o*e
12
what was i thinking about. misunderstood the whole point of boxing and
generic

【在 a9 的大作中提到】
: 范型的目的不就是不用类型转换嘛,呵呵。
:
: class

avatar
b*y
13
谢谢。上次刚移了苗,现在长大了好多。

【在 T*******m 的大作中提到】
: 比上次秀的时候好多了。
avatar
u*d
14
我的理解 generic 只是为了 PL 的 type checking
出于安全的考虑
boxing 就是为了避免 type checking,一个 list 里可以有混合的 object type
(反正 object 都是 reference)

【在 o****e 的大作中提到】
: what was i thinking about. misunderstood the whole point of boxing and
: generic

avatar
l*o
15
多谢
等以后打折了搬点回来。
你放之前下面的土务实过吗? 我家花坛是那种有空的水泥砖的围的,现在七扭八歪的.
..

【在 b**********y 的大作中提到】
: HD 叫 Concrete Blocks。我们这儿只有HD有,LOWE'S没有。
: http://www.homedepot.com/Building-Materials-Concrete-Cement-Mas

avatar
u*d
16
msdn 有篇文章
list 在编译之后,实际是以 int[] 存储的
内存的 overhead 要小很多
相比较而言 java 并没有 list 只有 list
一个整数 box 成 integer object, 内存消耗就成了 16 bytes
list 里每个 entry 还有 4 bytes reference
整个来讲,overhead 太大了
c# 内存管理还是要好那么一点点

【在 u**d 的大作中提到】
: 如果把 primitive type 作为 System.Collections.Generic
: 的元素,比如 List, c# 编译之后用的是 primitive type,
: 还是 box 成 object 了?
: 谢谢

avatar
b*y
17
不用。稍稍挖挖就行了,特简单。摆好砖后外围用土把缝填实,按一按就好了。有孔的
一定要填上石子,绝对结实。

的.

【在 l*****o 的大作中提到】
: 多谢
: 等以后打折了搬点回来。
: 你放之前下面的土务实过吗? 我家花坛是那种有空的水泥砖的围的,现在七扭八歪的.
: ..

avatar
a9
18
据说.net的范型比java好一些。
但你说的这个反编译后是什么呢?

【在 u**d 的大作中提到】
: msdn 有篇文章
: list 在编译之后,实际是以 int[] 存储的
: 内存的 overhead 要小很多
: 相比较而言 java 并没有 list 只有 list
: 一个整数 box 成 integer object, 内存消耗就成了 16 bytes
: list 里每个 entry 还有 4 bytes reference
: 整个来讲,overhead 太大了
: c# 内存管理还是要好那么一点点

avatar
l*o
19
en, 等我有空了挖出来重新摆一下,死沉死沉的 :(

【在 b**********y 的大作中提到】
: 不用。稍稍挖挖就行了,特简单。摆好砖后外围用土把缝填实,按一按就好了。有孔的
: 一定要填上石子,绝对结实。
:
: 的.

avatar
y*7
20
没有boxing和unboxing。一个新的类List会产生,如果之前没有的话。List
类的instance建在managed heap里。所有的int都还是在stack上
avatar
b*y
21
所以结实呀。如果材料齐全,有一会儿就干完了。不过确实沉,一定记得戴手套呀!切
记。我是让老公帮忙干的。

【在 l*****o 的大作中提到】
: en, 等我有空了挖出来重新摆一下,死沉死沉的 :(
avatar
a*a
22
不错, 比小砖头结实

【在 b**********y 的大作中提到】
: 图一是平地上建的raised bed。为了找平,把地面浅浅地刨出一条沟,把水泥砖摆上对
: 齐就行了。
: 图二和图三是在坡上建的梯田的正面和侧面照。因为是在坡上,沟挖的稍深些。为了防
: 止砖下沉以及有利渗水,我在砖下铺了防草布和一层小石子。
: 现在再说说它们的坚固性。大家可能都知道东部刚遭了Irene。其实在这之前,整个夏
: 天都是雨水不断。Irene的时候更是十几年未有的雨量。我的raised bed和梯田可是一
: 点儿事也没有呀。
: 另外更正今天早些说的信息。我的水泥砖是不带孔的那种,所以不用填小石子。如买带
: 孔的,要填上石子才结实。

avatar
b*y
23
对,结实多了,也大多了。所以成本比用小砖头低,工作量小,还更容易。小砖头还要
考虑摞起来的稳固性。

【在 a***a 的大作中提到】
: 不错, 比小砖头结实
avatar
g*o
24
赞!多谢!看起来很容易实现!

【在 b**********y 的大作中提到】
: 对,结实多了,也大多了。所以成本比用小砖头低,工作量小,还更容易。小砖头还要
: 考虑摞起来的稳固性。

avatar
b*y
25
真的很容易呢。除了砖沉些,毫无技术,难度可言。

【在 g*********o 的大作中提到】
: 赞!多谢!看起来很容易实现!
avatar
H*7
26
基础要夯实弄平,不然过两天就七扭八歪了
avatar
b*y
27
我没有做这一步,目前还好。不过做了肯定更有质量保证。

【在 H******7 的大作中提到】
: 基础要夯实弄平,不然过两天就七扭八歪了
avatar
H*7
28
所以远处的就出现曲线了。近看90度角那里也不水平。不过你的土质相当硬

【在 b**********y 的大作中提到】
: 我没有做这一步,目前还好。不过做了肯定更有质量保证。
avatar
b*y
29
这个,当初建的时候就没弄得太齐。毕竟砖很沉的,那时天热,有点儿偷懒了。
实际上当初建的时候我也担心不结实,可实际上根本没事儿。可能象你说的,我这儿的
土很硬的缘故吧,我们还在坡上堆了一堆土,没地儿临时放那的,就稍稍拍了拍,N场
大雨后一点儿也没被冲塌。

【在 H******7 的大作中提到】
: 所以远处的就出现曲线了。近看90度角那里也不水平。不过你的土质相当硬
avatar
r*g
30
如果周围有小石头话,再买点沙子,水泥。自己浇筑一道坝更结实,便宜呀。呵呵!

【在 b**********y 的大作中提到】
: 图一是平地上建的raised bed。为了找平,把地面浅浅地刨出一条沟,把水泥砖摆上对
: 齐就行了。
: 图二和图三是在坡上建的梯田的正面和侧面照。因为是在坡上,沟挖的稍深些。为了防
: 止砖下沉以及有利渗水,我在砖下铺了防草布和一层小石子。
: 现在再说说它们的坚固性。大家可能都知道东部刚遭了Irene。其实在这之前,整个夏
: 天都是雨水不断。Irene的时候更是十几年未有的雨量。我的raised bed和梯田可是一
: 点儿事也没有呀。
: 另外更正今天早些说的信息。我的水泥砖是不带孔的那种,所以不用填小石子。如买带
: 孔的,要填上石子才结实。

avatar
b*y
31
这个技术量就上去了,而且想拆的时候就不方便了。

【在 r*****g 的大作中提到】
: 如果周围有小石头话,再买点沙子,水泥。自己浇筑一道坝更结实,便宜呀。呵呵!
avatar
T*U
32
便宜是便宜,不容易调整,很快会变成建筑垃圾的,还是砖好弄。

【在 r*****g 的大作中提到】
: 如果周围有小石头话,再买点沙子,水泥。自己浇筑一道坝更结实,便宜呀。呵呵!
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。