Tôi có một số mã python nơi gc.collect() dường như giải phóng nhiều bộ nhớ. Với tính chất đếm tham chiếu của Python, tôi có khuynh hướng nghĩ rằng chương trình của tôi chứa rất nhiều tài liệu tham khảo theo chu kỳ. Vì một số cấu trúc dữ liệu khá lớn, tôi muốn giới thiệu các tham chiếu yếu. Bây giờ tôi cần phải tìm các tài liệu tham khảo vòng tròn, đã tìm thấy một vài trong số những cái hiển nhiên, Tôi tự hỏi liệu người ta có thể phát hiện các tham chiếu vòng tròn và các đối tượng tạo thành vòng rõ ràng hay không. Cho đến nay tôi chỉ thấy hướng dẫn về cách gọi gc.collect et. al.Làm thế nào để tìm ra tài liệu tham khảo vòng tròn cụ thể nào có trong mã
5
A
Trả lời
0
Trừ khi bạn đang ghi đè các phương pháp __del__
, bạn không nên lo lắng về phụ thuộc vòng tròn, vì Python có thể đối phó đúng với chúng.
+0
... cho đến khi bạn cố gắng sử dụng tính năng đa xử lý của python và các đối tượng của bạn không được chọn nữa . IMO là một ý tưởng tốt để suy nghĩ về cách tránh các tham chiếu tuần hoàn khi thiết kế một ứng dụng, bởi vì nó giữ một số cửa mở để tối ưu hóa hiệu suất sau này. Đó là * không * giống như tối ưu hóa sớm. –
Các vấn đề liên quan
- 1. Làm thế nào để tạo ra một loại tài liệu tham khảo từ int
- 2. Làm thế nào để tham khảo các phương pháp thể hiện trong tài liệu?
- 3. Làm thế nào để làm tài liệu tham khảo phương pháp trong tham số thuộc tính
- 4. Làm thế nào để có được tài liệu tham khảo tài liệu tham khảo theo loại fixture trong thử nghiệm trong symfony WebTestCase?
- 5. vòng lặp và tài liệu tham khảo tính chuỗi
- 6. Làm thế nào để tham khảo hoặc "tìm" một PreferenceActivity?
- 7. .NET Application_BeginRequest - Làm thế nào để có được tài liệu tham khảo của người dùng?
- 8. Thêm tài liệu tham khảo trong PHP để một mảng tạo ra một loạt các tài liệu tham khảo
- 9. Có nơi nào chính thức để tìm tài liệu tham khảo bài viết của OpenCV không?
- 10. Tài liệu tham khảo Tài liệu tham khảo với COM gọi
- 11. Làm thế nào để dỡ bỏ một tài liệu tham khảo lắp ráp NET trong IronPython
- 12. Tìm tài liệu tham khảo phương pháp trong Xcode
- 13. Làm thế nào để "thêm tài liệu tham khảo" trong C++
- 14. Tìm tất cả các tài liệu tham khảo để xem
- 15. Làm cách nào để tìm tham chiếu vòng tròn trong xml serialization?
- 16. Tài liệu tham khảo TYPO3
- 17. 'này' tài liệu tham khảo trong JavaScript
- 18. tài liệu tham khảo Variable trong lisp
- 19. Làm thế nào để tạo ra một vòng tròn với một lỗ trong một vòng tròn trong WPF?
- 20. Làm thế nào để sử dụng đúng tài liệu tham khảo với các mẫu variadic
- 21. Thực hiện mô hình Mediator trong Delphi mà không nhận được tài liệu tham khảo tròn
- 22. Không thể thêm tài liệu tham khảo phục vụ
- 23. Đồ đạc giáo lý - tham khảo vòng tròn
- 24. Làm thế nào để mở rộng tài sản tham khảo trong tài nguyên jar?
- 25. Làm thế nào để tham khảo mockito trong tycho?
- 26. Làm cách nào để bạn có thể kiểm soát tên tệp cho Tài liệu tham khảo dịch vụ .NET?
- 27. Java tĩnh tự tài liệu tham khảo
- 28. Làm thế nào để sử dụng :: operator như tài liệu tham khảo này
- 29. Có tài liệu tham khảo/tài liệu trình duyệt Android nào không?
- 30. Làm thế nào để vẽ một vòng tròn trong suốt?
Các đối tượng này có phương thức '__del__' tùy chỉnh không? – Cyphase
Bạn có thể tìm thấy gói [objgraph] (http://mg.pov.lt/objgraph/) hữu ích. Nó sẽ tạo ra một trực quan hóa các tham chiếu giữa các đối tượng. [Đây là một bài đăng trên blog về tham chiếu vòng tròn và đồ thị.] (Http://engineering.hearsaysocial.com/2013/06/16/circular-references-in-python/) – Cyphase
Tôi cũng sẽ chỉ đề cập đến lý tưởng, bạn sẽ loại bỏ các tham chiếu vòng tròn này ở nơi đầu tiên, nếu có thể, thay vì cố gắng làm việc xung quanh chúng :). – Cyphase