怎样提高java平台的性能
为什么80%的码农都做不了架构师?>>>
首先是从三方面来提高的,应用层面,服务器端层面,数据库层面。
一、应用层面
1、采用freemaker或者velocity来做页面静态化,提高网站的访问速度。
二、服务器端
1、对于一些不经常增删改的数据做缓存,比如memcached,redis,mongodb
2、对于图片的话,采用fastDFS来做图片的分布式服务器,加快图片的存储与读取。
3、对于安全方面,采用数据库事务来保证数据的安全性能。
4、能尽量少的使用锁来处理,因为锁有时候会带来一系列的连锁反应。
5、做负载均衡,通过nginx+tomcat组合给服务器端分流。
6、通过队列来做一些数据的信息暂存,来减缓线程对服务器的压力。
7、采用并发的集合类,例如ConcurrentHashMap,CopyOnWriteArrayList等。
8、考虑程序的可扩展性和可移植性。
9、数据的一致性问题,需要考虑java concurrent包
10、适当的使用一些高效算法。
11、内存一致性:内存操作(如共享变量的读写)的 happen-before 关系。只有写入操作 happen-before 读取操作时,才保证一个线程写入的结果对另一个线程的读取是可视的。synchronized 和 volatile 构造 happen-before 关系,Thread.start() 和Thread.join() 方法形成 happen-before 关系。
12、JVM的内存模型以及JVM的垃圾回收机制,一直垃圾回收器的合理使用,新生代和老年代的合理分区。
三、数据库层面
1、给数据库字段做索引,能够加快查询速度,不是所有的索引都能够加快查询速度的,前提是对于查询多于增删改的数据。
2、给数据库表做表分区,能够加速查询的速度。
3、分库分表,通过分区分表能够加快查询速度。
4、根据explain命令对于sql语句进行解释执行计划分析。
5、对表进行分区,分区查询会加快速度的
6、oracle的话。需要选择合适的选择器,根据实际需要,选择基于成本的选择器,或者基于基于规则的优化器
7、in和exists,还有not in和not exists的用法区别,以及适用场合
8、做master-slave,进行读写分离,给数据库通过分流来减小压力。
9、对于sql语句进行优化.
转载于:https://my.oschina.net/liting/blog/355619
怎样提高java平台的性能相关推荐
- java锁性能对比_提高Java的锁性能
java锁性能对比 Plumbr是唯一可以通过解释应用程序性能数据来自动检测Java性能问题根本原因的解决方案. 几个月前,我们在Plumbr中引入了锁定线程检测之后,我们开始收到类似于"嘿 ...
- 提高Java的锁性能
Plumbr是唯一通过解释应用程序性能数据来自动检测Java性能问题的根本原因的解决方案. 几个月前,我们在Plumbr中引入了锁定线程检测之后,我们开始收到类似于"嘿,太好了,现在我知道是 ...
- Ways to 优化JAVA程序设计和编码,提高JAVA性能
通过使用一些辅助性工具来找到程序中的瓶颈,然后就可以对瓶颈部分的代码进行优化.一般有两种方案:即优化代码或更改设计方法.我们一般会选择后者,因为不去调用以下代码要比调用一些优化的代码更能提高程序的性能 ...
- 如何用JNI技术提高Java的性能详解
阻碍Java获得广泛应用的一个主要因素是Java程序的运行效率.Java是介于解释型和编译型之间的一种语言,同样的程序,如果用编译型语言C来实现,其运行速度一般要比Java快一倍以上.Java具有平台 ...
- springboot2.0 默认数据连接池HikariPool(java平台最快的,替换druid)性能对比
背景 对现有的数据库连接池做调研对比,综合性能,可靠性,稳定性,扩展性等因素选出推荐出最优的数据库连接池 . NOTE: 本文所有测试均是MySQL库 测试结论 1:性能方面 hikariCP> ...
- 潭州学院java大型企业内部技术_【JAVA教程】分享5款课提高Java开发性能的调试工具-潭州JAVA...
Java是一种非常强大的编程语言,自问世以来就广受欢迎.本文为大家介绍了多款有用的调试工具,以供参考.不过,在此之前,先来看看有哪些不同类型的调试器. 调试器的类型 CLI调试器(命令行调试器):GD ...
- apr提高tomcat的web性能
apr提高tomcat的Web性能 Tomcat可以使用APR来提供超强的可伸缩性和性能,更好地集成本地服务器技术.APR(Apache Portable Runtime)是一个高可移植库,它是Apa ...
- 提高 Java 代码质量
高质量代码中往往缺陷更少!确保高的 Java 代码质量有两个步骤:尽早并经常地编写各个层次的测试用例,以及持续的监测质量状况.那么我们又该如何实践呢?本专题汇集了大量来自代码质量专家们的专业经验.最佳 ...
- Java 平台调试架构JPDA
转载自 Java-JPDA 概述 JPDA:Java 平台调试架构(Java Platform Debugger Architecture) 它是 Java 虚拟机为调试和监控虚拟机专门提供的一套接 ...
- java组件_三个必不可少的Java平台组件:什么是JVM,JDK,JRE?有啥区别?
刚接触Java的开发人员经常想知道Java虚拟机,Java开发工具包和Java运行时环境与众不同的地方.他们也很好奇这三个Java平台组件如何在Java应用程序中一起工作.最后,开发人员需要知道他们将 ...
最新文章
- snort源码的详细分析
- php缓存mysql表_PHP 中的数据库缓存原理
- 自行控制loadrunner的socket协议性能测试 (转)
- Madgwick算法详细解读
- German Companies
- 阿里巴巴Java开发手册建议创建HashMap时设置初始化容量,但是多少合适呢?
- matlab 可视化 —— 高级 api(montage)、insertObjectAnnotation、insertMaker
- (十一)JAVA springboot ssm b2b2c多用户商城系统 - SSO单点登录之OAuth2.0登录流程(2)
- 【Android TV 开发】安卓电视调试 ( 开启网络远程调试 )
- Linux Ubuntu 安装五笔输入法 ibus-rime 教程
- LeetCode刷题(158)~从尾到头打印链表【递归|辅助栈】
- 微信公众号获取用户地理位置,转换百度坐标
- win10 uwp 关联文件
- 文献 | 越想快乐,越不快乐
- 条件概率、全概率、先验概率、后验概率
- 去哪儿2017校园招聘笔试题
- 被 KPI 绑架的百度贴吧
- 剑指 Offer 05. 替换空格无标题(正则表达式)
- 申请微信公众号的一些流程和注意
- Vue组件封装 ——button组件
热门文章
- paip.提升分词---准确度--常用量词表
- Julia: MFDCCA和MFCCA算法代码
- 阿里云王伟民:数据库的策略与思考
- 不虚此行!OpenStack 温哥华峰会参会分享值得收藏
- 2021全国研究生数学建模竞赛F题思路
- 【数据分析】基于matlab GUI kmeans聚类分组系统【含Matlab源码 510期】
- 【手写数字识别】基于matlab Fisher分类手写数字识别 【含Matlab源码 505期】
- 【行为识别】基于matlab轨迹法行为识别【含Matlab源码 375期】
- 创建页面html,DW软件新建一个html网页
- 香草 jboss 工具_使用Tensorflow创建香草神经网络