本文整理汇总了Java中sun.hotspot.WhiteBox.NMTWaitForDataMerge方法的典型用法代码示例。如果您正苦于以下问题:Java WhiteBox.NMTWaitForDataMerge方法的具体用法?Java WhiteBox.NMTWaitForDataMerge怎么用?Java WhiteBox.NMTWaitForDataMerge使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类sun.hotspot.WhiteBox
的用法示例。
在下文中一共展示了WhiteBox.NMTWaitForDataMerge方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: main
import sun.hotspot.WhiteBox; //导入方法依赖的package包/类
public static void main(String args[]) throws Exception {
WhiteBox wb = WhiteBox.getWhiteBox();
long reserveSize = 256 * 1024;
long addr;
addr = wb.NMTReserveMemory(reserveSize);
wb.NMTCommitMemory(addr, 128*1024);
wb.NMTReleaseMemory(addr, reserveSize);
wb.NMTWaitForDataMerge();
}
示例2: main
import sun.hotspot.WhiteBox; //导入方法依赖的package包/类
public static void main(String args[]) throws Exception {
OutputAnalyzer output;
WhiteBox wb = WhiteBox.getWhiteBox();
// Grab my own PID
String pid = Integer.toString(ProcessTools.getProcessId());
ProcessBuilder pb = new ProcessBuilder();
// Use WB API to alloc and free with the mtTest type
long memAlloc3 = wb.NMTMalloc(128 * 1024);
long memAlloc2 = wb.NMTMalloc(256 * 1024);
wb.NMTFree(memAlloc3);
long memAlloc1 = wb.NMTMalloc(512 * 1024);
wb.NMTFree(memAlloc2);
// Use WB API to ensure that all data has been merged before we continue
if (!wb.NMTWaitForDataMerge()) {
throw new Exception("Call to WB API NMTWaitForDataMerge() failed");
}
// Run 'jcmd <pid> VM.native_memory summary'
pb.command(new String[] { JDKToolFinder.getJDKTool("jcmd"), pid, "VM.native_memory", "summary"});
output = new OutputAnalyzer(pb.start());
output.shouldContain("Test (reserved=512KB, committed=512KB)");
// Free the memory allocated by NMTAllocTest
wb.NMTFree(memAlloc1);
// Use WB API to ensure that all data has been merged before we continue
if (!wb.NMTWaitForDataMerge()) {
throw new Exception("Call to WB API NMTWaitForDataMerge() failed");
}
output = new OutputAnalyzer(pb.start());
output.shouldNotContain("Test (reserved=");
}
示例3: main
import sun.hotspot.WhiteBox; //导入方法依赖的package包/类
public static void main(String args[]) throws Exception {
OutputAnalyzer output;
WhiteBox wb = WhiteBox.getWhiteBox();
// Grab my own PID
String pid = Integer.toString(ProcessTools.getProcessId());
ProcessBuilder pb = new ProcessBuilder();
// Use WB API to alloc and free with the mtTest type
long memAlloc1 = wb.NMTMalloc(512 * 1024);
// Use WB API to ensure that all data has been merged before we continue
if (!wb.NMTWaitForDataMerge()) {
throw new Exception("Call to WB API NMTWaitForDataMerge() failed");
}
// Run 'jcmd <pid> VM.native_memory baseline'
pb.command(new String[] { JDKToolFinder.getJDKTool("jcmd"), pid, "VM.native_memory", "baseline"});
pb.start();
wb.NMTFree(memAlloc1);
// Use WB API to ensure that all data has been merged before we continue
if (!wb.NMTWaitForDataMerge()) {
throw new Exception("Call to WB API NMTWaitForDataMerge() failed");
}
// Run 'jcmd <pid> VM.native_memory detail.diff'
pb.command(new String[] { JDKToolFinder.getJDKTool("jcmd"), pid, "VM.native_memory", "detail.diff"});
output = new OutputAnalyzer(pb.start());
// Use WB API to ensure that all data has been merged before we continue
if (!wb.NMTWaitForDataMerge()) {
throw new Exception("Call to WB API NMTWaitForDataMerge() failed");
}
// above malloc callsite should report 0
output = new OutputAnalyzer(pb.start());
output.shouldContain("(malloc=0");
}
示例4: main
import sun.hotspot.WhiteBox; //导入方法依赖的package包/类
public static void main(String args[]) throws Exception {
OutputAnalyzer output;
final WhiteBox wb = WhiteBox.getWhiteBox();
// Grab my own PID
String pid = Integer.toString(ProcessTools.getProcessId());
ProcessBuilder pb = new ProcessBuilder();
Thread allocThread = new Thread() {
public void run() {
// Alloc memory using the WB api
memAlloc1 = wb.NMTMalloc(128 * 1024);
memAlloc2 = wb.NMTMalloc(256 * 1024);
memAlloc3 = wb.NMTMalloc(512 * 1024);
}
};
allocThread.start();
allocThread.join();
// Use WB API to ensure that all data has been merged before we continue
if (!wb.NMTWaitForDataMerge()) {
throw new Exception("Call to WB API NMTWaitForDataMerge() failed");
}
// Run 'jcmd <pid> VM.native_memory summary'
pb.command(new String[] { JDKToolFinder.getJDKTool("jcmd"), pid, "VM.native_memory", "summary"});
output = new OutputAnalyzer(pb.start());
output.shouldContain("Test (reserved=896KB, committed=896KB)");
Thread freeThread = new Thread() {
public void run() {
// Free the memory allocated by NMTMalloc
wb.NMTFree(memAlloc1);
wb.NMTFree(memAlloc2);
wb.NMTFree(memAlloc3);
}
};
freeThread.start();
freeThread.join();
// Use WB API to ensure that all data has been merged before we continue
if (!wb.NMTWaitForDataMerge()) {
throw new Exception("Call to WB API NMTWaitForDataMerge() failed");
}
output = new OutputAnalyzer(pb.start());
output.shouldNotContain("Test (reserved=");
}