python - 蟒蛇 | 使用“线程”在大文件中搜索时性能不佳
问题描述
我是 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()
是否可以提高性能?
谢谢你。
解决方案
推荐阅读
- asp.net-core - .NET Core Blazor 从 Razor 页面或 Blazor 组件动态检索 html 作为字符串
- c# - Azure Devops GitHttpClient 的 CreateAnnotatedTagAsync API 失败
- reactjs - navigator.geolocation.watchPosition 在 React 中两次:更新频率不同
- javascript - 将代码从 Angular 7 迁移到 10 时出现缺少依赖错误
- r - 闪亮的数据表模式可编辑 - 限制特定的列和行
- javascript - 通过 getter 将数据代理到计算属性(v-model)
- javascript - await 没有得到返回值
- python - 尝试使用 openpyxl.load_workbook 访问文件时出现“TypeError:值必须是序列”
- excel - 在excel中的特定范围之间复制数据
- php - WHMCS 配置模块,默认添加自定义字段