我的团队要求在某些工作流程中单击图片,我们已经集成了网络摄像头捕获API来解决该问题,但是现在我们面临着性能问题(系统消耗了超过45%的内存和30%的CPU )。
以下是我们正在使用的代码段(类似方式):
import com.github.sarxos.webcam.Webcam;
import com.github.sarxos.webcam.WebcamUtils;
import com.github.sarxos.webcam.ds.vlcj.VlcjDriver;
import com.github.sarxos.webcam.util.ImageUtils;
public class WebcamMain {
public static void main(String[] args) throws InterruptedException {
long i = 1;
while (true) {
try {
System.out.println("Starting " + i + "th execution...");
long startTime = System.currentTimeMillis();
Webcam webcam = Webcam.getDefault();
webcam.open();
WebcamUtils.capture(webcam, "test100", ImageUtils.FORMAT_JPG);
webcam.close();
long endTime = System.currentTimeMillis();
i++;
System.out.println("Photo click time: " + (endTime - startTime) + " ms");
} catch (Throwable th) {
System.out.println("Exception occurred... Ignoring exception... " + th.getMessage());
th.printStackTrace();
} finally {
System.out.println("Sleeping for 5 sec.");
Thread.sleep(5000);
}
}
}
}
不确定为什么我会遇到性能问题,请尝试更改GC。