首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java性能--代码篇:String内存优化

String在日常开发使用频率应该不需要我过多形容,大家闭着眼睛都能手写出来,但也正因如此,对于String性能优化最容易被忽视却也最为必要! 如何优化String内存开支?...; if(a==b) { System.out.print("a==b"); } 创建 a 变量时,调用 new Sting() 会在堆内存创建一个 String 对象,String...对象 char 数组将会引用常量池中字符串。...创建 b 变量时,调用 new Sting() 会在堆内存创建一个 String 对象,String 对象 char 数组将会引用常量池中字符串。...在调用 intern 方法之后,会去常量池中查找是否有等于该字符串对象引用,有就返回引用。 而在堆内存两个对象,由于没有引用指向它,将会被垃圾回收。

97530

关于Linux性能IO一些笔记

,每天睁眼一瞬间就是懊悔,昨天又浪费掉了...人生没有意义,但是要努力寻找活着意义--------山河已无恙」 ---- 性能工具:磁盘I/O 在Linux,我们可以通过一些性能工具评估磁盘I/O...partitions 系统分区总数 total reads 读请求总数 merged reads 为了提升性能而被合并不同读请求数量,这些读请求访问是磁盘上相邻位置 read sectors...该输出包含了三列与磁盘1/0性能相关内容: bo, bi和wa。...默认信息还包括了CPU使用情况 -k 按KB显示统计数据,而不是按块显示 -x 显示扩展性能I/O统计信息 device 若指定设备,则iostat只显示该设备信息 interval 采样间隔时间...磁盘I/O性能相关选项和输出 当使用sar 来监视磁盘I/O统计数据时,你可以用如下命令行来调用它: sar -d [interval [count] ] 通常,sar显示是系统CPU使用相关信息

99320
您找到你想要的搜索结果了吗?
是的
没有找到

Spark 性能

下面这些关于 Spark 性能项,有的是来自官方,有的是来自别的工程师,有的则是我自己总结。...基本概念和原则 首先,要搞清楚 Spark 几个基本概念和原则,否则系统性能无从谈起: 每一台 host 上面可以并行 N 个 worker,每一个 worker 下面可以并行 M 个 executor...有的配置在不同 MR 框架/工具下是不一样,比如 YARN 下有的参数默认取值就不同,这点需要注意。 明确这些基础事情以后,再来一项一项看性能要点。...根据我测试,独占模式性能要略好与共享模式。 GC 。打印 GC 信息:-verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps。...可供参考文档:官方文档 Tuning Spark,Spark 配置官方文档,Spark Programming Guide,Running Spark on YARN,JVMGC 文档,JVM

36010

Spark性能

下面这些关于Spark性能项,有的是来自官方,有的是来自别的工程师,有的则是我自己总结。 ?...基本概念和原则 首先,要搞清楚Spark几个基本概念和原则,否则系统性能无从谈起: 每一台host上面可以并行N个worker,每一个worker下面可以并行M个executor,task们会被分配到...其次,涉及性能我们经常要改配置,在Spark里面有三种常见配置方式,虽然有些参数配置是可以互相替代,但是作为最佳实践,还是需要遵循不同情形下使用不同配置: 设置环境变量,这种方式主要用于和环境...有的配置在不同MR框架/工具下是不一样,比如YARN下有的参数默认取值就不同,这点需要注意。 明确这些基础事情以后,再来一项一项看性能要点。...根据我测试,独占模式性能要略好与共享模式。 GC。打印GC信息:-verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps。

2K20

kuberntesredis集群性能

,增长到一定程度就停止了,这个是需求方不能接受,于是本周接了活,对部署在kubernetesredis服务进行性能优化。...,由于redis是部署在kubernetespod,因此优化方法跟文章中提到办法有一点点不一样,如下: # sysctl.conf配置fs.file-max、net.core.somaxconn...个pod,每个pod均部署一个redis分片 44w 对比在物理机上直接部署redis集群,两者性能基本相近了,达到目标。...总结 相比功能开发,性能是一个很有趣工作,其需要对运行平台、软件架构、硬软件基础有比较深入了解才行,在过程也可以将之前了解一些概念性理论在实际场景进行验证,从而理解得更深刻。...因此工作还是相当难得和具有挑战

