- 博客(11)
- 收藏
- 关注
原创 JVisualVM再次分析
有了这款可视化工具,Java 应用性能分析、调优 so easy...JVisualVM 简介VisualVM 是Netbeans的profile子项目,已在JDK6.0 update 7 中自带,能够监控线程,内存情况,查看方法的CPU时间和内存中的对 象,已被GC的对象,反向查看分配的堆栈(如100个String对象分别由哪几个对象分配出来的)。在JDK_HOME/bin(默认是C:\Program Files\Java\jdk1.6.0_13\bin)目录下面,有一个jvisualv.
2020-09-02 09:00:03 273
原创 mysql优化数据库对象
1 优化表的数据类型 表需要使用何种数据类型,是需要根据应用来判断的。虽然应用设计的时候需要考虑字 段的长度留有一定的冗余,但是不推荐让很多字段都留有大量的冗余,这样即浪费磁盘存储 空间,同时在应用程序操作时也浪费物理内存。 在 MySQL 中,可以使用函数 PROCEDURE ANALYSE()对当前应用的表进行分析,该函数可 以对数据表中列的数据类型提出优化建议,用户可以根据应用的实际情况酌情考虑是否实施 优化。 以下是函数 PROCEDURE ANALYSE()的使用方法:
2020-09-01 09:44:06 226
原创 mysql索引设计和使用
1,概述 MyISAM 和 InnoDB 存储引擎的表默认创建的都是 BTREE 索引。MySQL 目前还不支持函 数索引,但是支持前缀索引,即对索引字段的前 N 个字符创建索引。 例如,要为 city 表创建了 10 个字节的前缀索引,语法是: mysql> create index cityname on city (city(10)); Query OK, 600 rows affected (0.26 sec) Records: 600 Du...
2020-08-31 17:09:18 147
原创 java cpu变高,他在做什么
1.查找jvm进程ID: jps -lv 或者 ps aux | grep java2.根据pid,查找占用cpu较高的线程:ps -mp pid -o THREAD,tid,time 如图所示:找到占用cpu最高的tid (可以使用sort命令排序:sort -k 3 -r -n)3.将tid转换为16进制的数字:printf "%x\n" tid4.使用jstack命令,查询线程信息,从而定位到具体线程和代码:jstack pid | grep 7ccd -A 30 (注意7ccd..
2020-08-31 11:24:53 110
原创 ThreadLocal内存溢出
ThreadLocal 面试六连问,你能 Hold 住吗?ThreadLocal为Java并发提供了一个新的思路, 它用来存储Thread的局部变量, 从而达到各个Thread之间的隔离运行。它被广泛应用于框架之间的用户资源隔离、事务隔离等。但是用不好会导致内存泄漏, 本文重点用于对它的使用过程的疑难解答, 相信仔细阅读完后的朋友可以随心所欲的安全使用它。一、内存泄漏原因探索ThreadLocal操作不当会引发内存泄露,最主要的原因在于它的内部类ThreadL...
2020-08-20 13:19:07 2576
原创 一台 Java 服务器可以跑多少个线程?
每个线程都有一个线程栈空间通过-Xss设置,查了一下我们服务器的关于jvm内存的配置 -Xms4096m -Xmx4096m -XX:MaxPermSize=1024m 只有这三个,并没有-Xss 和-XX:ThreadStackSize的配置,因此是走的默认值。几种JVM的默认栈大小不考虑系统限制,可以通过如下公式计算,得出最大线程数量线程数量=(机器本身可用内存-JVM分配的堆内存)/Xss的值,比如我们的容器本身大小是8G,堆大小是40...
2020-08-20 13:08:09 309
原创 幂等性验证
为需要保证幂等性的每一次请求创建一个唯一标识token, 先获取token, 并将此token存入redis, 请求接口时, 将此token放到header或者作为请求参数请求接口, 后端接口判断redis中是否存在此token: 如果存在, 正常处理业务逻辑, 并从redis中删除此token, 那么, 如果是重复请求, 由于token已被删除, 则不能通过校验, 返回请勿重复操作提示 如果不存在, 说明参数不合法或者是重复请求, 返回提示即可 ...
2020-08-14 09:30:54 303
原创 redis原子性库存校验+分布式锁
1,基于分布式锁秒杀出现商品超卖publicSeckillActivityRequestVOseckillHandle(SeckillActivityRequestVOrequest){SeckillActivityRequestVOresponse;Stringkey="key:"+request.getSeckillId;try{BooleanlockFlag=redisTemplate.opsForValue().setIfAbs...
2020-08-14 09:22:00 963
原创 java jdk1.6报错SSLException: Could not generate DH keypair解决方法
1,先看错误javax.net.ssl.SSLException: java.lang.RuntimeException: Could not generate DH keypair at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:190) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1747) a...
2020-08-13 09:57:58 1104 1
原创 mysql索引
-- 创建表索引explain select * from t_sms_submit_200706 where msgid ='1'explain select * from t_sms_submit_200706 where MSISDN='1'explain select * from t_sms_submit_200706 where MSISDN=1 -- 不走索引explain select * from t_sms_submit_200706 where MSIS...
2020-07-08 23:17:18 84
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人