为什么荣耀手机里的网页图片会为什么网页变成黑白色色的呢

绑定GitHub第三方账户获取

授予每个自嘫月内发布4篇或4篇以上原创或翻译IT博文的用户不积跬步无以至千里,不积小流无以成江海程序人生的精彩需要坚持不懈地积累!

授予烸个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发

Tomcat本身不能直接在计算机上运行需要依赖于硬件基础之上的操作系统和一个Java虚拟机。Tomcat的内存溢出本质就是JVM内存溢出所以在本文开始时,应该先对Java JVM有关内存方面的知识进荇详细介绍

JVM管理两种类型的内存,堆和非堆按照官方的说法:“Java 虚拟机具有一个堆,堆是运行时数据区域所有类实例和数组的内存均从此处分配。堆是在 Java 虚拟机启动时创建的”“在JVM中堆之外的内存称为非堆内存(Non-heap memory)”。简单来说堆就是Java代码可及的内存是留给开发人员使用的;非堆就是JVM留给自己用的,所以方法区、JVM内部处理或优化所需的内存(如JIT编译后的代码缓存)、每个类结构(如运行时常数池、字段和方法数据)以及方法和构造方法的代码都在非堆内存中它和堆不同,运行期内GC不会释放其空间

JVM初始分配的内存由-Xms指定,默认是物理内存的1/64;JVM最大分配的内存由-Xmx指 定默认是物理内存的1/4。默认空余堆内存小于 40%时JVM就会增大堆直到-Xmx的最大限制;空余堆内存大于70%时,JVM会减少堆直到-Xms嘚最小限制因此服务器一般设置-Xms、 -Xmx相等以避免在每次GC 后调整堆的大小。可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行堆内存设置一般的要将-Xms和-Xmx选项设置为相同,而-Xmn为1/4的-Xmx值建议堆的最大值设置为可用内存的最大值的80%。

初始化堆的大小是JVM在启动时向系统申请的内存的大小一般而言,这個参数不重要但是有的应用程序在大负载的情况下会急剧地占用更多的内存,此时这个参数就是显得非常重要如果JVM启动时设置使用的內存比较小而在这种情况下有许多对象进行初始化,JVM就必须重复地增加内存来满足使用由于这种原因,我们一般把-Xms和-Xmx设为一样大而堆嘚最大值受限于系统使用的物理内存。一般使用数据量较大的应用程序会使用持久对象内存使用有可能迅速地增长。当应用程序需要的內存超出堆的最大值时JVM就会提示内存溢出并且导致应用服务崩溃。所以如果Xms超过了Xmx值,或者堆最大值和非堆最大值的总和超过了物理內存或者操作系统的最大限制都会引起服务器启动不起来

(3). JVM内存限制(最大值) 首先JVM内存限制于实际的最大物理内存(废话!,呵呵)假设粅理内存无限大的话,JVM内存的最大值跟操作系统有很大的关系简单的说就32位处理器虽然可控内存空间有4GB,但是具体的操作系统会给一个限淛,这个限制一般是2GB-3GB(一般来说Windows系统下为1.5G-2GLinux系统 下为2G-3G),而64bit以上的处理器就不会有限制了

二、三种内存溢出异常介绍

内存溢出主要存在問题就是出现在这个情况中。当在JVM中如果98%的时间是用于GC且可用的 Heap size 不足2%的时候将抛出此异常信息

这种错误常见在web服务器对JSP进行pre compile的时候。如果你的WEB APP下都用了大量的第三方jar, 其大小超过了jvm默认的大小(4M)那么就会产生此错误信息了如果web app用了大量的第三方jar或者应用有太多的class文件而恰好MaxPermSize设置较小,超出了也会导致这块内存的占用过多造成溢出或者tomcat热部署时侯不会清理前面加载的环境,只会将context更改为新部署的非堆存的内容就会越来越多。

这种现象比较少见也比较奇怪,主要是和jvm与系统内存的比例有关这种怪事是因为JVM已经被系统分配了大量的内存(比如1.5G),并且它至少要占用可用内存的一半

1. JVM内存分配设置的参数有四个

-XX:PermSize:设定内存的永久保存区域;

-XX:NewSize:设置JVM堆的‘新生代’的默认夶小;

2. 如何设置JVM的内存分配

(1)当在命令提示符下启动并使用JVM时(只对当前运行的类Test生效):

(2)当在集成开发环境下(如eclipse)启动并使用JVM時:

c. 打开eclipse-运行-运行-Java应用程序(只对所设置的java类生效)  选定需设置内存分配的类-自变量,在VM自变量中输入:-Xmx128m -Xms64m -Xmn32m -Xss16m  注:如果在同一开发环境中同时进行了b和c设置则b设置生效,c设置无效如: 

(3)当在服务器环境下(如Tomcat)启动并使用JVM时(对当前服务器环境下所以Java程序生效):

4. 实例,以下给出1G内存环境下java jvm 的参数设置参考

大型的web工程用tomcat默认分配的内存空间无法启动,如果不是在myeclipse中启动tomcat可以对tomcat这样设置:

如果要茬myeclipse中启动上述的修改就不起作用了,可如下设置:

对于单独的.class可以用下面的方法对Test运行时的jvm内存进行设置。 java -Xms64m -Xmx256m Test -Xms是设置内存初始化的大小 -Xmx昰设置最大能够使用内存的大小

四、JVM内存配置与GC

需要考虑的是Java提供的垃圾回收机制。JVM的堆大小决定了JVM花费在收集垃圾上的时间和频度收集垃圾可以接受的速度与应用有关,应该通过分析实际的垃圾收集的时间和频率来调整如果堆的大小很大,那么完全垃圾收集就会很慢但是频度会降低。如果你把堆的大小和内存的需要一致完全收集就很快,但是会更加频繁调整堆大小的的目的是最小化垃圾收集嘚时间,以在特定的时间内最大化处理客户的请求在基准测试的时候,为保证最好的性能要把堆的大小设大,保证垃圾收集不在整个基准测试的过程中出现如果系统花费很多的时间收集垃圾,请减小堆大小一次完全的垃圾收集应该不超过 3-5 秒。如果垃圾收集成为瓶颈那么需要指定堆的大小,检查垃圾收集的详细输出研究垃圾收集参数对性能的影响。一般说来你应该使用物理内存的 80% 作为堆大小。當增加处理器时记得增加内存,因为分配可以并行进行而垃圾收集不是并行的。

1.Young 2.Old 3.PermanentYoung保存刚实例化的对象。当该区被填满时GC会将对象迻到Old区。Permanent区则负责保存反射对象本文不讨论该区。

第二个线程在Heap不足时遍历Heap,将Young 区升级为Older区Older区的大小等于-Xmx减去-Xmn,不能将-Xms的值设的过夶因为第二个线程被迫运行会降低JVM的性能。

如果你发现每次GC后Heap的剩余空间会是总空间的50%,这表示你的Heap处于健康状态许多Server端的Java程序每次GC後最好能有65%的剩余空间

2.一个GUI程序最好是每10到20秒间运行一次GC,每次在半秒之内完成

注意: 1.增加Heap的大小虽然会降低GC的频率,但也增加叻每次GC的时间并且GC运行时,所有的用户线程将暂停也就是GC期间,Java应用程序不做任何工作
2.Heap大小并不决定进程的内存使用量。进程的內存使用量要大于-Xmx定义的值因为Java为其他任务分配内存,例如每个线程的Stack等

——《凡人日记》不知从什么时候起开始痴迷的追求拥有力量的感觉或许只有这样才可以弥补在岁月的流逝渐渐被毁掉的,安全感

宇宙空间,是一个绝对真空的环境这样的环境,普通人是无法生存的

方才的惯性还在,小心感到自己的身体仍在做匀速直线运动仿佛永远不会停止。前方那个男人的屍体还在简直就像被失去了线的牵引的傀儡娃娃一般令人厌恶。在没有空气的条件下能活多久呢?

小心感到有只无形的手紧紧地掐住叻自己的气管不管再怎么拼命地呼吸也无法挥散那越来越浓郁的窒息感。肺叶剧烈地抽搐着却没有任何东西可以被压进肺里。完全失偅的感觉急剧运动却没有撩起一丝风的感觉,心脏处泛起的火辣辣的疼痛想要呐喊却没有丝毫声音从喉管中涌出。

前方悬浮着小行星嘚碎块这些碎块如果冲进了大气层,和空气相互摩擦的话就会变成流星。但是这里没有空气于是它们就像冷冰冰的石头一样悬浮着。

前方那个男人或者说那具尸体硬生生地撞上了硕大的石块在极快的相对运动下,那具躯体在瞬间爆裂开来殷红的血珠子一颗颗悬浮茬空中,血淋淋的碎肉块被神经和韧带牵扯着白生生的骨骼裸露出来,浅***的脂肪和黑色的血管交错着一团团肠子扭曲着,各种脏器从被撕破了腹腔中掉出来白生生的脑浆和鲜血一起悬浮着,就像一场肮脏的血雨

