- 浏览: 289373 次
- 性别:
- 来自: 天津
最新评论
-
狼子六:
已经开始用了
Java 枚举7常见种用法 -
相约的旋律:
方法一下面的"public static fianl ...
Java 枚举7常见种用法 -
kiddy2012:
...
[转载]程序员装B指南 -
fancy105:
写得很好,简单明了双全面!
Java 枚举7常见种用法 -
he_wen:
请问一下 G1算法是否在线上使用了?
Garbage First(G1) 日志分析工具
文章列表
在Java中提供Deflater和Inflater工具类来压缩/解压缩数据。 这两个工具类采用zlib算法,下面给出一个封装好的工具。
/**
* util for compress/decompress data
*
* @author lichengwu
* @version 1.0
* @created 2013-02-07 10:14 AM
*/
public final class CompressionUtil {
private static final ...
本文主要介绍的工具包括:
CountDownLatch
Semaphore
CyclicBarrier
Exchanger
CountDownLatch
CountDownLatch可以使一个或多个线程等待一组事件发生。在CountDownLatch内部维护一个计数器(被初始化为一个正整数),表示需要等待事件的数量。countDown()方法减少一个事件数量,await()将等待直到计数器为零的时候,才继续执行await后面的代码。如果计数器不为零,那么await将一直会阻塞等待直到计数器为零,或者阻赛线程中断/超时。
@Test
pub ...
G1介绍:http://softbeta.iteye.com/blog/1562185
用python写的一个分析G1日志工具,现在还不是很完善,有时间继续改进:
目前只支持以下配置输出的GC日志:
-XX:+UseG1GC
-XX:+PrintGCDateStamps
-XX:+PrintGCDetails
-Xloggc:/Users/lichengwu/tmp/mtct/mtct_g1.log
下面是代码:
# coding=utf-8
__author__ = 'lichengwu'
import datetime
import re
'' ...
写在evernote上了,分享一下:
https://www.evernote.com/shard/s110/sh/f1dbc310-9eb0-47c5-9554-02cab34d5105/4083488b78b7c945f30b4147f8f2a63c
安装:
#wget http://soft.vpser.net/test/http_load/http_load-12mar2006.tar.gz
#tar zxvf http_load-12mar2006.tar.gz
#cd http_load-12mar2006
#make && make install
用法:
usage: http_load [-checksum] [-throttle] [-proxy host:port] [-verbose] [-timeout secs] [-sip sip_file]
- ...
1.直接alter table
ALTER TABLE youTable ENGINE=InnoDB;
这种方式最简单,但是对于大数据的表会消耗很长时间,因为MySQL要执行旧表到新表的逐行复制。而且alter table操作不管哪种引擎,MySQL都会锁整个表。
2.利用dump和source
首先dump需要的表,然后修改dump文件,去掉DROP TABLE修改CREATE TABLE代码,执行source。
这种方式不能在线修改引擎,需要让数据库下线;或者在线修改后进行同步。
3.利用CREATE和SELECT
CREATE TABLE myTabl ...
以web项目启动为例,介绍一下Ioc容器的初始化。
下面这个图主要是在启动项目的时候,跟踪代码所得到的,不同的配置可能会有不同的路径,但是图中勾勒出了必须经历的大部分过程。
首先,在web.xml中配置ContextLoaderListener,当启动项目的会有下图:
Ioc初始化大概分三个步骤:
准备工作(黑线)
加载Resource(红线)
通过Resource加载Bean定义并注册到Ioc容器中(绿线)
已XmlWebApplicationContext为例,从getBean(String name)方法开始,读一下Spring是怎么通过名字获得bean的。
其他方式类似这个过程。
这个是XmlWebApplicationContext的类继承体系:
首先,getBean(String name)是在BeanFactory接口中定义的,而在AbstractApplicationContext中实现:
public Object getBean(String name) throws BeansException {
return getBeanFactory().getBea ...
以下是看代的码随笔,想到哪写到哪,没有组织逻辑,见谅见谅。
以FileSystemXmlApplicationContext为例,看看BeanFactory的体系结构。
类图(点击放大):
从上往下:
BeanFactory:BeanFactory:Spring的Bean容器最顶层的接口,定义了Ioc容器的基本规范。实现这个接口的Ioc容器都会持有一些BeanDefinition和一个唯一的字符串形式的名字。
HierarchicalBeanFactory:HierarchicalBeanFactory继承BeanFactory并扩展使其支持层级结构。getPar ...
Q:如何配置varnish缓存到硬盘?
A:http://softbeta.iteye.com/blog/1681716
Q:如果debug VCL?
A:http://stackoverflow.com/questions/12576248/how-to-debug-vcl-in-varnish
Q:怎样不重启varnish让新的vcl生效?
A:用varnishadm进入管理员页面:
vcl.load <configname> <filename> //加载一个新的vcl配置,configname:给配置起个名字,filename:配置的路径
...
本文是对文件内网缓存方案的实现。
varnish作为缓存服务,部署在内网192.168.0.220,varnish只能本机访问(nginx),内网用户不能直接访问varnish,需要通过nginx代理来访问。
nginx作为varnish的代理,如果将来有更大规模的缓存,可以做负载均衡。
HttpSecureLinkModule 对请求(超时,防盗)验证,每个跳转到内网的url(带token和超时时间)都要经过nginx的验证,而且这个url会在很短时间失效,这样防止了内网用户盗用链接。
下面是一个请求的流程图:
配置地址:https://gist ...
方法一:在启动的时候设置
varnishd -s file,/var/lib/varnish/varnish_storage.bin,50%
方法二:修改默认启动文件
vi /etc/default/varnish
DAEMON_OPTS="-a :9350 \
-T localhost:9351 \
-f /etc/varnish/default.vcl \
-S /etc/varnish/secret \
-s file ...
1.要求生成一组n位的数字,0-9...(n个)之间的稠密集合。2.用一个参数 表示稠密度,比如稠密度为0.8 则生成 10^n*0.8个数字。3.数字号码不能重复。4.生成结果放在int [] 里面,要乱序的哦,不是排序好的。5.注意内存不要溢出,尽量少用内存。
设计一个栈,O(1)复杂度实现入栈,出栈,栈中最大值,栈中最小值。
提示:可以用空间换时间。
具体实现代码:
https://github.com/lichengwu/utils/blob/master/src/mian/java/oliver/util/colloection/FastExtremeValueAccessStack.java
介绍:
Garbage First(G1)致力于在多CPU和大内存服务器上对垃圾收集提供软实时目标(soft real-time goal
)和高吞吐量(high throughput
)。从JDK 6u14开始就已经在Hotspot上试验,到现在的DK7依然没有走出实验室:
#java -version
java version "1.7.0 ...