zbparse/flask_app/test_case/test_内存泄漏.py

62 lines
2.4 KiB
Python
Raw Normal View History

2025-02-18 09:29:34 +08:00
# test_内存泄漏.py
from memory_profiler import memory_usage
import time
from flask_app.general.读取文件.按页读取pdf import read_pdf_main
from flask_app.general.通用功能函数 import get_global_logger
from flask_app.routes.货物标解析main import preprocess_file_main
def process_data():
# 模拟一些占用内存的操作
data = [i for i in range(1000000)] # 建一个1000万元素的list
time.sleep(1) # 假装处理2秒
return len(data)
def call():
a = 1
process_data()
return a
def process_pdf(pdf_path):
"""子进程里实际执行的函数"""
result = read_pdf_main(pdf_path=pdf_path)
return result
2025-02-18 09:29:34 +08:00
def main():
for i in range(3):
logger = get_global_logger("123")
pdf_path1=r'C:\Users\Administrator\Desktop\工程标\招标test文件夹\zbtest13.pdf'
pdf_path2 = r'C:\Users\Administrator\Desktop\fsdownload\4fb2f541-29c3-497f-9f0a-5216a10591a1\tmp\ztbfile.pdf'
pdf_path3= r'C:\Users\Administrator\Desktop\fsdownload\2c3e2291-6804-4ef0-b4a8-6f457edd5709\tmp\ztbfile.pdf'
output_folder1 = r'C:\Users\Administrator\Desktop\fsdownload\4fb2f541-29c3-497f-9f0a-5216a10591a1\tmp'
output_folder2 = r'C:\Users\Administrator\Desktop\fsdownload\4fb2f541-29c3-497f-9f0a-5216a10591a1\tmp'
output_folder3=r'C:\Users\Administrator\Desktop\fsdownload\2c3e2291-6804-4ef0-b4a8-6f457edd5709\tmp'
mem_before = memory_usage()[0]
if i % 3 == 0:
output_folder = output_folder1
pdf_path = pdf_path1
elif i %3 ==1:
output_folder = output_folder2
pdf_path = pdf_path2
else:
output_folder = output_folder3
pdf_path = pdf_path3
result=preprocess_file_main(output_folder, pdf_path, 2,logger)
process_pdf(pdf_path)
response_data = {
'result': {
'procurement_spec': result['procurement_path'],
'evaluation_method': result['evaluation_method_path'],
'qualification_docs': result['qualification_path'],
'notice_docs': result['notice_path'],
'clause_details': result['clause_path'],
'merged_baseinfo': result['merged_baseinfo_path']
}
}
print(response_data)
mem_after = memory_usage()[0]
print(f"Memory before: {mem_before} MiB, Memory after: {mem_after} MiB")
if __name__ == '__main__':
main()