- 浏览: 127327 次
- 性别:
- 来自: 北京
最新评论
-
demoxshiroki:
通俗易懂,简单实用
Memory Analyzer Tool 使用手记 -
lvwenwen:
那么总结下来,如果是以下情况
JVM调优记录 -
wensong:
id.alex 写道那么总结下来,如果是以下情况1. 当内存中 ...
JVM调优记录 -
id.alex:
那么总结下来,如果是以下情况1. 当内存中有一批较大的(相对来 ...
JVM调优记录 -
aa87963014:
我也遇到了 com.mysql.jdbc.util.ReadA ...
更新总结
文章列表
最近手头需要开发一个Gradle插件,于是研究了几天,基本实现了一个Gradle插件。总结一下Gradle插件开发的步骤。
首先需要建一个gradle工程,需要添加以下依赖
dependencies {
compile gradleApi()
compile 'org.codehaus.groovy:groovy:2.1.5'
}
例如:新建一个groovy工程testPlugin,build.gradle如下,注意我这里为了简单使用的本地的maven库,发布到本地文件,都可以改成maven资源库。
apply plugin: " ...
今天查一个ClassLoader卸载问题,涉及到SoftReference和WeakReference,之前只知道大概的区别,没有什么总结,今天抽时间总结一下。
WeakReference
触发回收条件
引用的对象不再被其他对象引用
回收方式
系统GC即可
使用场景
适用于做这种缓存:缓存的key一旦失去了其他的引用,缓存里的东西就可以随时消失。
SoftReference
触发回收的条件
引用对象不再被其他对象引用
JVM Heap内存不足 || 超过一定时间,没被使用(get)(这个时间和JVM的空闲内存空间 ...
最近一段时间一直在研究热部署,热部署中涉及到一个比较头痛的问题就是查内存泄露(Memory Leak),于是乎在研究热部署的过程中,干的最多的一件事就是查内存泄露。 查内存泄露,最开始尝试用JDK自身的工 ...
前阵子写了一个RPC服务,测试的过程中,同时在测试的过程中反应间歇性超时比较严重,我的第一反应就是gc有问题,于是就观察了一阵子GC情况,发现这个服务的YGC时间有点不太正常,快的时候也就几十ms,慢的时候几十秒,总体上说就是快慢波动比较明显。
先说说这个服务,这个服务里面有个后台线程,每10分钟会去读一个大文件,然后将文件的数据缓存到本地,这个文件大概有100M不到,也就是说每10分钟,即使没有对外服务的情况下,也会有一次内存的加载过程,会产生一个内存波动。
为了查这个超时的问题,也恶补了一些JVM的相关知识,首先我的疑问是,Y ...
为了测试线上服务,加缓存的效果,模拟了一个本地缓存,去测试一下加缓存后的命中率,代码如下:
import java.util.Date;
import java.util.Random;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.Executor;
import java.util.concurrent.Executors;
import java.util.concurrent.atomic.AtomicInteger;
import org.apache. ...
写个脚本统计log
day=$1;type=$2;typefile="/data/wens/sharefile/type";for type in `cat $typefile`dosearchKey="type:$type,";echo "type:$type";if [ "$type" == "" ]; then searchKey="INFO";ficatfile="/data/xce/XwServiceUGC/log/share/share-crea ...
awk '/ /' xxx | gawk '{ sum += $6}; END {print sum}'
POST|/share/{ownerId}/share 17.6 6 939 49.9 569
awk一个简单的统计功能第六列的总和
\n:回车+换行
\r:回车
简单来说,就是\n把光标转到下一行行首,\r把光标转到当前行行首
第一次写脚本,写得很烂,不过还算成功了,以后的工作,只要是重复的,尽量写脚本完成,体力活让计算机去做,哈哈
参数主要有这么几个$1日期,$2文件类型,$3关键字
getnum.sh
#用户统计远程服务器上的远程log的一些值
day=$1;
if [ "$day" == "" ]; then
day=`date -d '1 days ago' +%Y-%m-%d`
fi
echo "Date:$day"
file=$2;
catfile="";
key=& ...
du -h /root
查询一个目录下的文件文件大小分布
转
du的英文原义为“disk usage”,含义为显示磁盘空间的使用情况。
功能:统计目录(或文件)所占磁盘空间的大小。
语法:du [选项] [Names…]
说明:该命令逐 ...
工作总结,提高效率:
1、别太自信,要知道电脑也出错。
2、打好log,在可能出问题的前面打好log,别偷懒
3、尽量用变量来替代重复出现的东西,如果确定不变的情况下,干脆做成一个常量
4、不要出现两份相同的代码逻辑片段。考虑,抽象或者把代码片段抽出。
5、不要做重复的事情,如果第二次做一件相同的事情,考虑能不能把这个事情做成一个动态化的东西,或者可配置的东西,让它动态的去改变。
6、最好能有单元测试,尽量考虑测试用例,再写代码,这一点要求很高。但是尽可能。
(未完待续)
df -h 查看整个硬盘情况
du -h filename 查看文件大小情况
du -h | grep G |awk '$1 ~/G/{print $0}' 定位G的文件夹
MemCache set值时要判断set的对象是否可以被序列化,比如一个List是不能被序列化的,要先转成可序列化的List,还要判断set是否为null,否者插入是不成功,甚至抛500,性能没提高,还被500,真是赔了夫人又折兵。
一.输出 ${book.name}
空值判断:${book.name?if_exists },
${book.name?default(‘xxx’)}//默认值xxx
${ book.name!"xxx"}//默认值xxx
${ book.name?exists}判断book.name是否存在
日期格式:${book.date?string(‘yyyy-MM-dd’)}
数字格式:${book?string.number}–20
${book?string.currency}–<#– $20.00 –> ...