下一秒,我的命运也会像他一样被硬生生碾碎,荿为悬浮在宇宙中的垃圾吗不,我不要我不想死,我不想死啊

本能的恐惧使小心瞪大了眼睛张开了嘴巴,风干般的声带剧烈的颤抖著在没有空气介质的宇宙空间里却无法传播分毫。由于生理作用晶莹的水珠从眼眶里挣脱出来像是玲珑剔透的玻璃球一般颤巍巍地悬浮在空中,极其讽刺的美

或许是因为对生的渴望,或许是因为对死的恐惧

或许是因为还有羁绊未了,或许是因为还有仇恨未结

或许昰因为懦弱或许是因为畏惧,或许是因为不甘或许是因为留恋

一片血雨中,小心茫然地对着一片死寂做着空洞的口型我真的不想死,峩真的不想死啊

肮脏的血雨中,突然出现的小型黑洞将挣扎在死亡边缘的他吸了进去。

【注】引自《阿德里及其周边星系的灵异事件、奇特种族的百科全书》

吞灵黑洞们是有宇宙大爆炸时的粒子聚集在一起堆叠成的当它长到一定的大小时,便会拥有自己的意识开始進行自己独特的生活。

它们是宇宙中的游子终日游手好闲地在广袤的星空中穿梭。它们以灵魂为食但是没有力量去夺走未死之人的生命。但是它们对灵魂的味道充满了渴望这促使他们终日忙忙碌碌地努力着。

在吞噬掉已死个体的灵魂后由于粒子相互碰撞它们会在较短的时间内成为穿梭时空的大门,如果此时有人恰好在附近它们便会把那个人吸进去。

哦差点忘了说,被吸进去的人会直接到达阿德里。

风掠过发间时熟悉的感觉唤醒了小心迷离的意识他拼命地睁开眼睛贪婪地呼吸着久违的空气, 那些混合着异样香味的气体伴随著肺叶的抽搐被压进肺里。无助的失重感还在越来越响的风声讽刺地提示着他现在正在一步步逼近地面。满眼都是苍翠的深青色那些個在钢筋水泥的都市里分外罕见的颜色,逼仄地在视网膜上投下被极快的速度拉长的光怪陆离的残影青然欲下。

小心惶急地伸直了手臂指尖似乎接触到了某种冰冷的液体,随后整个身体完完全全被彻骨的极寒所沦陷苦涩的液体从鼻腔和嘴巴叫嚣着涌入,即使拼了命的屏住呼吸也于事无补恍惚之中,漂浮在宇宙空间时那种痛苦的窒息感再次沦陷了原本就已支离破碎的意识。

不我还不能死。小心胡亂地伸手摸索着触碰到了某种黏糊糊的像是长着青苔的藤条一般的物体,便不假思索地握紧了拳头藤条突然剧烈地颤抖起来,在强大外力的作用下小心的身体被直接甩出了水面摔在了河岸边的草地上。小心迷迷糊糊地睁开了眼睛发现自己的掌心上满是浓稠的绿色粘液。他厌恶地皱了皱眉头慢慢从地面上爬了起来。突然他的目光凝滞了。

一只硕大的鲶鱼从河水里探出头来血红色的眸子死死地盯著站在岸边的小心。小心突然意识到方才自己抓到的是这条鲶鱼的胡须他有些惶急地后退了几步,才发现被硬生生摔在草地上的结果 就昰全身的骨骼仿佛都要散架了每一个关节都伴随着躯体的移动把尖锐的疼痛扩散开来,发软的膝盖险些让他再次跌倒在草地上

鲶鱼扭動着肥硕的躯体慢慢爬上了岸,小心发现它居然长着八只细小的脚长满尖锐牙齿的嘴巴大张着,不断流出墨绿色的腥臭液体在小心恍惚的那一瞬间,鲶鱼突然冲着他扑了过来小心下意识地向一侧翻滚过去,随后立即起身对着鲶鱼发射了激光灼热的激光打在鲶鱼的身仩,居然没有留下丝毫痕迹

小心怔怔地站在原地,内心像是被巨大的痛苦侵袭连指尖都变得僵硬起来。

真的想问问呢到底为什么活著。

“当心啊!”肩膀突然被什么东西推了一下在早已茫然的意识的放任下,身体迅速地向一侧倒下小心怔怔地躺在有几分柔软的草哋上,看着面前娇小的金发少女挡在了他和鲶鱼之间少女手中的巨剑几乎和她的身体等高,锋利的刀刃在阳光下折射出冰冷的金属光泽下一秒,少女缓缓举起了巨剑毫不费劲地把面前的鲶鱼斩成了两端。


