Hướng dẫn python multiprocessing memory leak - Rò rỉ bộ nhớ đa xử lý python
Tôi tìm thấy một vài bài viết nên chứng minh khá hữu ích. Vẫn chưa có thời gian để tiêu hóa tất cả thông tin trong đó, nhưng nghĩ rằng tôi sẽ đăng các liên kết và cho phép bạn xem xét chúng. Show
Marius Gedminas có hai bài viết về việc săn lùng memleaks trong một bộ thử nghiệm Python. Anh ta đang sử dụng các mô-đun Tôi sẽ xem xét bản thân của mình sau ngày hôm nay khi tôi có thời gian. CẬP NHẬT Marius đã phát hành giàn thử nghiệm của mình như một dự án nguồn mở có tên Các tài liệu khá tự giải thích và tôi không thể thấy một lý do tại sao nó cũng không hoạt động với các ứng dụng Tuy nhiên, nếu rò rỉ bộ nhớ của bạn đến từ một số thư viện C bên dưới thì điều này có thể không giúp bạn. Ít nhất nó sẽ cho bạn một ý tưởng về nơi rò rỉ. Nếu hóa ra không nằm trong mã Python của bạn thì bạn có thể phải tái cấu trúc mã của mình để bạn có thể chạy các thư viện C có liên quan trong quy trình chính và sử dụng một cái gì đó như Valgrind để phát hiện rò rỉ. Bài đăng gốc http://mg.pov.lt/blog/hunting-python-memleaks.html Một trong những nơi anh ấy đi vào các công cụ mà anh ấy đang sử dụng http://mg.pov.lt/blog/python-object-graphs.html Bài đăng khiến tôi bắt đầu http://www.lshift.net/blog/2008/11/14/tracing-python-memory-reaks Có một vấn đề rò rỉ bộ nhớ lịch sử trong ứng dụng Django của chúng tôi và tôi đã sửa nó gần đây. Thời gian trôi qua, việc sử dụng bộ nhớ của ứng dụng tiếp tục phát triển và việc sử dụng CPU cũng vậy. Sau một số nghiên cứu, tôi tìm ra nguyên nhân. Một số chế độ xem không đóng 0 với câu lệnh 1.
Nhưng tôi vẫn quan tâm đến nó và viết một số mã thử nghiệm. Kịch bản được chạy trong Python 3.6.8 và tạo ra kết quả tương tự khi sử dụng 2.
Như bạn có thể thấy, có bốn chức năng. Hàm 3 là 0 không có 5 và 6, RAM tiếp tục phát triển và kịch bản bị mắc kẹt. 7, 8 và 9 sẽ thoát ra bình thường nhưng thời gian là khác nhau.Tại sao |