Làm cách nào để kiểm tra mức sử dụng bộ nhớ của chương trình Python trong PyCharm? ✅ 2023
Kinh Nghiệm về Làm cách nào để kiểm tra mức sử dụng bộ nhớ của chương trình Python trong PyCharm? Mới Nhất
Hoàng Đức Anh đang tìm kiếm từ khóa Làm cách nào để kiểm tra mức sử dụng bộ nhớ của chương trình Python trong PyCharm? được Update vào lúc : 2022-12-23 20:10:11 . Với phương châm chia sẻ Bí quyết về trong nội dung bài viết một cách Chi Tiết 2022. Nếu sau khi đọc Post vẫn ko hiểu thì hoàn toàn có thể lại Comments ở cuối bài để Admin lý giải và hướng dẫn lại nha.Ghi chú. Gói này sẽ không hề được duy trì tích cực. Tôi sẽ không tích cực phản hồi những vấn đề. Nếu bạn muốn tình nguyện duy trì nó, vui lòng gửi cho tôi một dòng tại [email protected] bọc lưới
Nội dung chính Show- Cài đặtBắt đầu nhanhCách sử dụngsử dụng bộ nhớ từng dòngNgười trang tríTheo dõi những tiến trình con rẽ nhánhTại sao lập hồ sơ bộ nhớ lại quan trọng?Cài đặtCách sử dụngLàm cách nào để theo dõi việc sử dụng bộ nhớ trong Python?PyCharm sử dụng bao nhiêu bộ nhớ?Làm cách nào để kiểm tra rò rỉ bộ nhớ trong Python?Python nên sử dụng bao nhiêu bộ nhớ?
Đây là một mô-đun python để theo dõi mức tiêu thụ bộ nhớ của một quy trình cũng như phân tích từng dòng tiêu thụ bộ nhớ cho những chương trình python. Nó là một mô-đun python thuần túy phụ thuộc vào mô-đun psutil
Cài đặt
Cài đặt qua pip
$ pip install -U memory_profilerGói này cũng luôn có thể có sẵn trên conda-forge
Để setup từ nguồn, hãy tải xuống gói, giải nén và nhập
$ pip install .Bắt đầu nhanh
Sử dụng mprof để tạo báo cáo sử dụng bộ nhớ đầy đủ cho tệp thực thi của bạn và vẽ sơ đồ
mprof run executable mprof plotCốt truyện sẽ là một chiếc gì đó như vậy này

