- 博客(44)
- 收藏
- 关注
JDBC的PrepareStatement在mysql下的实现
前言 前些天做项目的性能对比测试,发现新的性能比之前的性能下降了很多,百思不得其解;多方磨难,最后定位到我们使用了DBCP的connection pool,没有打开prepareStatement Cache,打开后,性能就上来了; 老的项目是使用c3p0,里面是使用到了prepareStatement Cache。 正文 今天有空,研究下mysql jdbc driver的实现...
2011-12-15 11:31:09
274
天气API
http://m.weather.com.cn/data/101210101.html 中国天气提供的内部API,后面的ID还未知具体规则 返回的数据格式为json;
2011-10-18 14:13:55
192
一种无名的设计模式
问题 常见一个门面实现类,融合了N多的if/else,遂抽取了这种设计模式 类图 伪代码 //Facade public void process(String key, Object...){ DataHandler handler = dataHandlerFactory.factory(key); if (handler != nu...
2011-10-10 15:39:57
245
DirectMemory实现方式
我们都知道Terracotta收购了EhCache,同时推出了基于off-heap技术的bigMemory,从而摆脱JVM GC带来的性能问题; 就Java 本地Cache(非分布式)而言,存在3个地方可以存放数据:Heap, OffHeap和Disk BigMemory非开源产品,所以其源码不能通过正常渠道拿到。 同时,有一个开源产...
2011-09-09 17:30:45
242
Buffer的几个属性和方法速记
java.nio.Buffer 属性 mark position limit 一般情况下limit==catacity capacity 此属性一经设置,就不会改变 remaing limit-position address 查询类方法 remaining limit - position...
2011-09-01 16:49:08
465
mvn创建工程模板
创建模板工程 手工创建 已有工程创建 mvn archetype:create-from-project 然后到当前目前下的target/generated-sources/archetype寻找创建好的身影 如果无需修改任何东西,则 mvn install 最后在你要新建工程的目录下 mvn archetype:generate -Darchetype...
2011-08-26 18:01:35
183
TCP的几个常用参数
SO_LINGER Specify a linger-on-close timeout. This option disables/enables immediate return from a close()of a TCP Socket. Enabling this option with a non-z...
2011-08-26 17:48:24
338
原创 20110810
文武之道,一张一弛 java se6 性能改进 偏向锁 锁粗化 自适应旋转 Detecting Contention • IDEs, Profilers or 3rd party tools • Mpstat on Solaris – vctx rate • If suspected, sample process with pstack > Loo...
2011-08-10 22:14:16
217
原创 20110809
The maximum heap size of a Java application is limited by three factors 1、the process data model (32-bit or 64-bit) and the associated operating system limitations(what?) 2、the amount of virtual ...
2011-08-09 19:15:00
150
20110806
IO 写道 Disk latency is around 13ms, but it depends on the quality and rotational speed of the hard drive. RAM latency is around 83 nanoseconds. 性能指标 IOPS (input/output operations per...
2011-08-06 21:46:28
145
20110802
Java & JVM 相关 买了一本书 ,深入理解java虚拟机 JMM jsr-133-faq jdk7 source code: http://download.java.net/openjdk/jdk7/ 分布式锁相关 拜占庭失效问题 Paxos算法, 分布式系统中消息传输一致性算法 两个具体实现 google chubby...
2011-08-02 17:38:48
136
20110801
java se 7 AIO的实现 windows基于IOCP(input/output Completion Port,I/O完成端口) 它是应用程序使用线程池处理异步I/O请求的一种机制. linux基于epoll (EpollPort) 编程模型 AIO模型相对于之前的编程模型,更加简便,且把线程池隐藏在内部实现中。 服务器端 channelGroup...
2011-08-01 21:24:46
200
原创 20110731
java7 AIO 问题,是基于java concurrent Future+nio完成? 如AsynchronousSocketChannel,AsynchronousServerSocketChannel, AsynchronousFileChannel java7 自动资源关闭,实现AutoCloseable Grizlly http://grizzly.java.ne...
2011-07-31 21:26:24
128
原创 JAVA SE7 新特性
IO http://openjdk.java.net/projects/nio/ add java.nio.file package Defines interfaces and classes for the Java virtual machine to access files, file attributes, and file systems. The java.n...
2011-07-30 20:16:08
191
原创 20110729
java7 的特性 http://www.oracle.com/technetwork/java/javase/jdk7-relnotes-418459.html java7已经GA了 WTP3.3的dynamic web project的属性,和之前的版本不一样,而且还需要手工设置一下,默认的不生效。...
2011-07-29 13:26:49
130
原创 20110728
参加了2个会 整理了《应用无状态》的4件事情 内容分发系统 日志syslog mount去除 应用服务器升级 听了一个分布式cache实现,里面考虑了很多点 通讯,大家都是基于mina或netty的nio,为了实现更高的性能 通讯协议(这里也叫它序列化协议),考虑很多:hessian\json\pb\thift\java default 数据一致性 一致性ha...
2011-07-28 20:20:56
123
记录一下ByteBuffer调用路径
在某个地方_endpoint.fill(buffer); 调用_channel.read(bbuf); 这里看一下SocketChannelImpl.read方法 然后调用IOUtil.read(fd, bytebuffer, -1L, nd, readLock); if(bytebuffer instanceof DirectBuffer) retu...
2011-07-22 14:57:06
134
原创 DirectByteBuffer
DirectByteBuffer特性说明 Java 2 SE 6 doc : Given a direct byte buffer, the Java virtual machine will make a best effort to perform native I/O operations directly upon it. That is, it will attem...
2011-07-22 11:00:55
218
Jetty的核心
Jetty的核心类 Server ThreadPool(有两个实现),见这里http://lixjluck.iteye.com/blog/1129558 SelectChannelConnector SelectorManager SelectSet SelectChannelEndPoint HttpConnection(HttpInput, HttpOutput, Ht...
2011-07-21 17:03:46
147
ThreadPool配置及线程分配
QueuedThreadPool的使用 jetty自己实现的thread pool 参数 描述 name 设置线程的名称,默认qtp-(thread id) maxThreads 最大启动的线程数 minThreads 默认启动的线程数 maxQueued 不设置,使用自增长的BlockingArrayQueue 设置,使用Array...
2011-07-21 11:27:01
240
SelectChannelConnector可配置参数
SelectChannelConnector可配置参数 基础参数,继承自AbstractConnector 参数 描述 name host port integralScheme integralPort confidentialScheme confidentialPort acceptQueueS...
2011-07-21 10:44:56
328
Memcached与HandlerSocket+MySql
Memcached(MC)目前遇到的问题 1、MC失效后,会引起雪崩效应,导致整个系统不可以(DB被拖垮了) 2、数据一致性(整个看起来不是个大问题) 3、运维,一般情况下都没用专门的系统支持 HandlerSocket(HS) 可以解决的问题: 1、结合了store+cache的功能,且物理在一起,就是说以前的cache这一层的机器,现在可以不用了 2、数据一致性 3、有专...
2011-07-20 11:06:31
122
Icacls windows命令
jboss中,开启jmx-console需要对*.properties文件授权,才可以启动 可以通过 Icacls 修改文件的权限 参考: http://technet.microsoft.com/en-us/library/cc753525(WS.10).aspx ...
2011-07-20 10:57:18
444
Leader/Follower模式的简单实现
Leader/Follower相比较于普通的ThreadPool的优点 1、无需context switch,减少了线程间数据copy 2、无需维护一个队列,占用而外的内存空间 lf模式理解起来稍微有些困难,所以写了一个小的事例程序帮助自己理解 public class ThreadPool { private final static Object monitor = n...
2011-04-26 17:51:46
1090
一些概念
Scalability Scale up (in) Scale down (out) HA-High Availability LB-load balancer SPOF-Single Point Of Failure Fault tolerance Cluster Partitioning --Horizontal partitioning --Vertical par...
2011-04-15 11:33:39
138
并发的几个解决方案
1、 最简单的,页面的《提交》按钮,在点击后(校验通过后)Disabled,这样用户就不会重复点击《提交》按钮; 2、 数据库表增加唯一性索引(比如memberId),这个只能解决一般(为什么一般,继续看)并发插入的问题; 如果两条一样的数据插入,只有一条会成功,另外一次插入失败; 3、 使用乐观锁,在Table里增加一个version int字段,这个可以保证更新操作的并发问题; Sel...
2011-04-15 10:22:43
307
Awk实现求和、平均、最大值和最小值的计算操作
0、准备和数据文件 比如有一个数据文件,只有一列(在之前可以通过各种手段过滤出只有数字这一列),比如操作的响应时间 490898 1189235 20212 1494270 146515 29369 23563 563027 22976 127809 16813 551646 18858 18977 1、求和 cat data|awk '{sum+=$1} ...
2011-03-14 14:51:45
643
原创 梦想+坚持=?
《小鲤鱼跳龙门》的故事相信很多人都听过的,不同阶段听,我想收获会不一样。 要不要再来看一次? 那就请静下心来,来几个深呼吸,花5分钟,我们一起来,再温习一下这个故事: --小鲤鱼跳龙门-- 很久很久以前,在一个大湖里住着一群鲤鱼,他们生活的非常快乐,随着慢慢长大,他么都有一个共同的欲望,就是想到外面的大海去看看。 于是他么就结伴一起出发了,他们顺着湖水向大海的方向游去。 当他们游...
2011-01-07 14:23:16
234
JVisualVM中的JConsole的使用
JVisualVM中提供了jconsole的插件,默认把它安装好后,发现不知道怎么用,打开jconsole Tab发现如下所示: 它提示我们已经安装好了JConsole插件,但是还要配置,配置什么呢?这个问题,我以前试过多次,不得其解,偶然一次机会,看到一篇文章,它是如下操作的: 在配置jconsole plugins的地方,Add jar,选择JDK_HOME/demo/manage...
2010-07-15 19:06:44
505
程序员的几个素养
见如下链接PDF: http://docs.google.com/fileview?id=0B2AZBrgwR_PNNjhjODhiN2MtYzg1My00NGMzLWI5MzItOGE4YzdkMzdkMmFi&hl=zh_CN
2010-07-14 18:03:25
121
原创 Log4j 1.2.15路径替换一个bug
Log4j提供了一个路径替换(subst-mechanism)功能,可以实现运行期替换log4j配置文件里${xx}的标记为外部指定的值。 例如:log4j.xml可以指定file的值为"${loggingRoot}/project.log",此时就可以利用log4j的subst功能,把${loggingRoot}替换成具体的路径,如d:/app/logs <appender...
2010-07-13 19:31:54
352
生产环境数据源c3p0的配置
前市面上可用的数据源有 3 个 :c3p0, dbcp, bonecp 。对应一个数据源生产使用,主要注意以下几个点: 1. 性能 2. 自动重连 3. 安全,目前只有jboss app server内置的数据源支持数据库密码的加密。 ...
2010-07-05 20:26:15
418
远程监控JVM--VisualVM
对于使用命令行远程监控jvm太麻烦?那可以试试sun提供的VisualVM,jdk1.6自带了,可以到bin目录下找到它。 什么也不说了,直接运行此exe,打开界面如下: (图1) (上图1左边的数可以看到,VisualVM分为3类,Local它会自动侦测到,并显示出来) 双击Local下的任一节点,看到右边的变化(有点...
2009-11-13 14:26:28
222
远程监控JVM
远程jstat Step by Step 1、 在机器上启动jstatd,一个daemon进程,更多解释见此链接 1.1、 首先需要准备一个java.policy文件,保存到如/home/admin/jstatd.java.policy grant codebase "file:${java.home}/../lib/tools.jar" { permis...
2009-11-13 14:12:27
169
JBoss中异步消息的发送和接收
在不使用ejb的情况下,怎么在jboss中简单地实现异步消息的发送和接收呢? 我们可以通过spring对jms的封装来实现。 首先,在jboss配置好你的ConnectionFactory, Queue jms-ds.xml <connection-factories> <tx-connection-factory> ...
2009-09-16 09:45:48
165
Groovy 的基本数据类型--字符串
Groovy里有两种字符串:java.lang.String和groovy实现的groovy.lang.GString String的表现形式 单引号 'hello world' String 双引号 "hello world" "hello, $name" String GString 3个单引号 ''' h1 h2 h3'...
2009-08-19 22:12:07
1000
Groovy 的基本数据类型--数字
在Groovy里,一切皆对象,没有所谓的原始类型。 Groovy 的基本数据类型有以下几种: 1、数字 2、字符串,正则表达式 3、集合(list,rang, map) 数字(Number) groovy支持的数字 java.lang.Integer 123, 0x123 java.lang.Float 123f,123F java.lang....
2009-08-19 20:45:10
895
搭建Groovy环境--Eclipse
Eclipse应该是我们最常用的IDE了,那么学习groovy,也希望有个groovy eclipse plugin了。 1、安装Eclipse插件(这里就不继续怎么安装了) For Eclipse 3.5: http://dist.codehaus.org/groovy/distributions/greclipse/snapshot/e3.5/ For Eclips...
2009-08-12 10:17:01
190
搭建Groovy环境--HelloWorld
直接进入主题吧! 1、下去下载http://groovy.codehaus.org/Download下载吧,最新的版本是1.6.4(前提java要设置好) 2、设置环境变量GROOVY_HOME=C:\groovy_1.6.4和PATH= %PATH%;%GROOVY_HOME%\bin 3、这个时候,就可以进入cmd看看了 4、这里我们使用groovyCons...
2009-08-10 21:45:01
132
原创 第一次从滨江下班
今天是第一次从第一次从滨江上下班。 下午6点下班后,赶快下楼,乘坐公司班车做到 194的桥南头站;刚好一道,就有一辆194过来了,上车一看,尽然是空车啊(我塞,我听同事说,194都是人挤人) 车子发动,冲向一桥,没20分钟就到了玉古路,尽然一点都不堵,真的怀疑是交通管制了 哈哈,到家7:10,超出期望啊;看接下来的了。。。...
2009-08-10 21:25:30
132
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