我必須經常檢查應用程序的內存使用情況 - 它正確地每60秒使用一次java.lang.Runtime.freeMemory()/ java.lang.Runtime.totalMemory()性能對java.lang.Runtime進行頻繁調用totalMemory()/ freeMemory()的含義?
如果我做了上面說每5秒 - 任何性能影響?
(希望不喜歡的System.gc()有)
應用程序在Linux/Solaris中/窗/ HP-UX/AIX等
我必須經常檢查應用程序的內存使用情況 - 它正確地每60秒使用一次java.lang.Runtime.freeMemory()/ java.lang.Runtime.totalMemory()性能對java.lang.Runtime進行頻繁調用totalMemory()/ freeMemory()的含義?
如果我做了上面說每5秒 - 任何性能影響?
(希望不喜歡的System.gc()有)
應用程序在Linux/Solaris中/窗/ HP-UX/AIX等
測試一下,看看運行。如果你不能構建一個導致性能指標下降的測試,那麼我的用戶也不會注意到它。
直覺:應該不是問題。現在,不斷監視內存的應用程序是否具有良好的設計......這是另一個問題。
我跟蹤它在OpenJDK的jvm.cpp
JVM_ENTRY_NO_ENV(jlong, JVM_TotalMemory(void))
JVMWrapper("JVM_TotalMemory");
size_t n = Universe::heap()->capacity();
return convert_size_t_to_jlong(n);
JVM_END
尋找的宇宙鉛實施
public CollectedHeap heap() {
try {
return (CollectedHeap) heapConstructor.instantiateWrapperFor(collectedHeapField.getValue());
} catch (WrongTypeException e) {
return new CollectedHeap(collectedHeapField.getValue());
}
}
哎呀CollectedHeap是一個接口......因此,我得出的結論是mark-peters'測試並看'會是最好的。
愛得到底,挖。 – Erigami 2013-02-13 20:51:02