12 2011 档案

分析一下12306网站
摘要:他们用的jbossweb是2.1.1GA版本的,这个版本发行于2008年底,迄今已经三年了。有兴趣的同学不妨对照一下下面这个bug列表,看看有没有什么好玩的。http://docs.jboss.org/jbossweb/2.1.x/changelog.html另外,12306是weblogic和j... 阅读全文

posted @ 2011-12-30 00:52 如果蜗牛有爱情 阅读(112) 评论(0) 推荐(0) 编辑

[C++] 关于gdb断点的真相
摘要:gdb的断点是基于信号(signal)实现的在某个地址增加一个断点,实际上就是修改那个地址的代码,把原来的代码替换成INT 3指令,同时让gdb捕获这个signal并做相应的处理:包括执行被替换掉的指令,并跳转回来。因此,只要断点不被走到,那么断点就不会影响程序的运行效率;因为程序的其他地方都没改... 阅读全文

posted @ 2011-12-29 11:22 如果蜗牛有爱情 阅读(373) 评论(0) 推荐(0) 编辑

[C++] gdb高级调试方法
摘要:1,启动gdb的时候自动执行脚本gdb -x your_script注意:your_script里面只能有gdb命令。不过我们都知道gdb命令里面有个shell指令,所以实际上这里可以做任何事。2,调试运行中的进程在gdb里面有个attach指令,可以调试运行中的进程。结合上面的-x参数,实际上我... 阅读全文

posted @ 2011-12-20 01:41 如果蜗牛有爱情 阅读(136) 评论(0) 推荐(0) 编辑

细细审视的你代码:异步消息处理
摘要:在工作中经常会碰到需要进行异步消息处理的业务场景,根据消息性质的不同有完全不同的处理方式。 1、消息不独立 不独立的消息通常是有顺序依赖关系,这时消息处理机制将退化为线性队列处理模式,只能由一个消费者去单线程处理消息。 2、消息完全独立 完全独立的消息,可以由多个消费者(线程)并发同时处... 阅读全文

posted @ 2011-12-18 21:38 如果蜗牛有爱情 阅读(143) 评论(0) 推荐(0) 编辑

[C++] tcmalloc的尴尬
摘要:专用的‘对象池’可以比通用的‘内存池’性能高两个数量级。通过宏定义(DECL_MEM_POOL, IMPL_MEM_POOL)可以很快速的为class增加pool能力,还可以在单线程的环境下去掉锁。真正要性能的程序不会整天去分配内存。性能要求没那么高的程序glibc就够了。所以,tcmalloc是... 阅读全文

posted @ 2011-12-16 10:36 如果蜗牛有爱情 阅读(177) 评论(0) 推荐(0) 编辑

[C++] 内存保护
摘要:C++有内存保护吗,真的有:http://en.wikipedia.org/wiki/Buffer_overflow_protection这个只能保护stack上的buffer,不过已经很有作用了。写越界写坏callstack的概率低了很多。提醒:如果callstack没有效信息,更有可能是环境版... 阅读全文

posted @ 2011-12-13 14:34 如果蜗牛有爱情 阅读(154) 评论(0) 推荐(0) 编辑

[C++] 加速make的编译
摘要:make一个超大项目的时候,你有没有过痛不欲生的感觉,make有时候可以长达半个小时。现在是多核的世界,你可以试试make -j 10,有时候可以把编译速度提高五倍。也就是说原本要半个小时的编译,也许五六分钟就编译好了。注意:用make -j 10可能会遇到少数项目出问题。比如在编译openssl... 阅读全文

posted @ 2011-12-13 13:16 如果蜗牛有爱情 阅读(191) 评论(0) 推荐(0) 编辑

redis再观察
摘要:分析redis的几个问题:1,redis的“脏快照”redis的持久化方式是后台线程慢慢写,则在写的过程中,如果外界进行了set,则redis写下的数据并不是一个干净的快照,而是一份数据可能不匹配的“脏快照”。举例来说:在SNS里面,AB各有10分,然后A扣了5分给B,,则A应该5分B应该15分,... 阅读全文

posted @ 2011-12-09 17:37 如果蜗牛有爱情 阅读(126) 评论(0) 推荐(0) 编辑

细细审视的你代码:一点编程理解
摘要:通常有经验的程序员写出来的代码一开始可读性都是不错的,但随着需求变更,维护人员变化,慢慢架构开始腐化,代码开始变的混乱起来。 还有就是有时仅仅为了完成功能,而完全忽略了代码的可读性(非功能性需求)。 编程时如何保持对代码可读性的持续关注呢,举个小小的例子吧。 有一个简单的需求,写一个方法生成一个... 阅读全文

posted @ 2011-12-07 16:21 如果蜗牛有爱情 阅读(151) 评论(0) 推荐(0) 编辑

[Linux] 通过shell给unix socket发送数据
摘要:例子:echo "show stat" | nc -U ../var/my.sock说明:nc不是脑残的缩写,是net cat的缩写。-U指明是unix socket适用场合:1,java没法和Unix socket通讯,但是可以调用shell脚本。这样就曲线救国了。2,有很多模块只提供了Unix... 阅读全文

posted @ 2011-12-07 12:56 如果蜗牛有爱情 阅读(1042) 评论(0) 推荐(0) 编辑

子查询里面有树形查询,子查询选择使用in/exists需要特别留意
摘要:今天下午盖尔又发来一条坑爹的SQL,哎,最近被盖尔给咕噜惨了,老是发一些鸟SQL让我调,最近都帮忙调了N多个SQL了,还好盖尔良心发现了,说这个月末给我重200元的话费。认识盖尔的人都知道,盖尔发的SQL那绝对是坑爹的,说它是OLTP的SQL不像,因为OLTP的SQL没那么复杂,说它是OLAP的... 阅读全文

posted @ 2011-12-06 22:58 如果蜗牛有爱情 阅读(263) 评论(0) 推荐(0) 编辑

利用Merge代替复杂的UPDATE语句
摘要:有朋友问我一个update语句,下面两种写法哪个性能更高,一个是没HINT的,一个是有HINT的 UPDATE CS_PERFORMANCE_CURRENT C SET C.PERFORMANCE_SCORE = '0.00', C.ASSESS_DESC = '劳动纪律考核' WHER... 阅读全文

posted @ 2011-12-05 16:04 如果蜗牛有爱情 阅读(209) 评论(0) 推荐(0) 编辑

导航