Có cách nào sạch và dễ dàng để đo lường nó ngoài cách lập trình đo kích thước của từng loại dữ liệu (mà mỗi đối tượng được cấu tạo) được lưu trong phiên không?Đo kích thước của đối tượng HttpSession
Trả lời
Có một lớp SessionSize here có hàm trả về kích thước của đối tượng HttpSession được truyền cho nó, một phần của lib Java Web Parts.
Nội dung phiên phải được Serializable. Vì vậy, tuần tự hóa nó và xem kích thước của mảng byte kết quả.
Nó không bằng kích thước trong bộ nhớ, nhưng có thể được sử dụng như một biểu diễn thô sơ của nó.
P.S. Lưu ý rằng các trường tạm thời, nếu có, sẽ bị loại trừ.
MessAdmin cho phép bạn tính kích thước HttpSession mặc dù không rõ ràng cách nó calculates the size of transient objects.
Dường như nhận được kích thước gần đúng của đối tượng HttpSession là một bài tập vô ích trong sản xuất và có khả năng nhận được kích thước chính xác hơn cho môi trường được kiểm soát. Một điều cần lưu ý là kích thước của đối tượng phiên được tuần tự hóa bị ràng buộc không chính xác do thay đổi trong mã hóa ký tự - Các chuỗi trong Java được lưu trữ theo định dạng UTF-16 trong khi luồng đầu ra có thể bằng mã hóa khác. Bạn có thể tìm thấy thêm chi tiết về lý do tại sao tính toán kích thước của một đối tượng trong Java là JavaWorld article.
Tôi đang sử dụng điều này trong một ứng dụng web với khung struts-2 và spring 3.4 là container đối tượng, kích thước phiên của tôi luôn là -1 có nghĩa là nó không thể tính toán kích thước của các đối tượng trong phiên. –
@Alireza Fattahi Tôi đã vật lộn với cùng một vấn đề. Và cuối cùng tôi phát hiện ra rằng bạn cần sử dụng plugin MessAdmin-SizeOf ngoài MessAdmin-Core và MessAdmin-AutoProb để có được kích thước thuộc tính phiên. Bạn cũng có thể muốn thêm MessAdmin-Serializable. – magicbacon
- 1. Đo chính xác kích thước đối tượng
- 2. Cách đo kích thước của đối tượng Ruby?
- 3. Nhận dạng đối tượng và kích thước đo
- 4. PHP: Đo kích thước tính bằng kilobyte của một đối tượng/mảng?
- 5. Kích thước đối tượng .NET
- 6. Vòng đời của đối tượng Java HttpSession là gì?
- 7. Đo kích thước thư viện trong Linux
- 8. Tìm hiểu kích thước của đối tượng .net
- 9. Kích thước của một đối tượng trong thời gian chạy
- 10. Android & Dalvik - Nhận kích thước của một đối tượng
- 11. python. lấy kích thước của một đối tượng
- 12. Java Reflection - Lấy kích thước của đối tượng mảng
- 13. Kích thước của đối tượng tệp đang mở
- 14. Tính kích thước byte của đối tượng Java
- 15. Tìm hiểu kích thước của một đối tượng đa hình
- 16. Flask: Lấy kích thước của đối tượng request.files
- 17. xác định kích thước của đối tượng: cách tốt nhất để sử dụng thiết bị đo đạc trong scala/sbt
- 18. HttpSession trả về đối tượng rỗng cho SPRING_SECURITY_CONTEXT
- 19. Giới hạn biến HTTPSession
- 20. Đo kích thước chuỗi theo Byte trong php
- 21. VariableSizedWrapGrid và WrapGrid kích thước trẻ em đo
- 22. PHP disk_total_space sẽ không đo kích thước phân vùng LVM
- 23. Giới hạn kích thước đối tượng OpenGL FrameBuffer tối đa?
- 24. Cách lấy kích thước đối tượng trong bộ nhớ?
- 25. Điều gì ngăn cản tôi thay đổi kích thước (giảm kích thước) cửa sổ của tôi tạo thành đối tượng?
- 26. Đối tượng Ruby có giới hạn kích thước không?
- 27. Amazon S3. Kích thước đối tượng tối đa
- 28. cách xác định kích thước mã đối tượng trên Linux khi "kích thước" đưa ra câu trả lời sai?
- 29. Vals cuối cùng có tăng kích thước đối tượng không?
- 30. Chia đối tượng NSData thành các đối tượng NSData khác có kích thước nhất định
Thuộc tính phiên ** nên ** có thể được tuần tự hóa (như trong "thực hành tốt để làm như vậy"); nhưng họ không ** có **. – ChssPly76
Tuần tự hóa phiên là một cách hiệu quả để tiết kiệm bộ nhớ bằng cách lưu các phiên không sử dụng vào đĩa. Nếu Erlanged có ứng dụng với phiên không serializable, đó là điều đầu tiên để sửa chữa thay vì đo kích thước của phiên induvidual '. –
Re: phải/nên: container PHẢI chấp nhận đối tượng Serializable, và CÓ THỂ chấp nhận những người khác. Nó cũng có thể ném IllegalArgumentException trên bất kỳ một không serializable. Tôi muốn nói Serializable là khá nhiều PHẢI, theo cách WE-TOLD-YOU-SO. –