Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
OCR应用中C#并行任务的使用?_C#_Parallel Processing_Parallel Extensions - Fatal编程技术网

OCR应用中C#并行任务的使用?

OCR应用中C#并行任务的使用?,c#,parallel-processing,parallel-extensions,C#,Parallel Processing,Parallel Extensions,我正在构建一个Windows服务应用程序,它将包含扫描图像的目录作为输入。我的应用程序将遍历所有图像,并对每个图像执行一些OCR操作,以获取条形码、发票号和客户号 一些背景信息: 应用程序执行的任务相当CPU密集 有大量图像要处理,扫描的图像文件很大(~2MB) 该应用程序在一台8核服务器上运行,该服务器具有16GB的RAM 我的问题: 由于它在文件系统上处理图像,我不确定如果我以使用.NET并行任务的方式更改应用程序,它是否真的会产生影响 有人能给我一些建议吗 非常感谢 我认为答案是,‘视情况

我正在构建一个Windows服务应用程序,它将包含扫描图像的目录作为输入。我的应用程序将遍历所有图像,并对每个图像执行一些OCR操作,以获取条形码、发票号和客户号

一些背景信息:

  • 应用程序执行的任务相当CPU密集
  • 有大量图像要处理,扫描的图像文件很大(~2MB)
  • 该应用程序在一台8核服务器上运行,该服务器具有16GB的RAM 我的问题:

    由于它在文件系统上处理图像,我不确定如果我以使用.NET并行任务的方式更改应用程序,它是否真的会产生影响

    有人能给我一些建议吗


    非常感谢

    我认为答案是,‘视情况而定’

    我会尝试使用某种类型的性能监控(甚至是任务管理器中的监控)来运行应用程序,看看CPU有多高


    如果CPU已达到最大值;并行运行会提高性能。如果不是,磁盘是瓶颈,如果没有其他更改,您可能不会获得太多(如果有的话)收益。

    如果处理一个映像比从磁盘读取N个映像花费更长的时间,那么同时处理多个映像是一个胜利。图您可以在不到100毫秒的时间内(包括寻道时间)从磁盘读取2 MB的文件。图1秒将8个图像读入内存

    因此,如果您的图像处理每幅图像花费的时间超过1秒,I/O就不是问题。同时做。如果需要,您可以将其缩小(即,如果处理需要1/2秒,那么您最好只使用4个并发图像)


    您应该能够相当快地对此进行测试:编写一个随机从磁盘读取图像的程序,并计算打开、读取和关闭文件的平均时间。还要编写一个程序来处理图像样本,并计算平均处理时间。这些数字应该能告诉您并发处理是否有帮助。

    是否只有试错法才能找到答案?问题是,经理还没有正式批准使用并行任务。我目前正在调查此事。回答得很好!正是我等待的答案!:)