我在 Visual Studio 中编写了一个 Visual Basic .NET 应用程序来解析 MS Powerpoint 和 Word 文件,将幻灯片转换为 jpg 并将内容存储在 ElasticSearch 中。我想确保在解析共享网络驱动器时,服务器或我的客户端都不会显着减慢速度。如何监控执行并相应地调整处理?有什么让我开始的基本技巧吗?
问问题
26 次
1 回答
0
在我的回答中,我假设负载主要包括阅读 PowerPoint 和 Word 文件。因此,枚举目录、生成 JPG 并写入结果都不是问题。如果没有,该方法可以扩展。
一个简单的方法是:
计算出您最多希望生成多少 IO 负载,例如最多 5 MB/s。这是您不想超过的阅读率。
检索开始处理文件之前的时间。
检索文件大小。
处理完文件后,再次计时并计算持续时间。
处理文件时,您可能会超过读取率。因此,在处理完一个文件后,计算您需要等待多长时间才能再次低于读取速率,然后再等待。计算基本上是
wait_time = file_size / read_rate - 持续时间
使用匹配单位,例如wait_time和duration的秒数,file_size的字节数和read_rate的每秒字节数。
如果wait_time为负数,则跳过等待。
于 2016-12-25T16:27:33.457 回答