我正在运行一个打开 TIF 文件的进程。每个 TIF 文件只是一个常规页面,每个页面可能只有 100 kB。每次打开 TIF 文件时,它都会尝试读取页面上特定区域的条形码。读取指定区域中的条形码后,它会关闭文件并打开下一个文件。由于某种原因,此过程每个文件大约需要 3 秒。这对我们来说太长了。我们可以做些什么来加快速度?运行此文件的服务器是四核 2.1 GHz 处理器,具有足够的 RAM。我检查了 CPU 和内存,似乎一切都没有得到充分利用。我如何找到瓶颈在哪里?我如何加快这个过程?
在 Windows Server 2008 上运行
答案1
如果文件托管在 SAN 或 NAS 上,则您可能会遇到网络延迟的可能性。
你的程序有日志文件吗?你能打开日志记录吗?
问题似乎出在 I/O(如果托管方式是网络,则可能是网络)或软件本身。我会首先检查这两个部分。
答案2
答案3
根据具体情况,我会先对应用程序进行性能分析或基准测试。如果可能的话,性能分析应该能够很好地指示应用程序在 3 秒内执行的操作。或者,您可以在各种条件下对应用程序的速度进行基准测试(常规 TIF、全黑 TIF、白色 TIF、仅加载 TIF 但不解析它等)。这也应该可以以迂回的方式指示瓶颈。
找到了您的描述,但是我猜想这样的操作会受到应用程序和 CPU 的限制。设计良好的应用程序不应该在低端 CPU 上花 3 秒钟来解析固定位置的条形码。