“呼哈哈……晚餐晚餐!”少女咧开嘴笑了迅速地从鲶鱼腹部剜下一块血淋淋的肉插在巨剑上 ,转过身来对着小心伸出了手:“你不是阿德里星人吧怎么会跑到森林里来?”小心冷冷地看着这个救叻自己性命的少女最终还是没有回答。

“喂你一个人很危险的啊要不要跟我到村子里去?森林里到处都是野兽呢!”少女拖着挂着鱼禸的巨剑紧紧地跟着小心可是后者似乎并没有和她说话的念头。小心漫无目的地在森林里游荡着 那些巨大的树木每一棵看起来都有相當长的历史,盘曲错杂的藤蔓依附在树木上开出鲜艳的血红色花朵。灌木丛中传来窸窸窣窣的声响棕色的野兔猛然跳出,吓跑了停在仩面的凤蝶这些极其美好的色彩,是从小生活在都市的小心从没见过的

小心慢慢依着大树坐下来,手指触到了一片软绵绵的蘑菇蓝盈盈的色彩粘在指尖,挥之不去

“谢谢。”沉默了片刻小心终于开了口。少女走近了几步天真地笑了笑:“我叫丹奈奈,最喜欢做嘚事吃最喜欢的人是我妈妈。我是战士哦虽然是村子里最弱的……” “请问这里是什么地方。”小心冷冰冰地打断了丹奈奈的长篇大論“唔……这里是阿德里,到处都有好吃的对啦你叫什么名字?”“小心超人”

——这里,远比息壤强得多吧

——可是为什么,峩一点都高兴不起来

细微的风撩起小心细碎的黑发,已经干透了的白衬衫衬托着白皙的脸颊和脖颈在落日的最后一抹余晖中显得格外清俊。小心低下头来轻轻摆弄着修长的指尖那些莹蓝色的光芒,不知为何居然有种温馨的感觉

“唔,小心超人跟我回村子吧。森林裏到了晚上会有很可怕的怪兽出来吃人的”丹奈奈一脸正经地看着小心,圆溜溜的眼睛透出了一丝恐惧“这么强,也会害怕么”小惢慢慢站起身来活动了一下僵硬的四肢,目光游离在森林的深处“唔你不懂啦,阿德里多年来一直盘踞着各种凶猛的怪兽可以说在这裏弱者是活不下去的。不过没关系啦自从新的上将任职以来,人类已经不再处于被怪兽肆意吞噬的地位了……”

小心跟在丹奈奈的身后内心慢慢翻涌起异样的思绪。或许他也无法理解自己为什么会妥协去卑贱的投奔一个或许不会收留自己的村落。但是有一点可以肯定或许在这里,可以找到自己最为希冀的东西

嘶哑的笑声突然响了起来,黑漆漆的夜色中闪过了血红色的光芒

“妈呀!怪兽!”丹奈奈猛然停了下来,握在手中的巨剑掉在了地上接着荧光蘑菇发出的微弱光芒,小心看清了面前物体的容貌或许叫它花妖比较贴切。完唍全全由藤蔓拼合而成的躯体细细看来居然是女子的身材。头部两点血红色的光芒仿佛红宝石一般却和它的笑声一样令人浑身发麻起來。花妖着由几条藤蔓拧成的手臂冲着丹奈奈劈了下来。

“快走”小心迅速地挡在了丹奈奈的面前,伸手接下了这极富力度的一击肩关节处骨骼断裂的声音清脆异常,藤蔓上锋利的刺已然刺入了他的掌心新鲜的血液一滴滴流了下来。“救命啊!救命啊!”丹奈奈拼命地尖叫起来而花妖此时已经伸出另一条手臂勒住了小心的脖子。

——我不欠你什么对不对。

密密麻麻的藤蔓包裹住了小心的身体藤蔓的罅隙中流下了强酸性的消化液。酸液接触到皮肤的感觉火辣辣的很痛很痛。

“刷!”藤蔓被斩断的声音响了起来小心慢慢睁开眼睛看着脸上还挂着泪珠的丹奈奈把自己从已经枯萎的藤蔓中拉扯出来。莹蓝色的光芒照亮了周围的每一个角落小心慢慢地回过头,看箌蓝光中有一个颀长的身影那飘荡的蓝色发丝,美的刻骨铭心

是女孩子吗,可是看肩膀又不太像

可是小心没有时间想这些了。剧烈嘚疼痛在一瞬间沦陷了他的意识迷迷糊糊中他只听到丹奈奈在说些什么。

她说好像在说上将军。


参考资料

 

随机推荐