1、如何确定创建(new)一个类的实例时损耗的资源? 2、以及什么样的类在被实例化时更占资源?每个问题50分

srz007 2005-03-16 02:48:26
每个问题50分

比如一个类这样写
public class A
{
//构造函数
public void A()
{
构造函数中的代码.........
}
public void func1()
{
某方法中的代码.........
}
public void func2()
{
某方法中的代码.........
}
public void func3()
{
某方法中的代码.........
}
//还有好多方法................
}

1、在 A a = new A();
的时候,如何计算这个过程占用的资源呢?

2、什么样的类在被实例化时更占资源?

是 构造函数中的代码 多的类占用资源多还是 在类中包含的方法数越多,实例化时占用的资源也越多?
当一个类中包含了上百个方法时,实例化时会很慢吗?改成静态类可以吗?
...全文
224 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
srz007 2005-03-21
  • 打赏
  • 举报
回复
to liuyong_lll(孤醉)
web应用也需要注意 线程安全问题 吗?

欢迎各位继续讨论,因为现在明显观点不一致哦,呵呵
hishopsoft 2005-03-21
  • 打赏
  • 举报
回复
更正上面说的“与方法和变量的多少无关”
应改为 “与主法和属性的多少无关”
hishopsoft 2005-03-21
  • 打赏
  • 举报
回复
我同意 Ivony() 的看法
不管你实例化了多少次,方法只会创建一次,他不会每次实例化都要创建一个副本的。
每次实例化的时候,只有变量才每次都创建。所以一个类实例化后的大小应该是与实例变量的多少有关系的,与方法和变量的多少无关
liuyong_lll 2005-03-21
  • 打赏
  • 举报
回复
当一个类中包含了上百个方法时,实例化时会很慢吗?改成静态类可以吗?


YES

改成静态类也可以,但是你必须注意线程安全问题
Ivony 2005-03-21
  • 打赏
  • 举报
回复
用sizeof可以判断一个值类型占用了多少资源。
Ivony 2005-03-21
  • 打赏
  • 举报
回复
方法也会占资源?。。。。呵呵。。。。

一个类事例化后的对象所占用的资源仅仅与这个类有多少个字段有关,与方法数量无关。所有的方法都只会被创建一次,因为他们是代码而不是变量,他们不占用所谓的资源,也不在托管堆上分配,或者说是永不分配,永远不会被动态分配。一个类或者一个程序集被加载的时候,就会加载所有的方法。
srz007 2005-03-21
  • 打赏
  • 举报
回复
自己在网上找到了一个工具软件
Compuware.DevPartner.Studio.Professional.Edition
看msdn介绍说是可以计算出每个方法的具体执行时间等等,我已经下载完了,但不会用,哪位有相关的中文介绍给个连接吧,谢谢,呵呵
srz007 2005-03-17
  • 打赏
  • 举报
回复
up
zyug 2005-03-17
  • 打赏
  • 举报
回复
up
srz007 2005-03-17
  • 打赏
  • 举报
回复
大家帮忙顶呀
「已注销」 2005-03-16
  • 打赏
  • 举报
回复
简单说把,值类型和引用类型有什么大的区别?除了分配的地方就是引用类型(类)回多一些对象头和方法表,至于多了那对象头需要花多少时间?应该是很难确定:(
hackate 2005-03-16
  • 打赏
  • 举报
回复
方法和属性越多当然就越占资源。

好像没有电子版,这本书是相当好的。

http://www.dearbook.com

进入后选择“销售排行”看看,排在5.6名的就是,
srz007 2005-03-16
  • 打赏
  • 举报
回复
有电子版的连接吗?麻烦给一个,谢谢先
gshope 2005-03-16
  • 打赏
  • 举报
回复
强烈推荐你看看微软出的<.net framework程序设计>,有详细的说明.
srz007 2005-03-16
  • 打赏
  • 举报
回复
谢谢各位捧场,我在想,实例化一个类的时候电脑都会具体做哪些工作呢?如果这个过程解释清楚了,那上面的问题也就不是问题了,楼上的兄弟有的说方法多会占用资源,而有的说没有多大影响,其实我感觉应该是影响不大吧,总不至于在实例化类的时候,就把这个类中的所有方法中的代码也都给分配内存吧?
我觉得最好还是说明一下:实例化一个类的时候电脑都会具体做哪些工作
这样就有判断的依据了,你说呢?呵呵
羊羽亻子 2005-03-16
  • 打赏
  • 举报
回复
1、变量多的肯定是最占资源的,每定义一个变量系统就会给他分配一个内存地址。


是 构造函数中的代码 多的类占用资源多还是 在类中包含的方法数越多,实例化时占用的资源也越多?
代码行多的也会占比较多的资源,毕竟你做的东西多

当一个类中包含了上百个方法时,实例化时会很慢吗?改成静态类可以吗?
只要不是构造函数里面做好多东西,实例时候是没多大影响的,
如果该方法在多个地方重复经常调用,建议改成static的。
luckyprg 2005-03-16
  • 打赏
  • 举报
回复
方法和属性越多当然就越占资源。
ycc2008 2005-03-16
  • 打赏
  • 举报
回复
方法比较多的类,在实例化时比较占资源
srz007 2005-03-16
  • 打赏
  • 举报
回复
自己顶
gshope 2005-03-16
  • 打赏
  • 举报
回复
方法比较多的类,在建立实例的时候会比较站资源,
至于如何计算出这个数量,我就不知道了:(

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