- 博客(16)
- 资源 (10)
- 收藏
- 关注
原创 关于java web应用的性能分析
前一段时间对一个应用做性能的提升,最终从qps 50 搞成了大约400。 这里总结了一下一些方面,希望对大家有所帮助。总体来说,当你的应用qps不理想,或者访问出现问题是,大致有4个方面需要去查看一下:1 CPU的瓶颈2 服务器内存的瓶颈3 硬盘瓶颈4 其他的原因当然了,如果你的请求时从web出发的,考虑一下页面的渲染时间,一般来说,除去页面JS的渲染时间(作为一个
2012-08-30 10:30:13 3484
原创 java Class的泛型笔记
首先拿java的List做一个例子: public interface List { void add(E x); Iterator iterator();}public interface Iterator { E next(); boolean hasNext();}在上面的例子里,E被称为参数化类型:parameteriz
2012-08-29 14:25:59 3425
原创 线程杂谈之一
按照java6的docs解释,线程是一个正在执行的程序。每个线程都优先级,高优先级的线程会优于低优先级的线程先执行,当一个正在运行的线程创造了另一个线程时,这俩个线程的优先级,一样。关于thread本身的一些方法,本文列举了几个常用的函数。 1 wait:按照thinking in java的描述,wait允许我们将线程置于“睡眠”状态,同时有又积极的等待条件发生变化,只有在一个
2012-08-15 18:47:06 362
转载 关于计算机速度的计算
L1 cache读取(CPU的第一层高速缓存)0.5ns分支误预测(由于条件分枝必须根据等待处理后的结果再执行,这样有些电路单元处于空闲状态等待,出现时钟周期的滞留延长。如果将分枝执行结果预测得到,那么就可提前执行相应的指令,提高CPU运算速度。这就是分枝预测技术)5nsL2cache读取(CPU的第二层高速缓存)7ns
2012-03-15 10:14:20 633
原创 为什么hashmap是非线程安全的?
严格意义上来说,hashmap的时间复杂度并不是O(1),具体原因看get函数;此外,当在hashmap里面存的内容过多时,重新resize hashmap的长度,这也是一个耗时的时间。 首先看看hashmap的代码: static final int DEFAULT_INITIAL_CAPACITY = 16这个是hasmmap默认的大小。 static final
2012-03-13 10:42:32 4054 1
原创 awk指令详解的笔记
awk指令,给我的感觉是可以在任何一截的管道设卡,通过正则,排序,取值,等等的操作取出所需要的值。昨天处理了一个需求,如果取出排名前100 request最慢的请求,log是这样的2012-08-31 00:00:39,571 slow /area.htm id:531 TIME:1172012-08-31 00:00:42,262 slow req com.taobao.pegasu
2012-08-31 17:02:05 557
原创 代理模式
为什么要有代理模式?个人感觉是这样的:就类似于我们的社会,大的工厂是不会直接向用户卖产品的,而用户也不会直接去工厂去买货物,中间多了一层代理商,代理商去工厂进货,然后卖给用户。这样工厂可以只关心生产商品的事情,并且只和代理商打交道。如果还是很费解,不妨这样理解,比如你有一个很大的项目,已经稳定运行了,现在有个新的需求要你给***个用户提供一个服务,你愿意在原来的类里面加这些逻辑吗?
2012-08-17 12:05:12 1770
原创 jstack 线程dump
前一段时间发现一个线程的问题,后经过排查,通过jstack pid ,打印出了当前jvm的线程快照,是由于一个线程进入一个循环,而其他的线程持续的等待导致。在linux上的操作:ps -aux| grep 'java' 查出web应用程序的pid然后调用java自带的bin里的jstack即可jstack pid,结果如图所示:这个图,给出了当前一个名称为http-0.
2012-03-21 17:29:54 732
原创 JVM 内存参数
-Xms: java初始堆大小-Xmx: 最大的java堆参数-Xmn:新生代young generation的大小-Xss :每一个线程使用的堆的大小
2012-03-21 17:22:12 288
转载 jvm 系列之一 参数配置
行为选项选项默认值与限制描述-XX:-AllowUserSignalHandlers限于Linux和Solaris,默认不启用允许为java进程安装信号处理器。Java信号处理相关知识,详见 http://kenwublog.com/java-asynchronous-notify-based-on-s
2012-03-21 17:15:20 741
原创 JAVA Arrays的算法
Arrays 3000多行的代码啊。。。int med3(int x[], int a,int b, int c) { return (x[a] (x[b] (x[b] > x[c] ? b : x[a] > x[c] ? c : a));}这个函数可以将 a,b,c三个位置的字段比较大小后返回中间值比如分别让x[]={1,2,3}的排序
2012-03-13 10:43:09 386
原创 如何配置JVM的GC参数
这里给出的是基本的gc log的配置。-Xmx:最大的jvm堆的配置,-Xmx:初始的jvm的堆的配置,-Xmn:Young Generation 的大小如果要打印出GC的log,需要配上下面的配置:-XX:+PrintGCDetails -XX:+PrintGCTimeStamps -verbose:gc -Xloggc:gc.log如果是在eclipse的ini里面,gc.l
2012-03-09 15:17:56 3799
原创 排序 堆排序 快排序 插入排序 选择排序
堆排:public static void heapAdjust(int h[], int s, int m) {int temp = h[s];int i=2 * s + 1;for ( ;i i++;if (temp > h[i])break;h[s] = h[i];s= i;h[i] = temp;}}public stat
2012-03-06 09:22:01 353
原创 ajax发送中文与http的post,get的不同
最近在项目开发过程中遇到了一个前端直接ajax post,或者get中文,后台无论怎么转码也取不到中文的问题,今天参考了一下资料,并做了实验,发现问题如下:对于中文,iso-8859-1的encode是不能被还原的,以“中文”为例一下的几个编码对应的byte数组为:[
2011-08-19 14:34:46 1781
原创 mysql的一些总结
mysql一个表最好多少条数据,为什么这么多?为什么不用oracle而用mysql? 一般而言,mysql一个表的数据量不要超过1000万,最好500万左右,这是由mysql的一些内部机制所决定的,mysql的DDL实现与oracle不同,mysql的DDL实现比较麻烦,以更改一个字段为例:假如表T有一个A字段char(10),现在要将其改为20,mysql的实现为:首先建
2011-06-17 17:52:00 653
原创 webx解析
在使用webx做mvc时,页面是如何被该框架解析的呢?1 用户输入http://localhost:8081/index.htm2 分析url取得target /index.htm3 然后根据target查找screen模板 /screen/index.vm4 根据target查找screen模块的类:xxx.module.screen.index 如果找不到该类xxx.m
2011-06-14 09:04:00 532
基于本体的专利摘要知识抽取球
2010-03-02
基于HMM中国组织机构名自动识别
2010-03-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人