本地文件夹有2000多个文本文件,每个文件有200行左右.
用fso得到文件名 循环用fso.opentxtfile处理每一行数据存入数据库.如果在数据库里没有某个文件名的表,用Creat Table 建立这个表.
现在我遇到的问题是开始处理时cpu马上就100%,中间DoEvents虽然可以使系统处理其他事务,但解决不了cpu100%问题.处理速度慢的无法忍受.
for Each f in fldr.Files'2000次左右
     if 表(i.name)不存在 then ocn.eExecute("creat table...")
           Do While Not ts.AtEndOfStream '200次左右
                 readline  处理每一行
                  .....
                 rs.update
          loop
next
代码大致就是这样的结构
请问 代码那部分会导致CPU 100%?该怎么解决?

解决方案 »

  1.   

    可以考虑循环中sleep一下,比如1毫秒。会减低运行速度,但是CPU占用率也会大幅下降。
      

  2.   


    谢谢! sleep或许是个做好的办法.
    但在这样做我还有其他问题:这样大的循环 中间需要设置中断 DoEvents 可以,但Sleep 就做不到了 还有什么解决方案吗?
      

  3.   

    如果DoEvents和Sleep同时使用 是先Doevents 还是先Sleep好?
      

  4.   


    建议先Doevents,再Sleep。
      

  5.   

    如何判断有问题的站点: 
        可以通过允察进程里各个w3wp进程的CPU及内存的使用情况, 一般网站CPU都在10%以下,内存不超过50M,如果有某一个网站的CPU突然涨到50%以上,或内存涨到100M以上, 或几百M,持续不下来的,这个网站肯定有问题。  
    如何查找浪费资源较大的站点: 
        可以通过查看进程里各个w3wp进程的CPU及内存的使用情况, 一般网站CPU都在10%以下,内存不超过50M,通过比较CPU及内存的资源,即可方便的发现哪个网站比较浪费服务器资源。
        可以通过监控网络流量找出当前比较浪费网络带宽的站点。或者对过去一段时间的流量进行统计,找到发送及接收字节比较多的站点。  IIS监控器本地下载:http://www.winiis.com/download/IISWatcher_V2.1.rar
    官方网站:http://www.winiis.com
    OICQ咨询:610297365