VB.NET为我们带来了许多新的应用方式和代码编写方式,在一定程度上大大提高了编程人员的编程效率。而且其应用方式多样化,灵活性等特点大大吸引着开发人员。我们今天将会为大家介绍VB.NET内存占用的相关解决方法,帮助大家解决一些实际开发中的问题。
创新互联建站服务项目包括诸城网站建设、诸城网站制作、诸城网页制作以及诸城网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,诸城网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到诸城省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
VB.NET内存占用方法一:将窗体隐藏或者最小化启动(这个方面是大家根据经验得出来的)
下列VB.NET 2005代码片断通过窗体变量m_IsHide来控制是否将窗体最小化并隐藏,初始化为True。
为了运行下列代码,还需要一个NotifyIcon及一个与之关联的ContextMenuStrip,后者包含mnuShow和mnuHide菜单两枚。
- Private m_IsHide As Boolean = True
- Private Sub frmMain_Activated() Sub
frmMain_Activated(ByVal sender As
Object, ByVal e As System.EventArgs)
Handles Me.Activated- If m_IsHide Then
- Me.WindowState = FormWindowState.
Minimized- Me.Hide()
- Else
- Me.WindowState = FormWindowState.
Normal- Me.Show()
- End If
- End Sub
- Private Sub frmMain_Resize() Sub
frmMain_Resize(ByVal sender As Object,
ByVal e As System.EventArgs)
Handles Me.Resize- If Me.WindowState = FormWindowState.
Minimized Then- m_IsHide = True
- Me.Hide()
- End If
- End Sub
- Private Sub mnuShow_Click() Sub
mnuShow_Click(ByVal sender As
System.Object, ByVal e As System.
EventArgs) Handles mnuShow.Click- m_IsHide = False
- Me.WindowState = FormWindowState.Normal
- Me.Show()
- End Sub
- Private Sub mnuHide_Click() Sub
mnuHide_Click(ByVal sender As System.
Object, ByVal e As System.EventArgs)
Handles mnuHide.Click- m_IsHide = True
- Me.WindowState = FormWindowState.Minimized
- Me.Hide()
- End Sub
上述代码的功能是:#t#
1、 启动时最小化并隐藏
2、 点击mnuHide窗体隐藏
3、 点击mnuShow窗体恢复
4、 最小化时窗体隐藏
一句话,其实就是编程使窗体启动时最小化。
VB.NET内存占用方法二:Windows将程序占用的内存倒入虚拟内存可以造成小内存占用的假象。
乐天居上有篇文章“将物理内存的占用挪到虚拟内存里-----揭密篇 ”对此有完整的介绍:“而是操作系统本身就有这个机制,即当程序不使用时(最小化),操作系统会调用某些命令,来将该程序占用的内存移至虚拟内存,只保留一小部分常规代码”
- BOOL SetProcessWorkingSetSize(
- HANDLE hProcess,
- SIZE_T dwMinimumWorkingSetSize,
- SIZE_T dwMaximumWorkingSetSize
- );
“将 2个 SIZE_T 参数设置为 -1 ,即可以使进程使用的内存交换到虚拟内存,只保留一小部分代码。
事实上,使用该函数并不能提高什么性能,也不会真的节省内存。因为他只是暂时的将应用程序占用的内存移至虚拟内存,一旦,应用程序被激活或者有操作请求时,这些内存又会被重新占用。如果你强制使用该方法来 设置程序占用的内存,那么可能在一定程度上反而会降低系统性能,因为系统需要频繁的进行内存和硬盘间的页面交换。”
给出我在vb2005中的使用范例:
- Imports System.Runtime.InteropServices
- Module modMain Module modMain
- < DllImport("kernel32.dll")> _
- Public Function SetProcessWorkingSetSize()
Function SetProcessWorkingSetSize( _- ByVal hProcess As Integer, _
- ByVal dwMinimumWorkingSetSize As Integer, _
- ByVal dwMaximumWorkingSetSize As Integer) _
- As Integer
- End Function
- < DllImport("kernel32.dll")> _
- Public Function GetCurrentProcess()
Function GetCurrentProcess() As Integer- End Function
- Public Sub ReduceMem() Sub ReduceMem()
- SetProcessWorkingSetSize(GetCurrentProcess, -1, -1)
- End Sub
- End Module
使用ReduceMem()函数的效果很赞,但是不建议经常用,我只是在FormLoad时用一下,效果就很好了。
值得一提的是,如果不使用GetCurrentProcess()函数得到当前Process,而是使用Process.GetCurrentProcess(),则无法有效缩减使用内存。
以上就是我们为大家带来的VB.NET内存占用的具体解决方案。
文章题目:VB.NET内存占用解决方法介绍
当前URL:http://www.csdahua.cn/qtweb/news24/264224.html
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网