黑客24小时在线接单网站

联系黑客,怎么找黑客,24小时在线黑客,黑客在线QQ,找黑客

查看jvmxss命令(jvm默认xss)

本文目录一览:

如何在dos命令中查看class的jvm文件

可以在dos中查看他的运行过程,这边就试验了一下;

这里是输出的运行的详细内容javap -verbose className

然后需要仅仅是简单的过程的话可以使用javap - c className

然后我们可以从这个编译的过程中可以看出String的拼接是用了StringBuider的,因为String是final类型的所以new了一个StringBuider.这边输出比较的结果是地址,所以说这两个不相等

然后看加了final的String,可以看出编译的时候并没有new一个StringBuilder,只是在字符串常量池里面的字符串拼接

还有一些常用命令给你们用参考

命令选项

-help 输出 javap 的帮助信息。

-l 输出行及局部变量表。

-b 确保与 JDK 1.1 javap 的向后兼容性。

-public 只显示 public 类及成员。

-protected 只显示 protected 和 public 类及成员。

-package 只显示包、protected 和 public 类及成员。这是缺省设置。

-private 显示所有类和成员。

-J[flag] 直接将 flag 传给运行时系统。

-s 输出内部类型签名。

-c 输出类中各方法的未解析的代码,即构成 Java 字节码的指令。

-verbose 输出堆栈大小、各方法的 locals 及 args 数,以及class文件的编译版本

-classpath[路径] 指定 javap 用来查找类的路径。如果设置了该选项,则它将覆盖缺省值或 CLASSPATH 环境变量。目录用冒号分隔。

-bootclasspath[路径] 指定加载自举类所用的路径。缺省情况下,自举类是实现核心 Java 平台的类,位于 jrelib下面。

-extdirs[dirs] 覆盖搜索安装方式扩展的位置。扩展的缺省位置是 jrelibext。

如何查看GC 及jvm配置?

java虽然是自动回收内存,但是应用程序,尤其服务器程序最好根据业务情况指明内存分配限制。否则可能导致应用程序宕掉。

举例说明含义:

-Xms128m

表示JVM Heap(堆内存)最小尺寸128MB,初始分配

-Xmx512m

表示JVM Heap(堆内存)最大允许的尺寸256MB,按需分配。

说明:如果-Xmx不指定或者指定偏小,应用可能会导致java.lang.OutOfMemory错误,此错误来自JVM不是Throwable的,无法用try...catch捕捉。

PermSize和MaxPermSize指明虚拟机为java永久生成对象(Permanate generation)如,class对象、方法对象这些可反射(reflective)对象分配内存限制,这些内存不包括在Heap(堆内存)区之中。

-XX:PermSize=64MB 最小尺寸,初始分配

-XX:MaxPermSize=256MB 最大允许分配尺寸,按需分配

过小会导致:java.lang.OutOfMemoryError: PermGen space

MaxPermSize缺省值和-server -client选项相关。

-server选项下默认MaxPermSize为64m

-client选项下默认MaxPermSize为32m

经验:

1、慎用最小限制选项Xms,PermSize已节约系统资源。

=========================================================

近期研究对jvm的内存使用情况进行监控,因此对观察虚拟机的内存使用方法做了一些收集,对jvm的参数设置了解了一下:

几个基本概念:

PermGen space:全称是Permanent Generation space,即永久代。就是说是永久保存的区域,用于存放Class和Meta信息,Class在被Load的时候被放入该区域,GC(Garbage Collection)应该不会对PermGen space进行清理,所以如果你的APP会LOAD很多CLASS的话,就很可能出现PermGen space错误。

Heap space:存放Instance。Java Heap分为3个区,Young即新生代,Old即老生代和Permanent。Young保存刚实例化的对象。当该区被填满时,GC会将对象移到Old区。Permanent区则负责保存反射对象。

几个参数设置的意义:

