这个早就是事实了嘛.NET本身就慢,垃圾回收虽然好,但是很多还是不喜欢,.NET表面上看起来是解放了程序员,其实不然,其实。NET让程序员更傻了,很多时候都不知道到底是怎么了。很多摸名奇妙的问题不说,而且很多事情还是得追到WIN32上去解决。

解决方案 »

  1.   

    如果C\C++是调用API那C#也调用API
    如果C\C++是处理内容那C#也可以处理内存实现总之速度问题不是个问题
    再不满足
    你就用C\C++写个DLL来调用
      

  2.   

    支持下``
    这里不会说我们在做.net 就要去避短``
    .net就是慢``呵呵``小程序大内存人人都知道``
    不过长处也有很多就是了``呵呵``至于微软``有好的说好的``有坏的说坏的``不存在"坚定的支持者"``大家又不是小孩子了``呵呵``
    我是没感觉对微软有多少好感``不过也不很讨厌就是了``
      

  3.   

    @伴水清清
    这里有我的提问http://community.csdn.net/Expert/topic/5504/5504650.xml?temp=.1626398
    解决了内存不足的问题,这个函数是我在Google上找的,只是我要反复地调用的
      

  4.   

    .net的摸名奇妙的问题很多很多。比如:在 System.ArgumentNullException 中第一次偶然出现的“mscorlib.dll”类型的异常
    在 System.ArgumentNullException 中第一次偶然出现的“System.Windows.Forms.dll”类型的异常。代码捕捉不到这种异常,但是他却在输出里显示上面错误。这是什么异常?????不过这类异常有时候并不影响我们的代码执行,有时候他却要影响。你说这叫不叫摸名奇妙???让人郁闷的是肯本不知道是哪里的错,代码多的情况下,找这类错误就无言了。
      

  5.   

    楼主或许可以帮到你,刚好我这两天也玩gdi+,关于图片处理,也用到了缩略图,也遇到了内存不足问题,我的内存刚好也是1.5g的ddr2。看了一本书,说得很明确,就是通常.net程序都不用析构,交给垃圾收集器就可以了,但是gdi+是个特例,gdi+的类对象都必须析构,就是手动调用dispose,试试吧,不会出现内存不足的情况了,我也是批量压缩,一开始一会内存就超1G了,可是加入了dispose()后,内存占用一直在100兆以内了
      

  6.   

    C#的高效开发不是java能比的,你要承认
      

  7.   

    我支持vrhero的话:在正确的地方用正确的方法使用正确的工具才能提高生产力...这个世界没有差劲儿的工具(因为差的工具都被淘汰了)只有不合格的操作工具的人...
      

  8.   

    @sswwee(最有价值球员
    你是怎么用GDI+处理文件夹(3000个)缩略图并显示到Winform窗口的呀,能给我代码吗?
    [email protected]  谢谢!
      

  9.   

    十有八九是楼主自己的问题吧!
    WPF中都有不少是托管代码写的哦!
    JAVA也是要更新学习的,不更新就没有生命力!
      

  10.   

    好贴,我顶了...
    同意,觉得小小的东西用.net写出来是比较耗内存的...就算dispose也还是蛮大的.
      

  11.   

    用C#调用C++的DLL得了。有些东东还是用C/C++写比较好。
      

  12.   

    java写出来的才更耗内存,说速度,.net的速度并不是很慢,只是没做很好的优化的,游戏都可以做更何况其他的.
    在说GC不是要你自己调用.你只要调用dispose就够了
      

  13.   

    1-我在把文件夹中的3000个图片批量缩略时,遇上了内存不足的错误(我的内存1.5G呀),后来修正了错误,可是速度真的很慢,花了我4分钟的时间,在网上有些批量缩略的软件(可能是用C/C++做的吧),不到1分钟就搞定了.2-我把文件夹中的图片列示到Winform窗口的ListView中(LargeImage),花了我6分钟时间才显示出来,大家看一下其它看图软件都是很快的列示了图片的缩略图的. 用人会说用其它方法呀,GDI+我也试了.
    就这样你还指望C++能帮你呢……看图软件凭什么卖钱,拖个控件放个Form就能作为软件去卖钱?诈骗?长这么大了,怎么连付出与回报是成正比的这么浅显的道理都不明白呢?实在无语了……
    用人会说用其它方法呀,GDI+我也试了.要都有那么简单,我们程序员吃什么呢?撑的……
      

  14.   

    hehe  ...
    3000图片大概6g吧,呵呵...不小了
      

  15.   

    好贴
    Ivony(授人以鱼不如授人以渔,上海谋生)大哥我支持你 以前我们还拼命的去学习数据结构去优化我们的程序现在自从net出来后,自从硬件不再是 瓶颈后
    我们似乎忘记了去优化自己的代码
    去考虑我们的内存呵呵  小弟才学疏浅  路过了
      

  16.   

    现在自从net出来后,自从硬件不再是 瓶颈后
    -----还有这一天??提醒你一下,硬件杀手vista,sql2005,vs2005
      

  17.   

    建造大楼常用的一种工具叫挖掘机,它可以快速挖出土坑,主要用于地基施工...
    另一种工具叫推土机,它可以快速推平地面,主要用途还是用于地基施工...
    还有一些很原始的工具比如铁锨和镐,它们也有个用途是地基施工...试图用挖掘机铲平地面的想法与试图用推土机挖坑的想法一样蠢...
    而铁锨之类原始工具能高效完成的事高科技产品不见得能做到...在正确的地方用正确的方法使用正确的工具才能提高生产力...这个世界没有差劲儿的工具(因为差的工具都被淘汰了)只有不合格的操作工具的人...
    ----------------------------------------------------------------------------
    哈哈,支持不可能你的程序有问题就怪别人的程序有问题,可能是你自己的代码有问题一竿子打翻一船人,不可能你差别人和你一样差,你这样还叫有资格??我看SUN都没资格,就你那熊样也有资格??
      

  18.   

    一竿子打翻一船人,不可能你差别人和你一样差,你这样还叫有资格??我看SUN都没资格,就你那熊样也有资格??
    -----你很狂啊,你看SUN都没资格,你还知道SUN,sun知道你吗??微软有没有说过SUN没资格,这话我只听你说过,你最行
      

  19.   

    .net的摸名奇妙的问题很多很多。比如:在 System.ArgumentNullException 中第一次偶然出现的“mscorlib.dll”类型的异常
    在 System.ArgumentNullException 中第一次偶然出现的“System.Windows.Forms.dll”类型的异常。代码捕捉不到这种异常,但是他却在输出里显示上面错误。这是什么异常?????不过这类异常有时候并不影响我们的代码执行,有时候他却要影响。你说这叫不叫摸名奇妙???让人郁闷的是肯本不知道是哪里的错,代码多的情况下,找这类错误就无言了。
    -----------这个异常就是终结线程的原理,通过此异常终结线程,没有这个异常就不能使线程终结。明白没。
      

  20.   

    终结线程的通知异常是ThreadAbortException,ArgumentNullException是传入的参数为null而又不允许为null的时候引发的异常,任何可能引发这个异常的方法的帮助里面都写得明明白白,这个异常的Message也是明明白白,这个异常的类的帮助也是写的明明白白……
      

  21.   

    我想问你一下,你明白VC++中的内存机制吗?我可以负责任的告诉你:VC++也会出现内存不够,程序用的内存不是你的那个内存条好不好,那只是你不知道罢了,多看看资料再说话吧
      

  22.   

    zjh222(zjh) ( ) 信誉:100    Blog   加为好友  2007-5-5 10:55:53  得分: 0  
     
     
       
    @sswwee(最有价值球员
    你是怎么用GDI+处理文件夹(3000个)缩略图并显示到Winform窗口的呀,能给我代码吗?
    [email protected]  谢谢!
    ============================================
    我不是缩略图显示到winform,而是把几百个大图片压缩成小图片,但差不多,只是最后一步你把缩略图显示到picturebox我是保存到硬盘而已。
    一种是直接GetThumbnailImage(),但msdn说这种效果不好,另一种就是Graphics类drawimage到另一个bitmap,你这种显示出来不能全放内存里啊,那样当然就内存不够了,你显示到form一次只能显示其中几个,那就当时缩略那几个显示出来就行了,就好像用数据集没必要一次把整个表全放dataset里一样啊。
      
     
      

  23.   

    zjh222(zjh) ( ) 信誉:100    Blog   加为好友  2007-5-5 10:55:53  得分: 0  
     
     
       
    @sswwee(最有价值球员
    你是怎么用GDI+处理文件夹(3000个)缩略图并显示到Winform窗口的呀,能给我代码吗?
    [email protected]  谢谢!
    ============================================
    我不是缩略图显示到winform,而是把几百个大图片压缩成小图片,但差不多,只是最后一步你把缩略图显示到picturebox我是保存到硬盘而已。
    一种是直接GetThumbnailImage(),但msdn说这种效果不好,另一种就是Graphics类drawimage到另一个bitmap,你这种显示出来的不能全放内存里啊,那样当然就内存不够了,你显示到form一次只能显示其中几个,那就当时缩略那几个显示出来就行了,就好像用数据集没必要一次把整个表全放dataset里一样啊。记得每次创建bitmap或Graphics或者pen等gdi+的类都要最后dispose()一下,速度慢没有办法,反正我试了一下,速度明显比下载的一个程序压缩同样的一堆图片慢很多,也用了encoder下像lzw啊CCITT4啊一些.net内置的压缩算法,压缩后个头也明显比下载那程序要大不少,反正感觉gdi+内置的一些压缩算法比如gzip等版本都很低吧,压缩效果很差,你要真想要效果感觉就不能用gdi+内置的算法了,得找个好算法改成c#的一个类或者函数放程序里用那个压缩,我见过改成c#的md4 md5 gzip base64算法,图形算法没见过,你去找找看吧。
      

  24.   

    LZ 认为设计程序简单吧
    你这种设计方式在C/C++中--程序会死掉的 不信你就试一试
    LZ 没有用到流,缓冲区,多线程
    还有不知道怎样优化。(.net优化这方面不是很多)
    GC 这 个 东 西 不 要 乱 用