2012-12-26 21 views
9

Tôi đang tính bộ nhớ đã sử dụng với mã ColdFusion sau.Liệu java.lang.Runtime có báo cáo việc sử dụng bộ nhớ cho toàn bộ máy chủ Coldfusion hay chỉ một trang?

runtime = CreateObject("java", "java.lang.Runtime").getRuntime(); 

Sau đó, trong vòng lặp, tôi làm như sau để tính toán bộ nhớ đã sử dụng.

var usedGB = (runtime.totalMemory() - runtime.freeMemory())/1024.^3; // bytes -> KB -> MB -> GB 

Điều này cho tôi biết rằng gần 200 MB được sử dụng ngay từ đầu trang của tôi. Đây có phải là bao nhiêu đang được sử dụng bởi các máy chủ CF hoặc đây chỉ là một số chi phí từ trang của tôi?

Trả lời

6

Thời gian chạy cung cấp cho bạn số lượng heap đã được phân bổ. Điều này bao gồm các đối tượng và TLABs do đó số lượng bộ nhớ thực tế được sử dụng hơi nhỏ hơn điều này. Số tiền này được sử dụng bởi toàn bộ JVM bao gồm máy chủ ColdFusion hoặc bất kỳ ứng dụng hoặc thư viện nào khác mà bạn đang chạy. Không có cách nào để theo dõi bao nhiêu một trang hoặc chủ đề cá nhân đang sử dụng và bộ nhớ không phải là cục bộ cho một trang hoặc một chủ đề.

1

Cả hai totalMemoryfreeMemory sử dụng báo cáo của JVM - mà tôi mong đợi là máy chủ CF (trừ khi bạn đang chạy các công cụ khác trong cùng một JVM). Cộng với mọi chi phí JVM của khóa học.

Các vấn đề liên quan