用VB写一个只有几行代码的程序,居然占到5M内存。那请问一下用过VC++和Delphi的朋友们,用它们写的小程序启动后占用多少内存啊?用VC++和Delphi一般般选择静态链接还动态链接?选动态如果机子上没有该软件所要的动态链接库(如Delphi的VCL库,VB就经常碰到没有MSVBVM60.dll),那不是就挂了?用静态链接文件又太大。小弟没用过VC++和Delphi编译链接过,还请用过的朋友们说一下,来考虑是不是学习一种其它的开发工具。

解决方案 »

  1.   

    注意释放了没呢?
    如: 
    rs.close
    set rs = nothing 
      

  2.   

    选动态如果机子上没有该软件所要的动态链接库(如Delphi的VCL库,VB就经常碰到没有MSVBVM60.dll),那不是就挂了?
    ------------------------------------------------
    软件发布时你要打包作安装啊!不准备安装你就用静态联结吧
      

  3.   

    什么都没用,就msgbox,如果用ADO的话,也就一百行代码,没有其它控件和图像,占11M左右。实在太大了。我看到有其它的只要800多K。能告诉我像Delphi之类的占多少内存吗?
      

  4.   

    To:angyy123(wyy)
    我看有人做的程序打包后也就几百K或1M嘛。
      

  5.   

    to saiko(小新) :
    用Set rs=nothing后内存并不能释放。
      

  6.   

    其实像VB这类编程语言,除了完成编译我们所写的程序语句外,还包括了对窗体、消息等问题的功能处理,这些支持windows体系所提供的功能的架构是很大的,因此即便我们写了几个简单的语句,但编译后确实会使程序的积会比较庞大。但在此基础上,只要你不会增加其它更多的控件或大量的数据应用,那么编译的结果不会随着语句的增加而猛烈增加。
    但回过头来看看,目前机器的内存都起码上百兆的,程序大点也问题不大吧。
      

  7.   

    楼主也太夸张了吧,不过5M内存,还“居然”…………现在的电脑内存基本上都在256以上了,也不在乎这5M吧而且以后也只会越来越多的,vb.net编译个什么事也不干的程序出来就要用10多M
      

  8.   

    内存数据是不稳定的,一个VB写的程序刚运行时有3—5M,过几分钟就会小一些了!
      

  9.   


    100多MB那个是用delphi写的还有一次用VB写的,刚开始只用了30多MB的内存,运行了一天后,内存就吃到了700MB……好像对于数组VB是有缺陷,我每次都正常释放了数组,但是还是要吃,似乎是局部变量每次不释放?不敢再想了
      

  10.   

    现在还学VB?
    换了吧。 我受够了VB的Dll地获.
      

  11.   

    VB程序运行的起步价就是要运行那个6兆左右的MSVBVM60.dll的
      

  12.   

    实际上正确处理vb,除了图形和字符串外,不会占什么额外资源.
    vb运行实际上主要内存在vb的主要支持动态库方法,可以说是起步价,但实际上有许多程序也运行着同样的动态链接库,这时就没什么了.
    至于vb运行占内存会越来越多,那就是处理不对了,vb的autoredraw=true是需要占内存的,其实是图形,而且对窗体的调用也是占内存的,必须得set form1=nothing,否则原窗体包括函数仍占用内存.直到程序结束.
    对于数组而言,vb处理数组的速度应该说是很快的,正确释放数组是必要的,应尽可能使用局部数组,使用完毕请重新分配.我有个表格使用vb数组,都是上万的数组,运行几天都没见什么.更好的方式是使用API来分配内存.内存能得到及时的施放.
    vb占用内存,使用得好的话,和dephi差不多,其实dephi和vc是真正占用内存的高手,他们的程序实实在在地占用内存,它们为什么快的原因之一也在这里.而vb对内存的控制就差一点了,基本上运行时调入,一用完就又调出硬盘分页中去了,频繁得执行一个过程,就频繁的调入调出,速度就可想而知了.vb.net已经更新很多了,速度也快很多,其实编译后执行的中间码和C#差不多.
      

  13.   

    寒 
    thirdapple(.:RNPA:.陨落雕-鍾意吊帶MM) 
    那个100M的
      

  14.   

    千万不要以为你的VB程序什么都没有做,光是一个窗体类的加载就要好几兆。
    你可以尝试像我一样写一个无窗口的数据流处理程序,启动时VC的需要450M,而VB写的(移植代码,测试用)反而只要415M左右。当然,性能是大不一样的……不过功能都齐了。
    VB的内存处理效率低在管理上,如果你一开始就好好分配你程序需要的内存空间,那么到后来反而会占用略微少一点点的内存(这个原因……我就不是太清楚了),如果全部依赖动态分配,那么等着看内存占用的数值往上飚吧。
      

  15.   

    使用的内存和你使用控件的多少的成正比的 像使用WINDOW MEDIA PLAYER控件一下就占用了10MB
    因为这些控件里有大量的变量 只是我们用不到那些变量罢了 
    最好少用控件  或者用自己写的控件 要什么功能 就写什么功能 
    我最近使用了WMP写的MP3播放器 不过他的功能都可以写个媒体平台了 
    而我只用到了MP3解码的部分 你说 是不是很浪费啊