2.5K30

【首席架构师看性能】NGINX性能宝典

NGINX是众所周知性能负载均衡器、缓存和web服务器,为世界上40%以上最繁忙网站供电。对于大多数用例,默认NGINX和Linux设置工作得很好,但是要获得最佳性能有时需要进行一些调整。...我们首先讨论Linux,因为某些操作系统设置值决定了如何NGINX配置。 调整Linux配置 现代Linux内核(2.6+)设置适用于大多数目的,但更改其中一些设置可能是有益。...net.core.netdev_max_backlog–在将数据包交给CPU之前,网卡缓冲数据包速率。增加该值可以提高具有高带宽计算机上性能。...此指令设置队列请求最大数量,还可以选择设置在返回错误之前它们等待最长时间(默认为60秒)。如果省略此指令,则请求不会排队。...缓存和压缩可以提高性能 NGINX可以用来提高web应用程序性能一些附加特性实际上并不属于优化范畴,但值得一提是,它们影响是相当大。它们包括缓存和压缩。

56910

String 既然能这样性能,我直呼内行(文末送书)

莫慌,今天给大家见识一下不一样 String,从根上拿捏直达 G 点。 并且码哥分享一个例子:通过性能我们能实现百兆内存轻松存储几十 G 数据。...String对象是我们每天都「摸」对象类型,但是她性能问题我们却总是忽略。 爱她,不能只会简单一起玩耍,要深入了解String 内心深处,做一个「心有猛虎,细嗅蔷薇」暖男。...节省内存; 字符串分割技巧; String 身体解密 想要深入了解,就先从基本组成开始…… 「String 缔造者」对 String 对象做了大量优化来节省内存,从而提升 String 性能: Java...敲黑板 所以做字符串拼接时候,我建议你还是要显式地使用 String Builder 来提升系统性能。...创建 b 变量时,调用 new Sting() 会在堆内存创建一个 String 对象,String 对象 char 数组将会引用常量池中字符串。

41220

性能概述,这是一篇最通俗易懂性能总结!

什么是性能?(what) 3. 为什么需要性能?(why) 4. 什么时候需要性能?(when) 5. 什么地方需要性能?(where) 6. 什么人来进行性能?(who) 7....其实,性能就是调节这些内容,包括硬件、操作系统、应用程序。其中,这三大方面又包含了若干内容。...这就是我们说性能,客官你懂了嘛? 三、为什么需要性能?...以上架构中所有的服务都需要进行性能监控,一但发现有问题我们都得去进行性能优化,在这个过程我称为持续优化也称为监控优化。下面我们来具体说一下,具体什么地方需要性能? 五、什么地方需要性能?...往往他们一下代码SQL查询,比你优化系统多少天都来有效果,哈哈。 具体步骤 · 如果你不懂系统参数,你千万不要对系统参数进行随意改动,不然你会后悔。

1.2K30

性能概述,这是一篇最通俗易懂性能总结!

精彩早知道 作者概述 什么是性能?(what) 为什么需要性能?(why) 什么时候需要性能?(when) 什么地方需要性能?(where) 什么人来进行性能?...其实,性能就是调节这些内容,包括硬件、操作系统、应用程序。其中,这三大方面又包含了若干内容。...这就是我们说性能,客官你懂了嘛? 三、为什么需要性能?...以上架构中所有的服务都需要进行性能监控,一但发现有问题我们都得去进行性能优化,在这个过程我称为持续优化也称为监控优化。下面我们来具体说一下,具体什么地方需要性能? 五、什么地方需要性能?...往往他们一下代码SQL查询,比你优化系统多少天都来有效果,哈哈。 具体步骤 如果你不懂系统参数,你千万不要对系统参数进行随意改动,不然你会后悔。

1.2K50

教程 | Linux性能思路