xms/xmx:定义YOUNG+OLD段的总尺寸,ms为JVM启动时YOUNG+OLD的内存大小;mx为最大可占用的YOUNG+OLD内存大小。在用户生产环境上一般将这两个值设为相同,以减少运行期间系统在内存申请上所花的开销。

NewSize/MaxNewSize:定义YOUNG段的尺寸,NewSize为JVM启动时YOUNG的内存大小;MaxNewSize为最大可占用的YOUNG内存大小。在用户生产环境上一般将这两个值设为相同,以减少运行期间系统在内存申请上所花的开销。

PermSize/MaxPermSize:定义Perm段的尺寸,PermSize为JVM启动时Perm的内存大小;MaxPermSize为最大可占用的Perm内存大小。在用户生产环境上一般将这两个值设为相同,以减少运行期间系统在内存申请上所花的开销。

SurvivorRatio:设置YOUNG代中Survivor空间和Eden空间的比例

申请一块内存的过程:

A. JVM会试图为相关Java对象在Eden中初始化一块内存区域

B. 当Eden空间足够时,内存申请结束。否则到下一步

C. JVM试图释放在Eden中所有不活跃的对象(这属于1或更高级的垃圾回收);释放后若Eden空间仍然不足以放入新对象,则试图将部分Eden中活跃对象放入Survivor区/OLD区

D. Survivor区被用来作为Eden及OLD的中间交换区域,当OLD区空间足够时,Survivor区的对象会被移到Old区,否则会被保留在Survivor区

E. 当OLD区空间不够时,JVM会在OLD区进行完全的垃圾收集(0级)

F. 完全垃圾收集后,若Survivor及OLD区仍然无法存放从Eden复制过来的部分对象,导致JVM无法在Eden区为新对象创建内存区域,则出现”out of memory错误”

我们的一种resin服务器的jvm参数设置:

“-Xmx2000M -Xms2000M -Xmn500M -XX:PermSize=250M -XX:MaxPermSize=250M -Xss256K -XX:+DisableExplicitGC -XX:SurvivorRatio=1 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=0 -XX:+CMSClassUnloadingEnabled -XX:LargePageSizeInBytes=128M -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=60 -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+PrintClassHistogram -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC -Xloggc:log/gc.log”

是一种典型的响应时间优先型的配置。

Java中有四种不同的回收算法,对应的启动参数为

–XX:+UseSerialGC

–XX:+UseParallelGC

–XX:+UseParallelOldGC

–XX:+UseConcMarkSweepGC

1. Serial Collector

大部分平台或者强制 java -client 默认会使用这种。

young generation算法 = serial

old generation算法 = serial (mark-sweep-compact)

这种方法的缺点很明显,stop-the-world, 速度慢。服务器应用不推荐使用。

2. Parallel Collector

在linux x64上默认是这种,其他平台要加 java -server 参数才会默认选用这种。

young = parallel,多个thread同时copy

old = mark-sweep-compact = 1

优点:新生代回收更快。因为系统大部分时间做的gc都是新生代的,这样提高了throughput(cpu用于非gc时间)

缺点:当运行在8G/16G server上old generation live object太多时候pause time过长

3. Parallel Compact Collector (ParallelOld)

young = parallel = 2

old = parallel,分成多个独立的单元,如果单元中live object少则回收,多则跳过

优点:old old generation上性能较 parallel 方式有提高

缺点:大部分server系统old generation内存占用会达到60%-80%, 没有那么多理想的单元live object很少方便迅速回收,同时compact方面开销比起parallel并没明显减少。

4. Concurent Mark-Sweep(CMS) Collector

young generation = parallel collector = 2

old = cms

同时不做 compact 操作。

优点:pause time会降低, pause敏感但CPU有空闲的场景需要建议使用策略4.

缺点:cpu占用过多,cpu密集型服务器不适合。另外碎片太多,每个object的存储都要通过链表连续跳n个地方,空间浪费问题也会增大。

内存监控的方法:

