`
wensong
  • 浏览: 125149 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
        最近手头需要开发一个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自身的工 ...

JVM调优记录

    博客分类:
  • JVM
        前阵子写了一个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=& ...
nginx 流量切不走,因为配置文件没配对  
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 –> ...
Global site tag (gtag.js) - Google Analytics