下面主要讲解操作系统方面的性能思路,应用程序方面需要具体问题具体对待。...(3)磁盘I/O性能 磁盘I/O性能直接影响应用程序性能,在一个有频繁读写应用,如果磁盘I/O性能得不到满足,就会导致应用停滞。...RAID 0:通过把多块硬盘粘合成一个容量更大硬盘组,提高了磁盘性能和吞吐量。这种方式成本低,要求至少两个磁盘,但是没有容错和数据修复功能,因而只能用在对数据安全性要求不高环境。...03 分析系统性能涉及的人员 3.1 Linux运维人员 在做性能优化过程,Linux运维人员承担着很重要任务。...这样就完成了一个系统性能优化过程。 04 总结 系统性能优化是个涉及面广、繁琐、长久工作,寻找出现性能问题根源往往是最难部分,一旦找到出现问题原因,性能问题也就迎刃而解。

1.1K20

Linux性能之内存负载一些笔记

写在前面 整理一些Linux内存笔记,分享给小伙伴 博文没有涉及Demo,理论方法偏多,可以用作内存入门 博文内容涉及: Linux内存管理基本理论 寻找内存泄露进程 内存交换空间...,一般首先需要分析系统性能,然后执行系统变更测试应用。...错误事件数量 「执行系统变更步骤:」 执行系统变更步骤 设定基线:在,执行性能测试,收集指标 执行变更:在系统上执行变更,建议查阅相应官方文档 验证变更有效性:执行变更后,重新运行测试,比较一些关键指标...vm_swappiness 值来自sysctl vm.swappiness即位于内核参数一个值,交换分区采用频率 「关于 vm.swappiness 。交换空间会严重影响系统。」...第一个图显示了在内存压力下更倾向于交换系统 第二个图显示了更倾向于收缩页缓存系统 交换分区和文件 交换分区性能在很大程度上受到交换分区位置和数量影响。

2.3K20

jvm性能 - 02JVM内存区域

接着如果我们写代码里创建一些对象,这些对象是不是也需要内存空间来存放? ? 这就是为什么JVM必须划分出来不同内存区域,它是为了我们写好代码在运行过程根据需要来使用。...那么接着我们就得来看JVM另外一个非常关键区域,就是Java堆内存,这里就是存放我们在代码创建各种对象 比如下面的代码: ?...Java堆内存地址。...还有一个区域,是不属于JVM,通过NIOallocateDirect这种API,可以在Java堆外分配内存空间。...然后,通过Java虚拟机里DirectByteBuffer来引用和操作堆外内存空间。 其实很多技术都会用这种方式,因为有一些场景下,堆外内存分配可以提升性能

26420

Tomcat和JVM性能总结

Tomcat性能: 找到Tomcat根目录下conf目录,修改server.xml文件内容。...对于这部分,我所了解到就是无非设置一下Tomcat服务器最大并发数和Tomcat初始化时创建线程数设置,当然还有其他一些性能设置,下图是我根据我机子性能设置一些参数值,给各位详细解释一下吧...JVM性能: Tomcat本身还是运行在JVM上,通过对JVM参数调整我们可以使Tomcat拥有更好性能。目前针对JVM主要有两个方面:内存和垃圾回收策略。...内存这块呢,无非就是通过修改它们各自内存空间大小,使应用能够更加合理运用,下图是我根据我机子性能设置参数,给各位详细解释一下各个参数含义吧: ?...二:垃圾回收策略  找到Tomcat根目录下bin目录,也是设置catalina.sh文件JAVA_OPTS变量即可。

5.3K71

10个MySQL性能方法

但是 如果你使用 innodb_flush_log_at_trx_commit = 2 可以获得接近读取性能 (相差百倍) 。...保证从内存读取数据,讲数据保存在内存 2.1 足够大 innodb_buffer_pool_size 推荐将数据完全保存在 innodb_buffer_pool_size ,即按存储量规划 innodb_buffer_pool_size...所以,数据库刚刚启动,需要进行数据预热,将磁盘上所有数据缓存到内存。数据预热可以提高读取速度。 对于 InnoDB 数据库,可以用以下方法,进行数据预热: 1....SWAP 如果是专用 MYSQL 服务器,可以禁用 SWAP,如果是共享服务器,确定 innodb_buffer_pool_size 足够大。...当然不用连接池 PHP 程序也可能将 连接数占满比如用了 @ignore_user_abort(TRUE); 使用 IP 而不是域名做数据库路径,避免 DNS 解析问题 以上就是10个MySQL性能方法