1. jmap -heap pid

查看java 堆(heap)使用情况

using thread-local object allocation.

Parallel GC with 4 thread(s) //GC 方式

Heap Configuration: //堆内存初始化配置

MinHeapFreeRatio=40 //对应jvm启动参数-XX:MinHeapFreeRatio设置JVM堆最小空闲比率(default 40)

MaxHeapFreeRatio=70 //对应jvm启动参数 -XX:MaxHeapFreeRatio设置JVM堆最大空闲比率(default 70)

MaxHeapSize=512.0MB //对应jvm启动参数-XX:MaxHeapSize=设置JVM堆的最大大小

NewSize = 1.0MB //对应jvm启动参数-XX:NewSize=设置JVM堆的‘新生代’的默认大小

MaxNewSize =4095MB //对应jvm启动参数-XX:MaxNewSize=设置JVM堆的‘新生代’的最大大小

OldSize = 4.0MB //对应jvm启动参数-XX:OldSize=value:设置JVM堆的‘老生代’的大小

NewRatio = 8 //对应jvm启动参数-XX:NewRatio=:‘新生代’和‘老生代’的大小比率

SurvivorRatio = 8 //对应jvm启动参数-XX:SurvivorRatio=设置年轻代中Eden区与Survivor区的大小比值

PermSize= 16.0MB //对应jvm启动参数-XX:PermSize=value:设置JVM堆的‘永生代’的初始大小

MaxPermSize=64.0MB //对应jvm启动参数-XX:MaxPermSize=value:设置JVM堆的‘永生代’的最大大小

Heap Usage: //堆内存分步

PS Young Generation

Eden Space: //Eden区内存分布

capacity = 20381696 (19.4375MB) //Eden区总容量

used = 20370032 (19.426376342773438MB) //Eden区已使用

free = 11664 (0.0111236572265625MB) //Eden区剩余容量

99.94277218147106% used //Eden区使用比率

From Space: //其中一个Survivor区的内存分布

capacity = 8519680 (8.125MB)

used = 32768 (0.03125MB)

free = 8486912 (8.09375MB)

0.38461538461538464% used

To Space: //另一个Survivor区的内存分布

capacity = 9306112 (8.875MB)

used = 0 (0.0MB)

free = 9306112 (8.875MB)

0.0% used

PS Old Generation //当前的Old区内存分布

capacity = 366280704 (349.3125MB)

used = 322179848 (307.25464630126953MB)

free = 44100856 (42.05785369873047MB)

87.95982001825573% used

PS Perm Generation //当前的 “永生代” 内存分布

capacity = 32243712 (30.75MB)

used = 28918584 (27.57891082763672MB)

free = 3325128 (3.1710891723632812MB)

89.68751488662348% used

=====================================================================

jps

-q只输出进程ID,而不输出类的短名称

-m用于输出传递给Java进程(主函数)的参数

-l完整路径

-v显示传递给jvm的参数

jvm配置文件位置以及文件名是什么?里面可以用 -Dxxxx=xxx 设置参数 用system.getProperty()可以取值

1

假设你是windows平台,你安装了J2SDK,那么现在你从cmd控制台窗口进入J2SDK安装目录下的bin目录,然后运行java命令,出现如下结果,这些就是包括java.exe工具的和JVM的所有命令都在里面。这里面告诉你可以用 -Dxxxx=xxx 设置参数

即:-Dname=value

set a system property

----------------------

D:\j2sdk15\binjava

Usage: java [-options] class [args...]

(to execute a class)

or java [-options] -jar jarfile [args...]

(to execute a jar file)

where options include:

-client to select the "client" VM

-server to select the "server" VM

-hotspot is a synonym for the "client" VM [deprecated]

The default VM is client.

-cp class search path of directories and zip/jar files

-classpath class search path of directories and zip/jar files

A ; separated list of directories, JAR archives,

and ZIP archives to search for class files.

-Dname=value

set a system property

