内存优化

Intellij IDEA 内存优化

自古美人都是妖i 提交于 2019-11-30 10:24:11
Intellij IDEA 内存优化 idea 默认的内存配置会导致idea启动缓慢,运行时很卡,查了很多资料后做了一些优化。 自己的开发机内存8G,需要自定义的同学可以重点关注Xms 和 Xmx 两个参数 找到配置文件 idea64.exe.vmoptions 优化默认配置 - server - Xms128m - Xmx2048m - XX :NewRatio= 3 - Xss16m - XX :+UseConcMarkSweepGC - XX :+CMSParallelRemarkEnabled - XX :ConcGCThreads= 4 - XX :ReservedCodeCacheSize= 240 m - XX :+AlwaysPreTouch - XX :+TieredCompilation - XX :+UseCompressedOops - XX :SoftRefLRUPolicyMSPerMB= 50 - Dsun .io.useCanonCaches= false - Djava .net.preferIPv4Stack= true - Djsse .enableSNIExtension= false - ea 来源: CSDN 作者: mulangren1988 链接: https://blog.csdn.net/mulangren1988/article

linux tomcat jvm内存优化

China☆狼群 提交于 2019-11-30 05:00:50
PermGen space:全称是Permanent Generation space。就是说是永久保存的区域,用于存放Class和Meta信息,Class在被Load的时候被放入该区域 Heap space:存放Instance。 GC(Garbage Collection)应该不会对PermGen space进行清理 所以如果你的APP会LOAD很多CLASS的话,就很可能出现PermGen space错误 Java Heap分为3个区,Young,Old和Permanent。Young保存刚实例化的对象。当该区被填满时,GC会将对象移到Old区。Permanent区则负责保存反射对象,本文不 讨论 该区。 JVM的Heap分配可以使用-X参数设定, -Xms 初始Heap大小 -Xmx java heap最大值 -Xmn young generation的heap大小 JVM有2个GC线程。第一个线程负责回收Heap的Young区。第二个线程在Heap不足时,遍历Heap,将Young 区升级为Older区。Older区的大小等于-Xmx减去-Xmn,不能将-Xms的值设的过大,因为第二个线程被迫运行会降低JVM的性能。 为什么一些程序频繁发生GC?有如下原因: l 程序内调用了System.gc()或Runtime.gc()。 l 一些中间件软件调用自己的GC 方法

mysql内存优化总结

房东的猫 提交于 2019-11-29 10:58:33
1.mysql内存优化原则 a. 将尽量多的内存分配给mysql做缓存,但是也要给操作系统和其他程序预留足够内存。 b. MyISAM的数据文件读取依赖于操作系统的io,因此如果有MyISAM表,就要预留更多的内粗给操作系统做io缓存。 c. 合理设置排序区、链接区等缓存大小。 2.MyISAM内存优化 MyISAM没有特别的缓存机制,完全依赖于操作系统的io缓存 2.1 key_buffer_size key_buffer_size决定MyISAM索引块缓存去的大小,直接影响MyISAM表的存取效率。对于一般MyISAM数据库,建议至少将1/4可用内存分配给key_buffer_size 2.2 read_buffer_size和read_rnd_buffer_size 如果需要经常顺序扫描MyISAM表,可以通过增大read_buffer_size的值来提高性能。但是要注意它是每个session独占的,如果默认值太大,就可能浪费内存,造成物理内存耗尽。 对于要做排序的MyISAM表查询,如带有order by子句的sql,适当增大read_rnd_buffer_size,来改善性能。它也是每个session独占的。 3 InnoDB内存优化 InnoDB的缓存机制和MyISAM不太相同。InnoDB用一块内存区做IO缓存池,该缓存池不仅用来缓存InnoDB的索引块

【构建Android缓存模块】(一)吐槽与原理分析