Cách sử dụng
sử dụng bộ nhớ từng dòng
Chế độ sử dụng bộ nhớ từng dòng được sử dụng nhiều theo cách tương tự của line_profiler. trước tiên hãy trang trí hiệu suất cao bạn muốn lập hồ sơ bằng @profile và sau đó chạy tập lệnh bằng một tập lệnh đặc biệt (trong trường hợp này là những đối số rõ ràng cho trình thông dịch Python)
Trong ví dụ sau, tất cả chúng ta tạo một hàm đơn giản my_func phân bổ list a, b và sau đó xóa b
@profile def my_func(): a = [1] * (10 ** 6) b = [2] * (2 * 10 ** 7) del b return a if __name__ == '__main__': my_func()Thực thi mã chuyển tùy chọn -m memory_profiler tới trình thông dịch python để tải mô-đun memory_profiler và in ra thiết bị xuất chuẩn để phân tích từng dòng. Nếu tên tệp là ví dụ. py, điều này sẽ dẫn đến
$ python -m memory_profiler example.pyĐầu ra sẽ theo sau
Line # Mem usage Increment Occurrences Line Contents ============================================================ 3 38.816 MiB 38.816 MiB 1 @profile 4 def my_func(): 5 46.492 MiB 7.676 MiB 1 a = [1] * (10 ** 6) 6 199.117 MiB 152.625 MiB 1 b = [2] * (2 * 10 ** 7) 7 46.629 MiB -152.488 MiB 1 del b 8 46.629 MiB 0.000 MiB 1 return aCột đầu tiên biểu thị số dòng mã đã được định thông số kỹ thuật, cột thứ hai (Mem usage) sử dụng bộ nhớ của trình thông dịch Python sau khi dòng đó được thực thi. Cột thứ ba (Increment) thể hiện sự khác lạ trong bộ nhớ của dòng hiện tại so với dòng ở đầu cuối. Cột ở đầu cuối (Nội dung dòng) in mã đã được định hình
Người trang trí
Một trang trí hiệu suất cao cũng luôn có thể có sẵn. Sử dụng như sau
from memory_profiler import profile @profile def my_func(): a = [1] * (10 ** 6) b = [2] * (2 * 10 ** 7) del b return aTrong trường hợp này, tập lệnh hoàn toàn có thể chạy mà không cần chỉ định -m memory_profiler trong dòng lệnh
Trong hàm trang trí, bạn hoàn toàn có thể chỉ định độ đúng chuẩn làm đối số cho hàm trang trí. Sử dụng như sau
from memory_profiler import profile @profile(precision=4) def my_func(): a = [1] * (10 ** 6) b = [2] * (2 * 10 ** 7) del b return aNếu tập lệnh python với trình trang trí @profile được gọi là phương pháp sử dụng -m memory_profiler trong dòng lệnh, tham số đúng chuẩn sẽ bị bỏ qua
Theo dõi những tiến trình con rẽ nhánh
Trong ngữ cảnh đa xử lý, quy trình chính sẽ sinh ra những quy trình con có tài năng nguyên khối mạng lưới hệ thống được phân bổ riêng biệt với quy trình mẹ. Điều này hoàn toàn có thể dẫn đến một báo cáo không đúng chuẩn về việc sử dụng bộ nhớ vì theo mặc định, chỉ có tiến trình gốc được theo dõi. Tiện ích mprof đáp ứng hai cơ chế để theo dõi việc sử dụng những tiến trình con. tổng hợp bộ nhớ của tất cả trẻ em theo cách sử dụng của cha mẹ và theo dõi từng thành viên trẻ
Để tạo báo cáo phối hợp mức sử dụng bộ nhớ của tất cả phần tử con và phần tử gốc, hãy sử dụng cờ gồm có phần tử con trong trình trang trí thông số kỹ thuật hoặc làm đối số dòng lệnh cho mprof
Python là một ngôn từ phổ biến trong hiệp hội khoa học tài liệu được nghe biết với sự mạnh mẽ và tự tin và sự hiện hữu rộng rãi của những khung. Python thích sự đơn giản hơn phức tạp khiến nó trở nên phổ biến hơn nhưng lại ảnh hưởng đến hiệu suất. Các chương trình Python thường dễ gặp sự cố quản lý bộ nhớ
Các nhà khoa học tài liệu sử dụng ngôn từ Python để xử lý một lượng lớn tài liệu trên một số trong những lượng giới hạn bộ nhớ cố định và thắt chặt. Nếu thực thi mã vượt quá số lượng giới hạn RAM, người tiêu dùng hoàn toàn có thể gặp lỗi bộ nhớ và quá trình thực thi chương trình kết thúc. Một giải pháp nhanh gọn là tăng phân bổ bộ nhớ để tránh những vấn đề về quản lý bộ nhớ, nhưng điều này sẽ không phải lúc nào thì cũng khả thi
Tại sao lập hồ sơ bộ nhớ lại quan trọng?
Người mới thường không giải phóng những bộ nhớ không sử dụng và liên tục gán những biến mới, điều này hoàn toàn có thể làm tăng mức tiêu thụ bộ nhớ. Khi mã được thực thi, càng nhiều bộ nhớ được gán. Python tự động quản lý bộ nhớ, nhưng nó hoàn toàn có thể không trả lại mức tiêu thụ bộ nhớ cho hệ điều hành trong khi thực thi những mã Python dài
Vì vậy, những công cụ bên phía ngoài được yêu cầu để theo dõi mức tiêu thụ bộ nhớ sẽ giúp tối ưu hóa bộ nhớ hơn thế nữa
Bài viết này sẽ thảo luận về mô-đun trình thông số kỹ thuật bộ nhớ theo dõi mức tiêu thụ bộ nhớ của những hàm Python
Hồ sơ bộ nhớMemory Profiler là một mô-đun Python nguồn mở sử dụng mô-đun
$ pip install .1 bên trong, để theo dõi mức tiêu thụ bộ nhớ của những hàm Python. Nó thực hiện phân tích mức tiêu thụ bộ nhớ từng dòng của hiệu suất caoCài đặt
Memory Profiler hoàn toàn có thể được setup từ PyPi bằng phương pháp sử dụng
________số 8và hoàn toàn có thể được nhập bằng phương pháp sử dụng
from memory_profiler import profileCách sử dụng
Sau khi mọi thứ được thiết lập, thật thuận tiện và đơn giản để sử dụng mô-đun này để theo dõi mức tiêu thụ bộ nhớ của hiệu suất cao. Trang trí
$ pip install .2 hoàn toàn có thể được sử dụng trước mọi hiệu suất cao cần phải theo dõi. Điều này sẽ theo dõi từng dòng tiêu thụ bộ nhớ theo cách tương tự như của line-profilerSau khi trang trí tất cả những hiệu suất cao bằng
$ pip install .2, hãy thực thi tập lệnh python với một bộ đối số rõ ràngThực thi tập lệnh Python ở trên bằng phương pháp bỏ qua
$ pip install .4 tới trình thông dịch Python. Thao tác này sẽ tải mô-đun memory_profiler và in từng dòng tiêu thụ bộ nhớSử dụng phía dưới để thực thi tập lệnh Python cùng với trình lược tả bộ nhớ
$ pip install .0Sau khi thực hiện thành công, bạn sẽ nhận được báo cáo mức tiêu thụ bộ nhớ theo từng dòng, tương tự như hình trên. Báo cáo có 5 cột
- Dòng #. Số dòngNội dung dòng. Mã Python ở mỗi số dòngmem sử dụng. Mức sử dụng bộ nhớ của trình thông dịch Python sau mỗi lần thực hiện dòngTăng. Sự khác lạ về mức tiêu thụ bộ nhớ từ dòng hiện tại đến dòng ở đầu cuối. Về cơ bản, nó biểu thị bộ nhớ được sử dụng bởi một dòng mã Python cụ thểlần xuất hiện. Số lần một dòng mã rõ ràng được thực thi
Mức sử dụng Mem hoàn toàn có thể được theo dõi để quan sát tổng dung tích bộ nhớ bằng trình thông dịch Python, trong khi cột Gia tăng hoàn toàn có thể được quan sát để xem mức tiêu thụ bộ nhớ cho một dòng mã rõ ràng. Bằng cách quan sát mức sử dụng bộ nhớ, người ta hoàn toàn có thể tối ưu hóa mức tiêu thụ bộ nhớ để phát triển mã sẵn sàng sản xuất
Phần kết luậnTối ưu hóa mức tiêu thụ bộ nhớ cũng quan trọng như tối ưu hóa độ phức tạp về thời gian của mã Python. Bằng cách tối ưu hóa mức tiêu thụ bộ nhớ, người ta hoàn toàn có thể tăng tốc độ thực thi ở một mức độ nào đó và tránh sự cố bộ nhớ
Người ta cũng hoàn toàn có thể thử trang trí
$ pip install .2 tùy chỉnh để chỉ định độ đúng chuẩn của đối số. Đọc tài liệu về module thông số kỹ thuật bộ nhớ để làm rõ hơnNgười ra mắt[1] Tài liệu Trình biên dịch bộ nhớ. https. //pypi. org/project/memory-profiler/
Thích nội dung bài viết? . Tôi sẽ nhận được một phần nhỏ phí thành viên của bạn nếu bạn sử dụng link sau mà không phải trả thêm phí