C#做的一个WinForm数据采集程序,连接数据库读取数据做对比的
运行在普通PC机上,读取数据并做相应处理,耗时37分钟,内存峰值占用480M
运行在高配置的专业服务器上,读取同样的数据并处理,耗时达57分钟,内存峰值占用87M
内存占用明显被控制下来了,导致时间太长,但是我需要时间更短,内存哪怕耗去1G都可以的首先请问道理何在?
然后,有没有什么办法在程序里进行设置,如提高自身的运行级别,更高的内存吞吐量之类的,或者别的好办法,最好不要在服务器上设置什么,能在程序本身实现最好。

解决方案 »

  1.   

    你描述的这种情况跟服务器的设置(或操作系统)有很大关系,不能仅仅从代码上考虑,但仍然可以做一些偿试,对你所说的专业服务器没有概念,仅仅是靠想像来说明问题,程序优化不是一个简单话题,你可以从数据库,程序的算法等各处着手,利用空间换取时间等办法进行偿试最直白的解决方案,试试把从数据库中取出来的数据全部保存在内存中一并进行处理,或者保存到服务器端使用多线程等技术处理,以尽可能提高运行速度,但我未做过任何测试.NET本身在运行速度上,并不是特别强,刚性需求则建议你使用C语言实现
      

  2.   

    多线程阿。现在的多核CPU的频率都不是很高,所以单线程的程序在高配置的专业服务器不会太快。
    但是如果你用多线程的话,速度马上就起来了.