眉间皱痕 提交于 2019-11-28 13:45:05
转 载 声明: Ryan的博客文章欢迎您的转载,但在转载的同时,请注明文章的来源出处,不胜感激! :-) http://my.oschina.net/ryanhoo/blog/93285 摘要 : 在我翻译的 Google官方系列教程 中,Bitmap系列由浅入深地介绍了如何正确的解码Bitmap,异步线程操作以及使用Fragments重用等技术,并且在最后给出了非常强大的独家秘笈: Bitma pFun ,让猿媛们得以一窥究竟Google的攻城师们是如何高屋建瓴地秒杀OOM的。 前言 在下 载到 B itma pFun .rar 这个 神圣的压缩包以后,我是双手颤抖, 似乎是打开上古秘藏一般, 心情激动导致久久不能自已。我还记得那天上海下着小雨,我当时霍然起身,伫立在23楼的窗台,仰着头向江水对岸的东方明珠望去,似乎这样我郁积已久的眼泪就不能掉下来。 说到这里,Ryan又暗自抹了一把眼泪。短暂地忘记了过去的黑暗时光,那一个漫长的被OOM的淫威所折磨的盛夏。。。 最 后在Boss诧异的目光中,我回到办公桌,按捺着内心汹涌的情绪波动,然后小心翼翼的打开 BitmapFun.rar 。当那些在洪荒时代就活跃在Android平台的大师们书写的篇章呈现在我眼前时,我的表情与阿宝从师父手里得到 Drag on Scroll 时一般,永久的定格在了极度天真的期待与眼角一抽一抽 的状态。

java保留两位小数

江枫思渺然 提交于 2019-11-28 11:28:32
相信大家对内存数据库的 概念并不陌生,之前园子里也有多位大牛介绍过SQL内存数据库的创建方法,我曾仔细 拜读过,有了大致了解,不过仍有很多细节不清晰,比如 : (1)内存数据库是把整个数据库放到内存中的吗? (2)数据都在内存里面,那宕机或者断电了,数据不是没有了吗? (3)据在内存是怎么存放的,还是按照页的方式吗,一行的大小有限制吗? (4)内存数据库号称无锁式设计,SQL是如何处理并发冲突的呢? 相信这些疑问也是大家在思考内存数据库时经常遇到的难题,下文将为大家一一揭开这些问题的面纱,如有不对之处,还请各位看官帮我指出。 一、 内存数据库是如何存储的,只放在内存吗?是把整个数据库放在内存吗? 答案:不是。 如果你还没有看过宋大侠的博客,建议现在就看看。 http://www.cnblogs.com/CareySon/p/3155753.html 在这篇文章中,我想着重引用如下两个信息: (1) 内存数据库其实就是将指定的表放到内存中,而不是整个数据库; (2)内存数据库用文件流的方式组织磁盘中的数据文件; 我再补充一个信息 (3)内存数据库的数据文件分data file和delta file,而且是成对出现; 1、内存数据库其实就是将指定的表放到内存中,而不是整个数据库; 从宋大侠的博客中可以知道,内存数据库的创建过程其实就是将表存放到内存中,而不是整个数据库。下图展示

[转]探索 Android 内存优化方法

喜夏-厌秋 提交于 2019-11-27 21:58:25
前言 这篇文章的内容是我回顾和再学习 Android 内存优化的过程中整理出来的,整理的目的是让我自己对 Android 内存优化相关知识的认识更全面一些,分享的目的是希望大家也能从这些知识中得到一些启发。 Android 应用运行在 ART 环境上,ART 是基于 JVM 优化而来的,ART 优化的目标就是为了让 Android 应用能更高效地在 Android 平台运行。 不严谨地说,Android 应用就是一个在 Android 平台运行良好的 Java 程序,承载着 Android 应用的 ActivityThread 同样有 main 方法。 因此只有了解了 Java 的内存管理机制,才能更好地理解 Android 的内存管理机制,如果你对这一块还不熟悉的话,可以看我的上一篇文章 《 Java 内存管理机制 》。 本文的内容可分为下面两部分,大家可以根据自己的需要选择性地阅读。 第一部分 讲的是 Android 内存管理机制相关的一些知识,包括 Dalvik 虚拟机和 ART 环境等。 第二部分 讲的是内存问题的解决与优化方法,包括 Memory Profiler、LeakCanary 工具的使用方法。 1. 为什么要做内存优化? 内存优化能让应用挂得少、活得好和活得久 。 挂得少 “挂”指的是 Crash,假如一个满分的应用是 100 分,那么一个会 Crash