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

时间:2009-01-21 15:33:56

标签: windows redirect file-io

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

cscript //nologo driver.wsf > test_results.txt

当我使用仅有100个事务的“冒烟测试”输入文件时,测试运行得相当快,没有问题。当我使用200,000个事务的“负载测试”输入文件时,驱动程序的性能会随着时间的推移而降低,直到它运行的工作站变得无响应并且正在使用85%的页面文件。我test_results.txt文件的大小刚刚超过43GB。

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

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

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 个答案:

答案 0 :(得分:6)

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

更有可能的是,有关编码记录,创建SOAP消息或发出Web服务请求的内容正在泄漏内存。

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