我已经在两台不同的计算机上用 python 测试了相同的代码。在第一个中,代码长了 9 秒,而在第二个中(一个更强大的机器,第一个是 16MRAM x 8MRAM)是 185 秒。在 cProfile 中分析,这两种情况下最关键的过程是 waitforsingleobject。分析一个特定的功能,我可以看到关键部分是带有 tesserecat 的 OCR。为什么这两台机器的性能如此不同?
这个特定函数的 cProfile 的主要行是:
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.002 0.002 115.398 115.398 bpl-Redonda4.py:261(pega_stack_nome_jogadores)
18 0.000 0.000 0.001 0.000 pytesseract.py:106(准备)
18 0.000 0.000 0.118 0.007 pytesseract.py:116(save_image)
18 0.000 0.000 0.000 0.000 pytesseract.py:140(subprocess_args)
18 0.000 0.000 115.186 6.399 pytesseract.py:162(run_tesseract)
18 0.001 0.000 115.373 6.410 pytesseract.py:199(run_and_get_output)
12 0.000 0.000 76.954 6.413 pytesseract.py:295(image_to_string)
12 0.000 0.000 76.954 6.413 pytesseract.py:308()
6 0.000 0.000 38.419 6.403 pytesseract.py:328(image_to_boxes)
6 0.000 0.000 38.419 6.403 pytesseract.py:345()
18 0.000 0.000 0.060 0.003 pytesseract.py:97(清理)
18 0.000 0.000 115.096 6.394 subprocess.py:979(等待)
18 115.096 6.394 115.096 6.394 {内置方法_winapi.WaitForSingleObject}