参考链接: Java命令行参数 -Xmixed 混合模式执行 (默认) -Xint 仅解释模式执行 -Xbootclasspath: 设置搜索路径以引导类和资源 -Xbootclasspath/a: 附加在引导类路径末尾 -Xbootclasspath/p: 置于引导类路径之前 -Xdiag 显示附加诊断消息 -Xnoclassgc 禁用类垃圾收集 -Xincgc 启用增量垃圾收集 -Xloggc: 将 GC 状态记录在文件中 (带时间戳) -Xbatch 禁用后台编译 -Xms 设置初
JVM的-X参数是非标准参数,在不同版本的jvm中,参数可能会有所不同,可以通过java -X查看非标准参数。
javac 用法:javac <选项> <源文件> 其中,可能的选项包括: -g 生成所有调试信息 -g:none 不生成任何调试信息 -g:{lines,vars,source} 只生成某些调试信息 -nowarn
准备对每一个参数进行详细的介绍,并且给出一些我所了解到的小技巧。 懂原理才能更好的使用嘛,推荐大家先把Java 使用熟练,然后好好看看JVM 原理相关的东西,最后再根据原理&使用 对于JVM进行更高效的利用。 下面开始介绍。 非标准参数(Non-Standard): -XBatch 虚拟机的缺省运行方式是在后台编译类代码,然后在前台执行代码,使用-XBatch参数时,会关闭虚拟机后台编译,在前台编译完成后再执行。 -Xbootclasspath:path -Xbootclasspath/a:path -Xbootclasspath/p:path 上面三个参数其实是一个参数。什么作用呢,挺简单的。就是改变虚拟机装载jar的方式,原本虚拟机是缺省系统运行包rt.jar,指定之后按照classpath中设定的搜索路径中装载系统运行类,除非我们需要写一个运行时,否则不会用到该参数。 其中存在 /a,/p 两个选项: /a:在缺省搜索路径后架上 -Xcheck:jni 是否调用JNI函数进行附加的检查,特别地虚拟机将校验传递给JNI函数参数的合法性,在本地代码中遇到非法数据时,虚拟机将会报一个致命错误然后终止。使用该参数会造成性能下降不少。谨慎使用~ -Xcomp、-Xmixed、-Xint 这三个参数放在一块儿说吧,作用很简单就是用来指定Java bytecode的运行方式。 其中-Xint全部使用字节码解释执行,这个是最慢的,慢的惊人,通常要比其他方式慢一个数量级左右。 -Xcomp相反,全部被编译成机器码执行,速度是很快的,但是存在一个缺陷,-Xcomp的策略过于简单,无法使用JIT的全部特性。比如 JIT会对在运行时对每个方法做统计,然后会有一些比如分支预测之类的自优化策略,但是使用-Xcomp时这个特性就无法生效了。还存在这样的一种情况,有些方法的调用比较少,但是也去做编译和优化的话,编译带来的开销还不如直接去解释执行那一块的代码,这样就产生一些不必要的开销了。这两种方式分场景来进行使用,针对合适的场景选择对应的模式。适合的才是最好的。还有一个参数,就是一种自适应的方式,有的地方解释执行,有的地方编译执行,具体的策略要依据profile的统计分析来判断。 注:中间提到了一个JIT,可能有的同学对这个不是非常熟悉。JIT 的全称是Just in time,也就是 “即时” ,这是一种即时编译技术,能够通过保存之前编译得到的机器码来替代对应字节码的解释执行操作及一些分支预测等自优化功能来加快Java 程序的执行速度。具体是怎么做到的呢。请看 Java 系列中的JIT技术。 -Xdebug 这个选项,其实什么也没做。仅仅是为了向后兼容而已。 -Xdiag 显示额外的诊断信息,如果出现问题你又觉着信息不够全面时。 -Xfuture 对类文件进行严格格式的检查,以保证类代码符合类代码规范。如果为缺省则不进行严格格式检查。 -Xinternalversion 显示比版本选项更详细的JVM版本信息,然后退出。 这个常用于 -version之后,看到的信息不够充分,你就可以使用它了,使用场景比较少 -Xloggc:filename 用于指定虚拟机每次垃圾回收时将回收的信息写到日志文件中,文件名由filename 指定 -Xmaxjitcodesize=size 为jit编译的代码指定最大代码缓存大小缺省单位为字节,也可以是k、m。默认的最大代码缓存大小为240 MB;如果使用选项- xx:- tiered编译禁用分层编译,那么默认大小是48 MB: -Xmaxjitcodesize = 240 这个选项相当于- xx:ReservedCodeCacheSize(下一篇会有具体的介绍)。 -Xmnsize 用于设置堆内新生代的大小,缺省单位为字节,也可以是k、m,后面有对应最大的虚拟机内存堆的最大可用大小,减去-Xmn就是老年代的大小。 -Xmssize 设置虚拟机内存堆的初始大小,缺省单位为字节(值必须为1024的整数倍,然后大于2m),当然也可以自行指定单位,比如说 k、m。缺省时,默认大小为2m。 -Xmxsize 设置虚拟机内存堆的最大可用大小,缺省单位为字节(值必须为1024的整数倍,然后大于2m),当然也可以自行指定单位,比如说 k、m。缺省时 默认最大为64m。 最常见的,如果我们运行的程序体量很庞大,64m已经远不够使用时,启动一段时间后可能会出现OOM,这时候就需要手动的去设置可用的堆内存的大小了。 -Xnoclassgc 关闭虚拟机对Class的垃圾回收功能。 -Xprof 输出CPU运行时的诊断信息。 -Xrs 减少虚拟机中操作系统信号的使用,这种参数 通常用于以后台服务方式运行,最经典的比如Servlet -Xshare:
这一篇说一下JVM 参数相关,首先JVM参数中包含着么几类 标准参数(Standard)、非标准参数(Non-Standard)、高级运行时选项、JIT相关编译高级选项、适用性高级选项、GC相关高级参数、不建议使用的参数(可能会被弃用) 后续会对每个系列的参数还有使用技巧进行详细的剖析,这一篇仅仅是个引导。 但是这个系列,对于不感兴趣的同学可能会无聊至极。不过掌握一些技巧还是蛮有趣的。 懂原理,才能更好的使用嘛~ 其中 标准参数:开头直接为参数名、 非标准参数: -X 开头 高级选项:-XX:
nohup java -Xms500m -Xmx500m -Xmn250m -Xss256k -server -XX:+HeapDumpOnOutOfMemoryError -jar $JAR_PATH/test-0.0.1-SNAPSHOT.jar --spring.profiles.active=daily -verbose:class &
打开 IDEA 安装目录,看到有一个 bin 目录,其中有两个 vmoptions 文件,需针对不同的JDK进行配置:
首先想说的是其实这些参数我们并不是陌生的,在平时的开发和使用中经常都会遇到,只是在平时缺少一个比较系统的总结,所以,对这些参数感觉是很陌生的,所以,通过这篇文章的总结,我相信你一定都会对这些参数熟稔于心,做做心中有数。
1、JVM参数配置 我们学习Java GC机制的目的是为了实用,也就是为了在JVM出现问题时分析原因并解决之,JVM监控与调优主要的着眼点在于如何配置、如何监控、如何优化3点上。
王万龙,腾讯云监控产品中心总经理。2012年入职腾讯,参与、主导和负责朋友网、QQ空间、QQ小程序、公众号、QQ基础平台业务,在多年的开发过程中孵化了UGCLog统一日志平台、XProf全链路专家系统等日志、链路一体化监控平台,在研发效率提升工具建设方面有丰富的经验。曾任职于迅雷,先后参与并支持了迅雷看看、迅雷游戏等重要业务。华南理工大学计算机科学与工程学院,智能演化算法方向。 田超,腾讯云企业中心总经理、音视频应用平台总经理,负责腾讯云用户增长、DNSPod业务以及企业应用相关产品。同时也是资深用户增长
在jvm中有很多的参数可以进行设置,这样可以让jvm在各种环境中都能够高效的运行。绝大部分的参数保持默认即可。
为什么要优化JVM 1.生产环境需要承载更多的并发要求,对底层的优化能显著提升性能,节约成本 2.测试和生产环境的不同可能导致我们无法实时了解具体性能问题,我们需要借助对JVM了解分析问题所在。
最近墨白在学习jvm优化相关的技术,所以我准备出一个jvm优化系列的文章,最近也是比较忙,抽空我就会更新,文章内有代码和命令建议大家手敲增加印象,最好能理解,不明白的可以后台留言或者在群里提问;
在本地开发环境中我们很少会遇到需要对jvm进行优化的需求,但是到了生产环境,我们可能将有下面的需求:
所谓的标准参数,就是不会随着我们JDK 变化而变化版本的参数 这种参数可以通过Java -help查看(和Java -version使用方式一样)
官网地址:https://docs.oracle.com/javase/8/docs/technotes/tools/windows/java.html
Google hack 查询注入点 sql注入漏洞查询关键词如下 view_items.php?id= home.php?cat= item_book.php?CAT= www/index.php?p
这是一个Google注入查询列表(傻瓜式),更新于2018年;根据一些关键字和URL结构,可批量查询出存在安全隐患的站点。
本次给大家发一些可以提取有注入点的网站的关键词,所利用的 也就是大家所熟悉的谷歌hack技术,下面是部分关键词,工具的话用一些关键词提取工具就好了。
在上一篇文章中,我们安装好了WordPress,准备好了制作主题需要的工具和主题测试的浏览器,接下来就要开始制作了,但在开始制作之前,我们还需要了解主题由哪些文件构成,其次还需要知道WordPress是怎样与主题文件连接的。
本文介绍了如何在CentOS 7服务器上配置PHP环境,包括安装PHP、MySQL、Apache和php-fpm,并介绍了使用Apache和php-fpm作为web服务器和脚本引擎的方法。
WordPress 5.3.1发布后不久,就收到了一些相对严重的问题反馈,所以WordPress官方在较短时间内就发布了 WordPress 5.3.2,主要修复以下5个问题:
现在我们发现全部都是禁用的,这样需要我们手动启动一个,比如现在我们需要使用最新版本PHP7.1的。那么我们就可以执行以下命令:
1. 什么是preload 什么是preload? Preloading in PHP 7.4中有一句话总结的简单到位: Opcache, but more! 那么preload比opcache
PHP 7.2.0 已于 2017 年11月30日正式发布GA版,大家可以第一时间尝鲜了。这里我们介绍如何在 Debian 9 “Stretch” 上安装配置 PHP-7.2,以便大家及时升级。目前 Debian.cn 全站已稳定运行在 PHP-7.2 版本中。
本文实例讲述了CentOS7系统搭建LAMP及更新PHP版本操作。分享给大家供大家参考,具体如下:
注:文件夹里包含这两个的文件,就能被wordpress 识别。 主题的缩略图名称:screenshot.png
代码中通过指定 strict_types的值(1或者0),1表示严格类型校验模式,作用于函数调用和返回语句;0表示弱类型校验模式。
防盗链,通俗讲就是不让别人盗用你网站上的资源,这个资源指的是图片、视频、歌曲、文档等,在这之前需要理解一下referer的概念,如果你通过A网站的一个页面http://a.com/a.html里面的链接去访问B网站的一个页面http://b.com/b.html,那么这个B网站页面的referer就是http://a.com/a.html。也就是说,一个referer就是一个网址。
这时打开浏览器输入http://blog.abc.com 进行wordpress安装
php扩展模块装安装目录概要 /usr/local/php/bin/php -m //查看模块 下面安装一个redis的模块 cd /usr/local/src/ wget https://codeload.github.com/phpredis/phpredis/zip/develop mv develop phpredis-develop.zip unzip phpredis-develop.zip cd phpredis-develop /usr/local/php/bin/phpize //生成co
在 centos7上安装php7.1以及composer的时候,遇到了一些坑,记录下,方便后面踩坑的人迅速定位问题。 安装php7.1: yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm #其他php版本更换remi-php71即可。 yum-config-manager --enable remi-php71 yum -y install php 安装redis: yum install https://downlo
PHP 7+ 版本极大地改进了性能,在一些WordPress基准测试当中,性能可以达到PHP 5.6的3倍。
最近一直在优化自己的 PHP 多进程管理工具。GitHub 地址:https://github.com/fingerQin/phpthread
PHP 运行环境的性能考虑在 php 深入学习中需要逐步强化意识,并着手实现,其中对于性能分析的相关工具也需要有一定的掌握,比如压力测试工具 Apache Benchmark,Opcode 代码分析工具 vld,PHP 性能分析工具 XHProf,另外,对于日常编写代码时,也需要考虑 PHP 自身的特性,进行扬长避短,使用 isset 而不用 array_key_exists 方法,以及尽可能规避 PHP 自带的魔术方法。对 PHP 的运行流程也需要有一个大致的了解,知道 Opcode 在 PHP 执行过程中的阶段。需要逐渐加深对 PHP 深层次的思考。
1、首先检查LAMP环境 [root@cairui htdocs]# ps -ef | grep httpd php 13160 1 0 Mar03 ? 00:00:
11.32 PHP扩展模块安装 php扩展模块装安装目录概要 /usr/local/php/bin/php -m //查看模块 下面安装一个redis的模块 cd /usr/local/src/ wget https://codeload.github.com/phpredis/phpredis/zip/develop mv develop phpredis-develop.zip unzip phpredis-develop.zip cd phpredis-develop /usr/local/php/b
WordPress模板的定义非常方便,但是在定制模板之前,我们有必要知道WordPress的模板层次,了解WordPress是如何加载模板文件的,这将有利于开发模板时合理利用资源及提高工作效率。
不同的PHP调试环境,加密略有差异。下面主要介绍windows下phpstudy2018、xampp及phpstudy-pro三种环境的php文件加密。
wordpress模板是由PHP语句组成,很多不懂代码的站长都被PHP复杂的代码难倒,难以自己开发个性化的模板。其实想开发一个wordpress模板并不是太难,大家只要了解一些wordpress中的常用函数,即可按照自己的需要进行内容调用了。更高端一点的类似于一些PHP语句的判断等等,这就需要大家自己去学习提高了。本篇文章主要讲解wordpress开发模板中经常需要用到的一些函数。
有了前面制作index.php的经验,接下来制作single.php将会非常轻松 添加标题
按照知识共享署名-非商业性使用 4.0 国际协议进行许可,转载引用文章应遵循相同协议。
PHP(全名:PHP: Hypertext Preprocessor)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。
在本地浏览器中输入http://<IP地址>/wordpress访问WordPress网站。
在上一篇文章中,我们知道,wp-blog-header.php 通过 wp-load.php 先后把 wp-config.php,wp-setting.php,classes.php,fucntions.php, query.php 等文件加载进来,并建立了三个全局变量,wp_the_query,wp_rewrite 和
WordPress Header头部 PHP代码 (注: 也就是位于<head>和</head>之间的PHP代码)
; PHP's initialization file, generally called php.ini, is responsible fo
领取专属 10元无门槛券
手把手带您无忧上云