编程的本质是数学问题

学源码是最快的学习方法

Java字节码研究

本文在本人2个博客https://blog.csdn.net/21aspnet和https://blog.csdn.net/unix21unix21同步发布 1.String和常连池 先上代码: public class TestApp { public static void ...

2019-03-05 18:49:39

阅读数 42

评论数 0

Linux kernel futex.c的bug导致JVM不可用

JVM死锁导致线程不可用,然后会瞬间起N个线程,当然也是不可用的,因为需要的对象死锁,然后耗尽文件句柄导致外部TCP无法建议拒绝服务,jstack之后就会恢复。解决办法:替换中间件类库 ,比如httpclient的。原因大致是:某个switch分支缺少memory barrier的正确处理,导致外...

2018-04-08 09:54:01

阅读数 227

评论数 0

Java堆外内存泄露分析

查看堆内存占用正常,jvm垃圾回收也没有异常。而top出来显示java占用内存是几个G,那么可能想到了是堆外内存泄漏。 需要安装google-perftools工具进行分析 1.先安装g++ 不然编译会报错:g++: command not found # yum -y install...

2018-01-25 14:18:29

阅读数 6194

评论数 0

线上java问题排查

0.jps 这个输出java进程pid #jps 查看java的线程 #top -Hp 25448 如图25757这个线程比较耗时,看看他在做什么 注意需要折算出线程pid的16进制值,然后jstack。 可以打印更多信息 #jstack pid | gre...

2018-01-18 11:24:38

阅读数 412

评论数 0

MySQL常用性能分析方法-profile,explain,索引

1.查版本号 无论做什么都要确认版本号,不同的版本号下会有各种差异。 >Select  version(); 2.执行状态分析 显示哪些线程正在运行 >show processlist; 下面是完整的信息

2016-10-26 13:49:46

阅读数 479

评论数 0

事务隔离机制原理分析以及是否可以防止订单超卖

事务的隔离机制是指: Read Uncommitted(读取未提交内容) Read Committed(读取提交内容) Repeatable Read(可重读) Serializable(可串行化) 具体的解释最经典的MySQL书《高性能MySQL(第3版)》以及有了就不在其他地方再引用了: ...

2016-10-18 20:35:04

阅读数 1915

评论数 0

Java飞行记录器 JRockit Flight Recorder JFR诊断JVM的历史性能和操作

需要展开子树,复制堆栈跟踪,就可以查看到代码调用链,看到自己的业务代码,从而定位到最耗时的代码位置:

2016-10-13 10:47:42

阅读数 3111

评论数 0

Spring源码分析【8】-MyBatis注解方法不能重载

代码如下: 这是不可以的,会报错: 2016-08-18 11:36:00,267 [main] ERROR [org.mybatis.spring.mapper.MapperFactoryBean] - Error while adding the mapper 'interface com...

2016-08-18 11:48:46

阅读数 5861

评论数 3

Spring源码分析【4】-Spring扫描basePackages注解

代码 @Configuration @Import(MybatisConfig.class) @ComponentScan(basePackages = {"com.xxx.*"}, excludeFilters = {@ComponentScan.Filter...

2016-08-09 16:28:37

阅读数 10574

评论数 0

Spring4实战学习笔记

《Spring4实战 第4版》2016年4月新出版的,之前的第三版看起来还是不错的,所以看到新版就直接买下来。 1.装配Bean 参考【2.2】 1.1接口只有一个现实类可以自动装配 public interface CompactDisc { void play(); } ...

2016-05-04 19:14:16

阅读数 6793

评论数 1

调试JDK源码-一步一步看HashMap怎么Hash和扩容

还是调试源码最好。 开发环境  JDK1.8+NetBeans8.1 说明:调试HashMap的 public V put(K key, V value) 方法并查看key的值时不能显示变量的值,原因在于oracle提供的jre中rt.jar不带debug信息。 orcale在编译src时使用了 ...

2016-03-17 10:54:15

阅读数 6949

评论数 4

计算机科学精彩帖子收集

linux源码 LXR 源自“the Linux Cross Referencer”,中间的“X”形象地代表了“Cross”。与 Source Navigator 类似,它也是分析阅读源代码的好工具。不同的是,它将源代码借助浏览器展示出来,文件间的跳转过程成了我熟悉的点击超链接动作。 http:/...

2014-04-24 15:39:15

阅读数 8955

评论数 4

ZooKeeper集群环境安装与配置

ZooKeeper版本:3.4.5 约定:3台虚拟机 前提:需要安装JDK,关于Linux环境JDK安装配置参考我的另一帖Linux环境安装卸载JDK以及安装Tomcat和发布Java的web程序 ZooKeeper官网:http://zookeeper.apache.org/ 1.下载解压...

2014-02-08 17:51:46

阅读数 4531

评论数 0

Linux环境HBase安装与使用

Linux环境:CentOS6.5 HBase版本:hbase-0.94.16 1.下载解压安装文件 # wget http://mirror.bit.edu.cn/apache/hbase/stable/hbase-0.94.16.tar.gz # tar xvfz hbase-0.94.1...

2014-01-25 21:49:53

阅读数 5886

评论数 1

Memcached安装使用和源码调试

官网:http://memcached.org/ 下载 # wget http://memcached.googlecode.com/files/memcached-1.4.15.tar.gz 解压 # tar xzvf memcached-1.4.15.tar.gz #cd memcach...

2013-11-12 13:25:52

阅读数 2020

评论数 1

GDB使用总结

一:列文件 1. List (gdb) list line1,line2 二:执行程序 要想运行准备调试的程序,可使用run命令,在它后面可以跟随发给该程序的任何参数,包括标准输入和标准输出说明符()和外壳通配符(*、?、[、])在内。 如果你使用不带参数的run命令,gdb就再次使用你给...

2013-07-30 15:48:38

阅读数 2429

评论数 0

Redis安装与源码调试

官网下载:http://redis.io/download 1.安装Redis # wget http://redis.googlecode.com/files/redis-2.6.14.tar.gz # tar xzf redis-2.6.14.tar.gz # cd redis-2.6.14 ...

2013-07-27 09:12:35

阅读数 9133

评论数 4

valgrind Massif

nginx源码学习是一个痛苦又快乐的过程,下面列出了一些nginx的学习资源。   首先要做的当然是下载一份nginx源码,可以从nginx官方网站下载一份最新的。 看了nginx源码,发现这是一份完全没有注释,完全没有配置文档的代码。   现在你最希望要的是一份注释版的nginx源码,可以从下面...

2013-07-15 12:01:00

阅读数 7107

评论数 1

使用valgrind分析C程序调用线路图

Valgrind可以检测内存泄漏和内存违例,但是用Valgrind生成的日志信息结合kcachegrind就可以查看C程序的执行线路图,调用时间,是做性能优化和查看代码的非常好的工具。 下载安装 Valgrind 安装 到www.valgrind.org下载最新版valgrind # wg...

2013-04-08 14:01:23

阅读数 5007

评论数 0

lighttpd+PHP安装

lighttpd版本:1.4.32 php版本:5.4.11   2013.2.3第一次 php版本:5.4.12   2013.3.14第二次修改   1.lighttpd官网地址 http://www.lighttpd.net   2.下载安装lighttpd #wget ...

2013-02-03 21:16:13

阅读数 3757

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