代码之家  ›  专栏  ›  技术社区  ›  Patrick Cuff

在Windows(XP/2003)下重定向到文件的数据量有限制吗?

  •  2
  • Patrick Cuff  · 技术社区  · 17 年前

    我正在使用WSF、VBS和JavaScript脚本系统驱动web服务负载测试。负载驱动程序正在我的工作站上运行,向远程应用服务器发送请求。我在用 WScript.StdOut.Write 在驱动程序脚本中写入结果,并在运行测试时将输出重定向到文本文件:

    cscript //nologo driver.wsf > test_results.txt
    

    当我使用只有100个事务的“冒烟测试”输入文件时,测试运行得相当快,没有问题。当我使用包含200000个事务的“负载测试”输入文件时,驱动程序的性能会随着时间的推移而下降,以至于运行它的工作站变得没有响应,并使用了85%的页面文件。我的尺寸 test_results.txt 文件刚刚超过43GB。

    我怀疑Windows正在将StdOut输出缓存到内存中,而不是将其写入文件;有人有其他的解释或想法吗?将输出作为脚本中的文件系统对象进行管理是否比使用StdOut更好?

    更新: 我的驱动程序基本上是这样做的(psuedo代码):

    Open input file 
    Read a record 
    While not EOF 
        Encode record 
        Create SOAP message containing record 
        Make web service request 
        Write time to get response to StdOut 
        Read another record 
    End While 
    Close input file
    
    1 回复  |  直到 12 年前
        1
  •  6
  •   Jim Mischel    17 年前

    我非常怀疑重定向输出是否有问题。我经常创建大小为数百兆字节的重定向StdOut文件。

    更有可能的是,对记录进行编码、创建SOAP消息或发出Web服务请求都会导致内存泄漏。

    您可以考虑注释掉将响应时间写入StdOut的行,然后重新运行程序。如果程序仍然开始变慢,那么您已经消除了输出作为原因。

    推荐文章