`
yanguz123
  • 浏览: 564950 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

\(^_^)/ JVM中Stop The World例子

    博客分类:
  • Code
 
阅读更多

代码

package stopworld;

import java.util.HashMap;

public class StopTheWorld {
	public static class MyThread extends Thread{
		HashMap map = new HashMap();
		public void run(){
			while(true){
				if(map.size()*512/1024/1024>=400){
					map.clear();
					System.out.println("clean map");
				}
				byte[] b1;
				for(int i=0;i<100;i++){
					b1 = new byte[512];
					map.put(System.nanoTime(), b1);
				}
				try {
					Thread.sleep(1);
				} catch (InterruptedException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}
	}
	
	public static class PrintThread extends Thread{
		public static final long start = System.currentTimeMillis();
		public void run(){
			while(true){
				long t = System.currentTimeMillis()-start;
				System.out.println(t*1.0/1000);
				try {
					Thread.sleep(100);
				} catch (InterruptedException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}
	}
	
	public static void main(String args[]){
		MyThread s1 = new MyThread();
		PrintThread p1 = new PrintThread();
		s1.start();
		p1.start();
	}
}

 

控制台打印

0.0
0.101
0.202
0.302
0.402
0.503
0.603
0.703
0.803
0.903
1.004
1.104
1.204
1.304
1.405
1.505
1.605
1.707
1.807
1.907
2.007
2.107
2.207
2.433
2.533
2.633
2.733
2.833
2.933
3.034
3.134
3.234
3.334
3.434
3.534
3.634
3.734
3.835
3.935
4.035
4.135
4.235
4.341
4.442
4.542
4.642
4.742
4.936
5.036
5.136
5.236
5.336
5.437
5.539
5.639
5.739
5.84
5.94
6.04
6.14
6.24
6.34
6.441
6.541
6.641
6.741
6.842
6.942
7.042
7.142
7.242
7.342
7.779
7.879
7.979
8.079
8.179
8.279
8.379
8.479
8.58
8.68
8.78
8.88
8.98
9.084
9.184
9.284
9.384
9.488
clean map
9.588
9.688
9.788
9.889
10.035
10.135
10.235
10.335
10.435
10.535
10.635
10.735
10.835
10.935
11.035
11.135
11.235
11.335
11.435
11.535
11.635

  

gc日志

2.357: [GC2.358: [DefNew: 139776K->17472K(157248K), 0.1518325 secs] 139776K->123039K(506816K), 0.1521195 secs] [Times: user=0.11 sys=0.05, real=0.15 secs] 

4.832: [GC4.832: [DefNew: 157248K->17472K(157248K), 0.1802498 secs] 262815K->249974K(506816K), 0.1803705 secs] [Times: user=0.17 sys=0.00, real=0.18 secs] 

7.482: [GC7.482: [DefNew: 157248K->157248K(157248K), 0.0000456 secs]7.483: [Tenured: 232502K->349567K(349568K), 0.3730566 secs] 389750K->383428K(506816K), [Perm : 2512K->2512K(21248K)], 0.3732327 secs] [Times: user=0.34 sys=0.00, real=0.37 secs] 

9.985: [Full GC9.985: [Tenured: 349567K->31559K(349568K), 0.1265237 secs] 506815K->31559K(506816K), [Perm : 2512K->2512K(21248K)], 0.1266411 secs] [Times: user=0.13 sys=0.00, real=0.13 secs] 

 

 

分享到:
评论

相关推荐

    jvm-npm, 适用于JVM的兼容CommonJS模块加载器.zip

    jvm-npm, 适用于JVM的兼容CommonJS模块加载器 JVM上Javascript运行时中的NPM模块加载支持。 实现基于 http://nodejs.org/api/modules.html,应该完全兼容。 当然,不包括完整的node.js API,因此不要期望依赖于它的...

    Linux环境配置Java.docx

    在这个过程中,需要注意的是,版本号需要对应自己的版本号,例如图 1 中 /usr/jvm/jdk/bin/java 星号部分为版本号。 配置 Java 环境需要经过多个步骤,包括下载和安装 JDK、配置环境变量、设置默认 JDK 版本、验证 ...

    jdk 1.8 linux

    export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_131 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH 3、执行profile文件 [root@...

    Ubuntu 下jre的配置

    PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/lib/jvm/java/jdk1.6.0_20/bin" CLASSPATH=.:/usr/lib/jvm/java/jdk1.6.0_20/lib 第五步:设置默认 JDK 使用 update-...

    CCallJava.rar_c++ jvm_java dll_jvm_jvm.dll_vc jvm.dll

    VC调用java的简单例子。需要注意jvm.dll路径,路径不对就不能成功!

    Jvm.rar_jni_jni 线程_jvm

    在这个"Jvm.rar_jni_jni线程_jvm"的压缩包中,我们主要探讨的是JNI与Java线程的交互。 首先,JNI的核心是定义了一套接口,让Java代码可以创建本地方法(Native Method),这些方法可以在C/C++中实现。在"Jvm.cpp"这...

    Android代码-终端实现的 JVM 监视器。

    jvm-top lets you monitor your JVM server applications from the terminal. Install Requirement: a JDK8 on the server and JAVA_HOME environment variable pointing to it. It won't work with just a JRE. ...

    inside_jvm.rar_Inside the JVM_gettingloaded.html_inside jvm_insi

    《深入理解JVM》(Inside the JVM) 是一本关于Java虚拟机的重要参考资料,它涵盖了JVM的内部工作原理,包括类加载机制、内存管理、字节码执行等核心概念。"gettingloaded.html" 可能是其中的一个章节,专门探讨了类的...

    linux下安装jdk1.7.docx

    sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.7.0_79/bin/javac 300 sudo update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/jdk1.7.0_79/bin/jar 300 sudo update-...

    linux下为nginx添加jvmroute模块的方法

    代码如下:cd /optwget ... /opt/nginx_upstream_jvm_route/jvm_route.patc

    JVM.rar_java 工作流_java 虚拟机_jvm_jvm hook_虚拟机 Java

    Java虚拟机(JVM)是Java程序运行的基础,它是一个抽象的计算机系统,负责执行Java字节码。在深入理解JVM的工作流程之前,我们首先需要知道Java程序是如何被编译和运行的。Java源代码(.java文件)通过Java编译器...

    red hat Linux 9下JDK的配置

    sudo alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.8.0_版本号/bin/javac 1 sudo alternatives --config java sudo alternatives --config javac ``` 这将允许你在多个版本之间切换,并将当前的...

    JVM.zip_java jvm_jvm

    "JVM.zip"可能是一个包含了与JVM相关的工具或示例代码的压缩包,特别是用于获取运行中的JVM系统的参数。这通常是开发人员为了监控和优化Java应用程序性能的重要手段。 在Java中,`SystemInfo`类的出现很可能是为了...

    jvm_jvm新手_jvm_

    - **堆内存**:所有对象实例都在堆中分配内存,是JVM最大的内存区域,进行垃圾回收的主要区域。 - **栈内存**:每个线程都有自己的程序计数器、虚拟机栈、本地方法栈。栈帧用于存储局部变量、操作数栈、动态链接等...

    linux_jdk1.8.0_45安装方法

    sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.8.0_45/bin/javac 300 sudo update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/jdk1.8.0_45/bin/jar 300 ``` 其中 `300` ...

    16_Java高级_JVM垃圾回收机制.avi

    16_Java高级_JVM垃圾回收机制

    系统core和java虚拟机异常退出日志设置

    JVM_CRASH_LOG="-XX:ErrorFile=$PM4H_EXTLOG/jvm/jvm_crash_${MYNAME}.log" JAVA_OPTS="${JAVA_OPTS} ${JVM_CRASH_LOG}" 这将使得Java虚拟机崩溃日志被保存在$PM4H_EXTLOG/jvm目录下,并且文件名格式为jvm_crash_...

    linux下安装jdk

    将下载的文件(如`jdk1.6.0_12.bin`)放置在指定目录,例如`/usr/lib/jvm/java`。 为了让bin文件具有执行权限,运行以下命令: ``` sudo chmod +x jdk1.6.0_12.bin ``` 然后执行这个bin文件以开始安装过程: ``` ...

    ubuntu10.04LTS下安装jdk1.6_linux

    - 将下载好的 JDK 安装包复制到 `/usr/lib/jvm/java_x64` 目录中: ``` sudo cp ~/Downloads/jdk-6u45-linux-x64.bin /usr/lib/jvm/java_x64/ ``` 3. **设置文件权限** - 为确保安装程序能够正确运行,需要...

Global site tag (gtag.js) - Google Analytics