我有一个正在运行的进程,正在打开TIF文件。每个TIF文件只是一个常规页面,每个页面可能是100个kB。每次他打开一个TIF文件时,它都试图在page.after上的特定区域读取条形码,然后读取指定区域的条形码,然后关闭该文件并打开下一个文件。由于某些原因,每个文件的处理时间大约为3秒。这对我们来说太长了。我们能做些什么来加速这件事?运行它的服务器是一个具有大量内存的四核2.1 GHz处理器。我检查了CPU和内存,所有的东西似乎都在使用中。我怎样才能找到瓶颈所在?如何加快这一进程?
运行在windows server 2008上
发布于 2011-03-08 22:27:42
如果文件托管在SAN或NAS上,您将在这里查看网络延迟的潜在可能性。
你的程序有日志文件吗?你能打开伐木机吗?
问题似乎要么在于I/O (如果它是这样托管的话可能是网络的),要么是软件本身。我会先查一下这两件事。
发布于 2011-03-08 22:19:16
在Windows 2008中,资源的高级视图是“资源监视器”。即使是4岁的低端服务器也能比您所描述的更快地打开文件,所以我希望它也在代码中。
对于sysadmin (非开发人员)来说,您常用的“深层”工具是使用Microsoft工具过程资源管理器和过程监视器。process将允许您右键单击正在运行的程序并深入了解该进程的性能,并查看线程、字符串等。Process将让您看到进程正在进行的所有文件系统和注册表的读写操作。
发布于 2011-03-08 19:44:32
根据具体情况,我首先对应用程序进行分析或基准测试。如果可能的话,分析应该能够很好地指示应用程序在3秒内所做的事情。或者,您可以在各种条件下(常规TIF、全黑TIF、白色TIF、只是加载TIF但不解析TIF等)对应用程序的速度进行基准测试。这也会给你一个关于瓶颈的一个大概的指示。
找到您的描述,但是,我猜这样的操作将是应用程序和CPU有限。一个设计良好的应用程序不应该花3秒在固定位置解析条形码,即使是在低端CPU上。
https://serverfault.com/questions/244819
复制相似问题