У моей команды есть требование щелкнуть по картинке во время какого-либо рабочего процесса, для этого мы интегрировали API захвата веб-камеры, но теперь мы сталкиваемся с проблемой производительности (система потребляет более 45% памяти и 30% процессорного времени). ).
Вот фрагмент кода, который мы используем (аналогичным образом):
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.