69520

性能 Java 计算服务性能实战

如何从问题表象定位到性能瓶颈?如何验证优化措施是否有效?本文将介绍分享 vivo push 推荐项目中性能实践,希望给大家提供一些借鉴和参考。...(2)当分隔符为单个字符(且不为正则表达式字符)时,原生 String.split 进行了性能优化处理,但中间有些内部转换处理,在我们实际业务场景反而是多余、消耗性能。...分割处理实现,与原生实现针对单字符处理类似,使用 string.indexOf 及 string.substring 方法,分割结果放入 list ,出参直接返回 list,减少数据转换处理;提供...不过性能是永无止境,而且每个业务场景、每个系统实际情况也都是千差万别,很难用1篇文章去涵盖介绍所有的优化场景。...希望本文介绍一些实战经验,比如如何确定优化方向、如何着手分析以及如何验证收益,能给大家一些借鉴和参考。

62430

常用 JVM 性能监控工具

这些问题在日常开发可能被很多人忽视(比如有的人遇到上面的问题只是重启服务器或者大内存,而不会深究问题根源),但能够理解并解决这些问题是Java程序员进阶必备要求。...本文将对一些常用JVM性能监控工具进行介绍,希望能起抛砖引玉之用。本文参考了网上很多资料,难以一一列举,在此对这些资料作者表示感谢!关于JVM性能相关资料,请参考文末。...来观察锁持有情况 -m mixed mode,不仅会输出Java堆栈信息,还会输出C/C++堆栈信息(比如Native方法) jstack可以定位到线程堆栈,根据堆栈信息我们可以定位到具体代码,所以它在JVM性能中使用得非常多...-heap pid查看进程堆内存使用情况,包括使用GC算法、堆配置参数和各代堆内存使用情况。...其他JVM性能参考资料: 《Java虚拟机规范》 《Java Performance》 《Trouble Shooting Guide for JavaSE 6 with HotSpot VM》:

37320

性能测试-详细 TPS 笔记

可以发现cpu利用率呈现一种阶梯式递增趋势,但是负载却不高,说明cpu运行问题不大 jstat -gcutil 1 1000观察一下内存gc情况 ?...老年代内存空间不足了,所以导致新生代对象进不来,频繁fullgc,fullgc时间又会很长,所以吞吐量一直上不去 检查jvm内存空间配置 ? ?...堆区总共只有1g内存,几乎全部分给了新生代,导致老年代只有5M可怜空间 修改内存配置 现在来修改一下内存参数,再加入一个并行回收机制 ? ? 再次运行脚本,观察TPS和gc频率 ?...这次运行,fullgc频率变得很低了,而且吞吐量也比较平稳,没有什么大波动。但是运行到一分半钟时候,吞吐量出现了塌方式下降,同时出现了异常。...这次一个报错都没有了!

1.5K20

Tomcat 和 JVM 性能总结

JVM性能 一、内存 二、垃圾回收策略 ---- Tomcat性能 找到Tomcat根目录下conf目录,修改server.xml文件内容。...对于这部分,我所了解到就是无非设置一下Tomcat服务器最大并发数和Tomcat初始化时创建线程数设置,当然还有其他一些性能设置,下图是我根据我机子性能设置一些参数值,给各位详细解释一下吧...JVM性能 Tomcat本身还是运行在JVM上,通过对JVM参数调整我们可以使Tomcat拥有更好性能。目前针对JVM主要有两个方面:内存和垃圾回收策略。...内存这块呢,无非就是通过修改它们各自内存空间大小,使应用能够更加合理运用,下图是我根据我机子性能设置参数,给各位详细解释一下各个参数含义吧: ?...二、垃圾回收策略 找到Tomcat根目录下bin目录,也是设置catalina.sh文件JAVA_OPTS变量即可。

62030
领券