我正在构建一个Windows服务应用程序,它将包含扫描图像的目录作为输入。我的应用程序将遍历所有图像,对于每个图像,它将执行一些OCR操作以获取条形码,发票号和客户编号。
一些背景信息:
我的问题:
由于它在文件系统上处理图像,我不确定如果我以一种使用.NET并行任务的方式更改我的应用程序它是否真的会有所作为。
有人可以就此提出建议吗?
非常感谢!
答案 0 :(得分:1)
我认为答案是'它取决于'。
我尝试使用某种类型的性能监控(即使是任务管理器中的那个)运行应用程序,看看CPU有多高。
如果CPU最大化;它会改善性能,以便在并列中运行它。如果没有,磁盘是瓶颈而没有其他一些变化,你可能不会获得太多(如果有的话)。
答案 1 :(得分:1)
如果处理图像比从磁盘读取N个图像花费的时间更长,那么同时处理多个图像就是一个胜利。图中您可以在100毫秒内(包括查找时间)从磁盘读取2 MB文件。图一秒钟将8张图像读入内存。
因此,如果每个图像的图像处理时间超过一秒,则I / O不是问题。同时做。如果需要,你可以缩小它(例如,如果处理需要1/2秒,那么你最好只有4个并发图像)。
您应该能够相当快地进行测试:编写一个随机从磁盘读取图像的程序,并计算打开,读取和关闭文件的平均时间。还要编写一个程序来处理图像样本并计算平均处理时间。这些数字应该告诉你并发处理是否有用。