Resolve issue #124 - poor performance with Tesseract v4

It seems that Tesseract v4 on a platform with OpenMP working correctly
while perform poorly with ocrmypdf because each will also soak up all
available CPUs. Running N^2 processes/threads on a N-core CPU where
each wants 100% of CPU turns out to be detrimental.

So, we restrict ocrmypdf w/tessv4 to a single Tesseract process at a
time, for now. Alternative may be to limit OpenMP threads if throughput
is higher.
This commit is contained in:
James R. Barlow
2017-01-18 17:52:12 -08:00
parent c42d9baa26
commit 18b6f05657
+4
View File
@@ -892,6 +892,8 @@ def build_pipeline(options, work_folder, log, context):
extras=[log, context])
task_ocr_tesseract_hocr.graphviz(fillcolor='"#00cc66"')
task_ocr_tesseract_hocr.active_if(options.pdf_renderer == 'hocr')
if tesseract.v4():
task_ocr_tesseract_hocr.jobs_limit(1) # Uses multi-core on its own
task_select_image_for_pdf = main_pipeline.collate(
task_func=select_image_for_pdf,
@@ -951,6 +953,8 @@ def build_pipeline(options, work_folder, log, context):
extras=[log, context])
task_tesseract_ocr_and_render_pdf.graphviz(fillcolor='"#66ccff"')
task_tesseract_ocr_and_render_pdf.active_if(options.pdf_renderer == 'tesseract')
if tesseract.v4():
task_tesseract_ocr_and_render_pdf.jobs_limit(1) # Uses multi-core
# PDF/A
task_generate_postscript_stub = main_pipeline.transform(