From 7065d098f390b6ce7e40aa25c9627ee19127b0e0 Mon Sep 17 00:00:00 2001 From: Kilian Schuettler Date: Thu, 9 Feb 2023 14:37:09 +0100 Subject: [PATCH] RED-6126: performance-test *fixed time calculation --- .../service/ocr/v1/server/service/OCRService.java | 13 ++++++++----- .../ocr/v1/server/service/OcrMessageReceiver.java | 7 ++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/ocr-service-v1/ocr-service-server-v1/src/main/java/com/iqser/red/service/ocr/v1/server/service/OCRService.java b/ocr-service-v1/ocr-service-server-v1/src/main/java/com/iqser/red/service/ocr/v1/server/service/OCRService.java index d3b9324..d7bc889 100644 --- a/ocr-service-v1/ocr-service-server-v1/src/main/java/com/iqser/red/service/ocr/v1/server/service/OCRService.java +++ b/ocr-service-v1/ocr-service-server-v1/src/main/java/com/iqser/red/service/ocr/v1/server/service/OCRService.java @@ -66,15 +66,18 @@ public class OCRService { public void runOcrOnDocument(String dossierId, String fileId, OutputStream out) throws IOException { try (ByteArrayOutputStream transferOutputStream = new ByteArrayOutputStream()) { - long start = System.currentTimeMillis(); - try (InputStream fileStream = fileStorageService.getOriginalFileAsStream(dossierId, fileId)) { + long start = System.currentTimeMillis(); + log.info("Start invisible element removal for file with dossierId {} and fileId {}", dossierId, fileId); invisibleElementRemovalService.removeInvisibleElements(fileStream, transferOutputStream, false); + long end = System.currentTimeMillis(); + log.info("Invisible element removal successful for file with dossierId {} and fileId {}, took {}s", dossierId, fileId, format("%.1f", (end - start) / 1000.0)); } - long end = System.currentTimeMillis(); - log.info("Invisible element removal successful for file with dossierId {} and fileId {}, took {}s", dossierId, fileId, format("%.1f", (float) ((end - start) / 1000))); try (InputStream transferInputStream = new ByteArrayInputStream(transferOutputStream.toByteArray())) { + long start = System.currentTimeMillis(); runOcr(transferInputStream, out, fileId); + long end = System.currentTimeMillis(); + log.info("ocr successful for file with dossierId {} and fileId {}, took {}s", dossierId, fileId, format("%.1f", (end - start) / 1000.0)); } } } @@ -93,12 +96,12 @@ public class OCRService { Map pageIdToRectCollection = imagePositionRetrievalService.getImagePositionPerPage(pdfDoc, true); int numProcessedPages = 0; + // optimization: only scanning pages that contain images for (Integer pageId : pageIdToRectCollection.keySet()) { try { // optimization: creating a new document is faster than reusing the same and adding/removing pages one by one OCROptions options = new OCROptions(); PDFDoc ocrPageDoc = new PDFDoc(); - // optimization: only scanning pages that contain images Page pdfPage = pdfDoc.getPage(pageId); // optimization: this line ensures the ocr text is placed correctly by PDFTron pdfPage.setMediaBox(pdfPage.getCropBox()); diff --git a/ocr-service-v1/ocr-service-server-v1/src/main/java/com/iqser/red/service/ocr/v1/server/service/OcrMessageReceiver.java b/ocr-service-v1/ocr-service-server-v1/src/main/java/com/iqser/red/service/ocr/v1/server/service/OcrMessageReceiver.java index 7ae1443..7ddbdf4 100644 --- a/ocr-service-v1/ocr-service-server-v1/src/main/java/com/iqser/red/service/ocr/v1/server/service/OcrMessageReceiver.java +++ b/ocr-service-v1/ocr-service-server-v1/src/main/java/com/iqser/red/service/ocr/v1/server/service/OcrMessageReceiver.java @@ -31,14 +31,13 @@ public class OcrMessageReceiver { private final OCRService ocrService; - @RabbitHandler @RabbitListener(queues = MessagingConfiguration.OCR_QUEUE, concurrency = "1") public void receiveOcr(String in) throws JsonProcessingException { DocumentRequest ocrRequestMessage = objectMapper.readValue(in, DocumentRequest.class); - long start = System.currentTimeMillis(); + log.info("Start ocr for file with dossierId {} and fileId {}", ocrRequestMessage.getDossierId(), ocrRequestMessage.getFileId()); setStatusOcrProcessing(ocrRequestMessage.getDossierId(), ocrRequestMessage.getFileId()); @@ -58,10 +57,8 @@ public class OcrMessageReceiver { } - long end = System.currentTimeMillis(); - log.info("Successfully processed ocr for file with dossierId {} and fileId {}, took {}", ocrRequestMessage.getDossierId(), ocrRequestMessage.getFileId(), end - start); - fileStatusProcessingUpdateClient.ocrSuccessful(ocrRequestMessage.getDossierId(), ocrRequestMessage.getFileId()); + }