比如一个Hashtable实例,我如何知道此实例所占内存的大小〉??
解决方案 »
- 求助求助
- 我写了个返回查询的字段值函数 但是不行请大家多指教!谢谢
- 菜鸟c#的相关题目求解
- web页面上的下拉菜单为什么总是显示在dropdownlist控件的后面?
- 非超级高手,无法解答,关于使用.net环境保护 win32程序,绝对创意
- 老问题,报表的问题,帮忙看看
- 欢迎团队朋友一起创业B2B交易网,需要:ASP,NET/PHP/JSP/SEO/美工/架构人员
- SOS SOS SOS,c#找不到程序集,怎么回事?
- CMD运行程序路径双引号的问题
- 紧急求救:如何根据数据库中的值以红色字体显示datagrid中的满足条件特定列特定行?
- 为什么每次启动都会运行安装类?!
- 请问我将图片旋转30度,写的代码,只显示了图片,但没有旋转
不知道FrameWork中有没有这样的类呀,我看你还是找找API吧.
关注!
Prirate Sub Label1_LostFocus
Update Label1
Label1.Option=Text1.text
Text1.Move Label2.LeftLabel2.Top
Text1.Text1 contents
Text1.Text=Label2.Caption
End Sub 通过适当设置BackColor和BorderStyle的属性,可以使标签看起来像文本框,虽说这会需要更多的代码,但对于含有大量文本域的窗体,它可以大大地减少资源的使用。 四、在设计中,直接放入应用程序的数据(像属性或代码中的文字字符串和数值)将增加运行时程序占用的内存。运行时从磁盘文件和资源中加载数据可以减少内存占用。这对大的位图和字符串特别有价值。 五、VB只在需要时才加载模块,即当代码调用模块中的一个过程时,模块才被加载到内存中。若从未调用一特定模块中的过程,VB决不会加载该模块。因此,尽量把相关的过程放在同一个模块中,让VB只在需要时才加载模块。 六、Variant数据使用极其灵活,但占用内存大。所以,我们应考虑用其他数据类型代替Variant变量,特别是替代Variant变量数组。 每一个Variant占用16个字节,而Integer占用2个字节,Double占用8个字节,长字符串变量占用4个字节,加上字符串中每一个字符占用1个字节,共5个字节。但Variant字符串变量会占用16个字节,再加上字符串中每一个字符占用一个字节。因为它们太大,消耗堆栈空间特别快,所以特烦人,尤其是在作局部变量或过程的参数时。但有些情况下,Variant变量的灵活性又能给程序带来极大的方便,所以,用不用这项优化技术应根据应用程序的情况来作取舍。 七、这项技术相信大家并不陌生。动态数组可用Erase或ReDim Preserve收回数组所占用的内存。例如:Erase MyArray,Erase用于完全删除数组;ReDim Preserve则只缩短数组而不丢失其内容: ReDim Preserve MyArray10smallernum 删除固定数组不能收回它占用的内存空间,只可简单地清除数组内每一个元素。如果元素是字符串,或包含字符串或数组的Variant变量,那删除数组可回收这些字符串或Variant变量所占用的内存,而不是数组本身所占用的内存。 八、当过程结束时,可自动回收(非静态)局部字符串和数组变量所占用的内存空间。但是,全局、模块级的字符串和数组变量一直存活到整个程序结束。要使应用程序尽量小,应尽可能地回收这些变量所占用的空间。 九、再开发和修改程序时,可能遗留了一些死代码——代码中的一个完整过程,而它并没有被任何地方调用,也可能声明了一些不用的变量。虽然再创建.exe文件时,VB确实可删除无用的常数,但不能删除无用的变量和死代码。 要消除死代码,可在”编辑“菜单中,使用”查找“命令搜索特定变量的引用;或者,当每个模块都含有Option Explicit语句时,通过删除或注释该变量的声明,并运行应用程序,可迅速发现变量是否被调用,若被调用,则VB会出错,否则就没被使用。
可以查看某些进程的占用的内存,不知是不是楼主的意思?
System.Diagnostics.Process[] processes;
processes=System.Diagnostics.Process.GetProcesses();
foreach(System.Diagnostics.Process instance in processes)
{
//str=str+"\n"+instance.ProcessName+"关联进程使用情况:"+instance.WorkingSet;
//if(instance.ProcessName=="MAPMiscTest")
str=str+"\n"+DateTime.Now+instance.ProcessName+"进程占用内存:"+Convert.ToString(Convert.ToInt32(instance.WorkingSet)/1024)+"k";
}
这可以读出系统中每个进程占用内存的信息.
http://www.dotnet247.com/247reference/msgs/39/199097.aspx
对于非托管的对象可以用Marshal.SizeOf(o)获得大小