首页 > 解决方案 > 蟒蛇 | 使用“线程”在大文件中搜索时性能不佳

问题描述

我是 Python 的新手。请帮我解决性能问题。我正在开发一个生成字符串并在一个大文本文件(~1 GB)中搜索它的程序。

没有多线程程序加载大约 8% 的 CPU(6 个 pCPU;16 GB RAM)并且每秒执行大约 800 个周期。2 个线程(“线程”模块)加载大约相同的 8% CPU,每个线程每秒执行大约 400 个周期。线程的增加不会提高整体速度/性能。

程序示例:

import threading

text_file = 'C:/Work/text_file.csv'

def compute (ThreadNumbers):
    for i in range(100000):
        gen_string = <generation>

        if gen_string in file_read:
            print('SUCCESS')

with open(text_file, 'rt', encoding="utf-8") as f:
    file_read = f.read()
    t1 = threading.Thread(target=compute, args=("1"))
    t2 = threading.Thread(target=compute, args=("2"))
    t1.start()
    t2.start()
    t1.join()
    t2.join()

是否可以提高性能?

谢谢你。

标签: pythonmultithreadingsearch

解决方案


推荐阅读