-verbose[:class|gc|jni]

enable verbose output

-version print product version and exit

-version:value

require the specified version to run

-showversion print product version and continue

-jre-restrict-search | -jre-no-restrict-search

include/exclude user private JREs in the version search

-? -help print this help message

-X print help on non-standard options

-ea[:packagename...|:classname]

-enableassertions[:packagename...|:classname]

enable assertions

-da[:packagename...|:classname]

-disableassertions[:packagename...|:classname]

disable assertions

-esa | -enablesystemassertions

enable system assertions

-dsa | -disablesystemassertions

disable system assertions

-agentlib:libname[=options]

load native agent library libname, e.g. -agentlib:hprof

see also, -agentlib:jdwp=help and -agentlib:hprof=help

-agentpath:pathname[=options]

load native agent library by full pathname

-javaagent:jarpath[=options]

load Java programming language agent, see java.lang.instrument

-----------------------------

在控制台输出信息中,有个-X(注意是大写)的命令,这个正是查看JVM配置参数的命令。

2

用java -X 命令还可以查看JVM的配置说明:

运行后如下结果,这些就是配置JVM参数的秘密武器,这些信息都是英文的,为了方便阅读,我根据自己的理解翻译成中文了(不准确的地方还请各位博友斧正)

--------------------------

D:\j2sdk15\binjava -X

-Xmixed mixed mode execution (default)

-Xint interpreted mode execution only

-Xbootclasspath:directories and zip/jar files separated by ;

set search path for bootstrap classes and resources

-Xbootclasspath/a:directories and zip/jar files separated by ;

append to end of bootstrap class path

-Xbootclasspath/p:directories and zip/jar files separated by ;

prepend in front of bootstrap class path

-Xnoclassgc disable class garbage collection

-Xincgc enable incremental garbage collection

-Xloggc:file log GC status to a file with time stamps

-Xbatch disable background compilation

-Xmssize set initial Java heap size

-Xmxsize set maximum Java heap size

-Xsssize set java thread stack size

-Xprof output cpu profiling data

-Xfuture enable strictest checks, anticipating future default

-Xrs reduce use of OS signals by Java/VM (see documentation)

-Xcheck:jni perform additional checks for JNI functions

-Xshare:off do not attempt to use shared class data

-Xshare:auto use shared class data if possible (default)

-Xshare:on require using shared class data, otherwise fail.

The -X options are non-standard and subject to change without notice.

-----------------------------------------------------------------------

3

JVM配置参数中文说明:

-------------------

1、-Xmixed mixed mode execution (default)

混合模式执行

2、-Xint interpreted mode execution only

解释模式执行

3、-Xbootclasspath:directories and zip/jar files separated by ;

set search path for bootstrap classes and resources

设置zip/jar资源或者类(.class文件)存放目录路径

3、-Xbootclasspath/a:directories and zip/jar files separated by ;

append to end of bootstrap class path

追加zip/jar资源或者类(.class文件)存放目录路径

4、-Xbootclasspath/p:directories and zip/jar files separated by ;

prepend in front of bootstrap class path

预先加载zip/jar资源或者类(.class文件)存放目录路径

5、-Xnoclassgc disable class garbage collection

关闭类垃圾回收功能

6、-Xincgc enable incremental garbage collection

开启类的垃圾回收功能

7、-Xloggc:file log GC status to a file with time stamps

记录垃圾回日志到一个文件。

8、-Xbatch disable background compilation

关闭后台编译

9、-Xmssize set initial Java heap size

设置JVM初始化堆内存大小

10、-Xmxsize set maximum Java heap size

设置JVM最大的堆内存大小

11、-Xsssize set java thread stack size

设置JVM栈内存大小

12、-Xprof output cpu profiling data

输入CPU概要表数据

13、-Xfuture enable strictest checks, anticipating future default

执行严格的代码检查,预测可能出现的情况

14、-Xrs reduce use of OS signals by Java/VM (see documentation)

