我有一个正在打开TIF文件的进程。 每个TIF文件只是一个常规页面,它们可能是每个100 kB。 每次打开TIF文件时,都会尝试读取页面上特定区域的条形码。读取指定区域的条形码后,会closures文件并打开下一个文件。 出于某种原因,这个过程每个文件需要大约3秒。 这对我们来说太长了。 我们能做些什么来加快速度? 运行这个服务器是一个四核2.1 GHz处理器与大量的RAM。 我检查了CPU和内存,似乎一切正在使用。 我怎样才能find瓶颈呢? 我如何加快这个过程?
运行在Windows Server 2008上
如果文件托pipe在SAN或NAS上,那么您正在查看networking延迟的潜在可能性。
你的程序是否有日志文件? 你可以打开日志?
这个问题似乎与I / O(可能是networking,如果它是如何托pipe的)或软件本身有关。 我会先检查这两个部分。
在Windows Server 2008中,资源的高级视图是资源监视器。 即使是一个4岁的低端服务器也可以更快地打开文件,所以我期望它也在代码中。
对于系统pipe理员(不是开发人员),使用Microsoft Sysinternals工具Process Explorer和Process Monitor来查看发生了什么的常见“深层”工具。 Process Explorer将允许您右键单击正在运行的程序,并深入了解该进程的性能,并查看线程,string等。Process Monitor将让您看到所有读写文件系统和registry的过程正在进行。
根据具体情况,我将首先对应用程序进行分析或基准testing。 如果可能的话,分析应该能够给你一个很好的指示,在3秒内应用程序正在做什么。 或者,您可以在各种条件(常规TIF,全黑TIF,白TIF,只加载TIF但不parsing它等)上对应用程序的速度进行基准testing。 这也应该给你一个关于方式的一个瓶颈的迹象。
find你的描述,但是,我猜想这样的操作将是应用程序和CPU限制。 一个devise良好的应用程序不需要3秒就可以在一个固定的位置parsing一个条码,甚至是低端的CPU。