0

我在 Visual Studio 中编写了一个 Visual Basic .NET 应用程序来解析 MS Powerpoint 和 Word 文件,将幻灯片转换为 jpg 并将内容存储在 ElasticSearch 中。我想确保在解析共享网络驱动器时,服务器或我的客户端都不会显着减慢速度。如何监控执行并相应地调整处理?有什么让我开始的基本技巧吗?

4

1 回答 1

0

在我的回答中,我假设负载主要包括阅读 PowerPoint 和 Word 文件。因此,枚举目录、生成 JPG 并写入结果都不是问题。如果没有,该方法可以扩展。

一个简单的方法是:

  1. 计算出您最多希望生成多少 IO 负载,例如最多 5 MB/s。这是您不想超过的阅读率。

  2. 检索开始处理文件之前的时间。

  3. 检索文件大小。

  4. 处理完文件后,再次计时并计算持续时间。

  5. 处理文件时,您可能会超过读取率。因此,在处理完一个文件后,计算您需要等待多长时间才能再次低于读取速率,然后再等待。计算基本上是

wait_time = file_size / read_rate - 持续时间

使用匹配单位,例如wait_timeduration的秒数,file_size的字节数和read_rate的每秒字节数。

如果wait_time为负数,则跳过等待。

于 2016-12-25T16:27:33.457 回答