通过JVM还原操作系统信号

15、-Xcheck:jni perform additional checks for JNI functions

对JNI函数执行检查

16、-Xshare:off do not attempt to use shared class data

尽可能不去使用共享类的数据

17、-Xshare:auto use shared class data if possible (default)

尽可能的使用共享类的数据

18、-Xshare:on require using shared class data, otherwise fail.

尽可能的使用共享类的数据,否则运行失败

The -X options are non-standard and subject to change without notice.

如何查看JVM的扩展参数

一、查看JVM的扩展参数方法:

在java进程后追加-X参数可看到对应的扩展参数,命令:java -X

二、java -X的所有选项:

-Xmixed mixed mode execution (default) 混合模式执行(默认)

-Xint interpreted mode execution on

ly 只在解释模式执行

-Xbootclasspath:directories and zip/jar files separated by ;

set search path for bootstrap classes and resources 设置搜索引导classpath路径和资源路径

-Xbootclasspath/a:directories and zip/jar files separated by ;

append to end of bootstrap class path 追加classpath路径

-Xbootclasspath/p:directories and zip/jar files separated by ;

prepend in front of bootstrap class path 预先加载的classpath路径

-Xnoclassgc disable class garbage collection 关闭垃圾回收机

-Xincgc enable incremental garbage collection 打开垃圾回收机

-Xloggc:file log GC status to a file with time stamps 实时记录垃圾回收机工作

-Xbatch disable background compilation 禁用背景汇编

-Xmssize set initial Java heap size 设置初始Java堆大小

-Xmxsize set maximum Java heap size 设置最大Java堆大小

-Xsssize set java thread stack size 设置Java线程大小

-Xprof output cpu profiling data 输出CPU的分析数据

-Xfuture enable strictest checks, anticipating future default 开启严格检查,默认预测

-Xrs reduce use of OS signals by Java/VM (see documentation) 减低使用操作系统

-Xcheck:jni perform additional checks for JNI functions 对JNI执行的额外检查

-Xshare:off do not attempt to use shared class data 不使用共享数据

-Xshare:auto use shared class data if possible (default) 自动使用共享数据(默认)

-Xshare:on require using shared class data, otherwise fail. 使用共享数据

怎么查看GC 及jvm配置

JVisualVM是JDK 6 update 7之后推出的一个工具,它类似于JProfiler的工具,基于此工具可查看内存的消耗情况、线程的执行状况及程序中消耗CPU、内存的动作。

怎么查看Java(jvm)虚拟机的大小

由于java应用的允许依赖于JVM(虚拟机),相应的内存配置显然也需要JVM来提供的,准备地说是通过/bin/java.exe的启动命令参数来实现的。具体的配置项如下几种:-XmxJavaHeap最大值(默认值为物理内存的1/4)-XmsJavaHeap初始值-XmnJavaHeapYoung区大小-Xss每个线程的Stack大小拓展,以下是几种使用示例:1、命令下启动应用并配置内存:java-Xmx128m-Xms64mTest2、eclipse内存配置:-vmargs-Xms40m-Xmx512m的配置信息,请自行搜索“jvm内存”。

  • 评论列表:
  •  黑客技术
     发布于 2022-07-01 21:02:13  回复该评论
  • ; prepend in front of bootstrap class path 预先加载zip/jar资源或者类(.class文件)存放目录路径5、-Xnoclassgc disable class garbage collection 关闭类垃圾回收功能6、-Xin
  •  黑客技术
     发布于 2022-07-01 16:39:18  回复该评论
  • ated] The default VM is client. -cp class search path of directories and zip/jar files
  •  黑客技术
     发布于 2022-07-01 15:20:53  回复该评论
  • es 设置搜索引导classpath路径和资源路径 -Xbootclasspath/a:directories and zip/jar files separated by ;

发表评论:

Powered By

Copyright Your WebSite.Some Rights Reserved.