- 博客(80)
- 资源 (3)
- 收藏
- 关注
原创 【算法与数据结构】金刚坐飞机问题
文章背景编程之美 4.1 “金刚坐飞机问题”的问题2,难度比问题1大很多。编程之美的官方解法,包括原理分析、概率公式、推导过程等,感觉阐述不够详细,没有完全读懂。搜索一下 “金刚坐飞机”,参考了几个很不错的分析,得到一个自己觉得比较完整的答案。仔细审题首先,仔细审题,有两个细节需要搞清楚:飞机上总共有多少座位?N?N+1?还是更多?从问题1的官方
2013-02-15 14:13:24
2065
原创 【问题追查】Linux随机数发生器导致Apache进程全部被block
故障发生今天上午,运营同事报告一个严重故障,现象是网站页面速度非常慢,基本不可用。工程师开始追查问题。系统架构:前端 Apache,中间PHP,后端MySQL,经典的LAMP架构。数据库性能问题吗?第一反应,怀疑数据库数据量太大。我们一直定期清理数据库,保证单表数据量在一定范围内。而这段时间一直没有清理,数据量可能过大。立刻执
2013-02-11 14:38:54
2742
1
Linux随机数发生器导致Apache进程全部Block的问题追查
P,后端MySQL,经典的LAMP架构。 猜测数据库出现性能问题 第一反应,怀疑数据库数据量太大。我们一直定期清理数据库,保证单表数据量在一定范围内。而这段时间一直没有清理,数据量可能过大。立刻执行delete语句,单表减少100W条记录。但是,问题依旧。后来,DBA同学发现慢查询,存在filesort。果断增加索引,慢查询消失。但是,问题依旧。无奈之下,怀疑机房网络问题。但是其他产品线都没有问题,网络组也没有故障通报。因此,否决这种可能。 线下环境复现故障时间已经到了下
2012-12-02 21:03:08
158
原创 如何控制War包访问Tomcat的内部实现类
展现线程池的详情,例如活动线程数、最大线程数、最小线程数等展现请求处理的统计信息,例如平均请求处理时间、请求次数、出错次数等...从这些功能看,Manager能够获知Tomcat内部信息,并对Tomcat内部数据结构进行操控。这些特权功能,对Tomcat来说还是很危险的。 Manager应用的Servlet代码位于catalina.jar中,属于Tomcat内部实现类的一部分,我们先看看其实现机制。(本文的代码基于Tomcat 7.0.5版本) Manager的实现机制
2010-12-14 21:56:09
190
原创 [收藏]Facebook网站的Ajax化、缓存和流水线
这个报告中,我将介绍在Facebook网站前端性能优化中采用的最主要的一些技术。这些技术不光降低了服务器的开销,而且同时极大地提高了Facebook网站的用户体验性能。我将首先介绍Quickling技术。通过Quickling,Facebook将所有的用户点击访问自动地转变成AJAX调用,避免了大量的服务器端重复计算和客户端的重复渲染。然后我将介绍基于Quickling的PageCache技术,通过JavaScript自动缓存用户访问过的页面,极大的加速Facebook主页的性能并降低服务器开
2010-12-14 10:27:55
123
异常与构造函数、析构函数
ective C++》《Inside The C++ Object Model》的相关章节,大概弄明白了一些东东,总结在本文。 本文不是总结普适的C++异常机制,还没有这个内力哈! 主要是结合构造函数和析构函数,来总结异常对他俩的影响。构造函数和析构函数本来就很折磨脑筋,再叠加上异常机制,确实比较复杂。 异常与析构函数本节内容较少,因此先说。构造函数放到下一节讨论。 绝对不要将异常抛出析构函数这一条在《Effective C++》 《More Effective C++》中均
2010-11-15 14:06:11
101
前置++和后置++的区别
但是呢,作为表达式,i++的值是自增之前的值,++i的值是自增之后的值。 本文在此基础上,进行一些稍微深入的讨论。 从操作符重载的角度,看i++和++i的区别,是一个比较好的切入点。 操作符重载假设有一个类Age,描述年龄。该类重载了前置++和后置++两个操作符,以实现对年龄的自增。class Age{public: Age& operator++() //前置++ { ++i; return *this; } co
2010-09-03 13:58:23
175
为什么需要auto_ptr_ref
f的讨论,却百思不得其解:为什么需要引入auto_ptr_ref这个辅助类呢? 从书中描述来看,仿佛与拷贝构造函数 、右值 、类型转换 有关。于是,结合auto_ptr的源代码,google之、baidu之,找了一推资料,终于初步 搞清该问题。 auto_ptr的拥有权C++常见的智能指针有std::auto_ptr、boost::shared_ptr、boost::scoped_ptr、boost::shared_array、boost::scoped_array等。aut
2010-08-24 15:46:37
77
原创 [How Tomcat Works]第4章 Tomcat默认连接器
第3 章的连接器工作得很好,而且本可以设计地更好。但是,我们只是将它设计成教学工具,来介绍Tomcat 4 的默认连接器。理解第3 章的连接器,是理解Tomcat 4 默认连接器的关键。第4 章将会通过解剖(dissect )Tomcat 4 默认连接器的代码,来讨论如何构建真正的Tomcat 连接器。
2010-06-29 23:10:00
1765
原创 [How Tomcat Works]第4章 Tomcat默认连接器
ontinue)状态码的使用Connector接口HttpConnector类创建服务器套接字维护HttpProcessor实例处理HTTP请求HttpProcessor类请求对象响应对象处理请求解析连接解析请求解析头部简单容器应用运行应用总结
2010-06-29 20:17:20
122
翻译 [How Tomcat Works]第3章 连接器
见我的JavaEye博客:http://jarfield.javaeye.com/blog/640940
2010-04-10 23:19:00
892
[How Tomcat Works]第3章 连接器(一)
字的输入流解析请求行解析Headers解析Cookies获取参数创建HttpResponse对象静态资源处理器和Servlet处理器运行应用程序总结概述 就像《简介》中介绍的,Catalina中有两个主要模块:Connector(连接器)和Container(容器)。本章,你将编写一个连接器来增强第2章的应用,该连接器
2010-04-10 21:55:18
101
原创 Tomcat 5.5.26源代码分析——启动过程(二)
init方法<ol class="writely-toc-decimal writely-toc-subheading" style="margin-left: 0pt;">Catalina_Home和Catalina_Base初始化类加载器体系<ol class="writely-toc-decimal writely-toc-subheading"
2010-03-25 15:22:00
1754
原创 Tomcat 5.5.26源代码分析——启动过程(一)
main方法<ol class="writely-toc-subheading writely-toc-decimal" style="margin-left: 0pt;">第一阶段第二阶段第三阶段启动参数的区别一个Bug一般,我们直接运行startup.sh
2010-03-25 15:20:00
136
1
Tomcat 5.5.26源代码分析——启动过程(二)
法Catalina类的命令行参数加载过程start方法await状态setAwait方法await方法上一篇文章主要分析了Bootstrap main方法的总体流程,并讨论了JDK兼容性和启动参数。本篇开始深入细节。Tomcat的运行时视图,简单地看,其实就是一些相互关联的组件。这些组件相互协作,完成一定的任务(比如部署Web应用、处理到HTTP请求等)。Tomcat启动过程中所做
2010-03-25 14:38:17
90
[How Tomcat Works]第2章 一个简单的Servlet容器
sourceProcessor类ServletProcessor1类运行应用第二个应用运行应用总结概述 本章通过两个应用程序,介绍了如何开发你自己的Servlet容器。为了让你容易Servlet容器的工作原理,第一个应用程序被设计地尽可能简单,然后演化为稍微复杂一些的第二个Servlet容器。 提示:每章的Servlet容器都是在前一章的基础上逐步演化的,到第17章就变成了
2010-03-14 00:43:50
101
翻译 [How Tomcat Works]第2章 一个简单的Servlet容器
译者 jarfield博客 http://jarfield.javaeye.com概述javax.servlet.Servlet接口第一个应用<ol class="writely-toc-decimal writely-toc-subheading" style="margin-left: 0pt;"
2010-03-14 00:33:00
1381
1
翻译 [How Tomcat Works]第1章 一个简单的Web服务器
译者 jarfield 博客 http://blog.csdn.net/jarfield超文本传输协议(HTTP)HTTP请求HTTP响应Socket类ServerSocket类应用程序<ol class="writely-toc-decimal writely-toc-subheading" style="margin-le
2010-03-02 23:09:00
1440
原创 Tomcat 5.5.26的网络构建指南
1. 安装JDK不能安装JDK 1.6.x,否则Tomcat 5.5.26依赖的commons-dbcp-1.2.2-src无法编译,原因是:JavaSE 6.0升级了java.sql包中的某些接口,为它们增加了一些方法。commons-dbcp-1.2.2-src中包含了上述接口的实现类,这些类当然没有实现新加的方法。
2010-02-27 00:44:00
176
翻译 [How Tomcat Works]第0章 介绍
译者 jarfield 博客 http://jarfield.javaeye.com介绍概述 欢迎来到Tomcat的内部世界。这本书剖析了Tomcat 4.1.12和5.0.18,并讲解了Tomcat Servlet容器(代号为Catalina)的工作内幕。Catalina是免费的、开源的,也是最流行的Servlet容器。Tomcat是一个
2010-02-24 19:09:00
113
[How Tomcat Works]第0章 介绍
每章的应用程序准备必要的软件概述 欢迎来到Tomcat的内部世界。这本书剖析了Tomcat 4.1.12和5.0.18,并讲解了Tomcat Servlet容器(代号为Catalina)的工作内幕。Catalina是免费的、开源的,也是最流行的Servlet容器。Tomcat是一个复杂的系统,它包括了众多的组件。在了解Tomcat如何工作之前,我们应该知道从哪儿入手。这本书首先绘制了一张大蓝图,然后构
2010-02-24 19:09:00
104
原创 略谈HttpClient和Tomcat的中文编码问题
这几天都在纠结Java Web开发中的中文编码问题。其实,很多Java Web开发者都被中文编码“折磨”过,网络上有大量的讨论。以前我也读过这方面的博文,读完后感觉似乎懂了,好像知道了编码问题的原因和解决方法。但是, 一旦投入到实际开发中,发现自己其实没懂,囧! 连续纠结了几天,总算对前因后果有个清晰地认识,故“略谈”一下。之所以略谈,是因为我并非(也没有能力)完整地阐述Java
2010-02-06 17:41:00
8086
略谈HttpClient和Tomcat的中文编码问题
读完后感觉似乎懂了,好像知道了编码问题的原因和解决方法。但是, 一旦投入到实际开发中,发现自己其实没懂,囧! 连续纠结了几天,总算对前因后果有个清晰地认识,故“略谈”一下。之所以略谈,是因为我并非(也没有能力)完整地阐述Java Web开发的中文编码问题,而是就事论事地总结这几天遇到的问题和收获。问题 使用HttpClient 3.x发送GET或POST请求,请求参数中包含中文。服务器是Tocmat 5.5,通过断点调试,发现Servlet拿到的中文参数是乱码。显然,HttpClie
2010-02-06 17:41:00
85
原创 优化变成了忧患:String.split引发的“内存泄露”
一直赞叹Sun对待技术的严谨和优雅(bless Sun)。Sun JDK中Java库的源代码,连注释都清清楚楚、规规范范,javadoc注解的使用也一丝不苟,读起来很熟舒服。因此,在日常工作和学习中,经常读读Java库的源代码,不亦乐乎?如果遇到诡异问题,源代码的帮助就更大了。闲话少说,回归正题。这几天,一直在为Java的“内存泄露”问题纠结。Java应用程序占用的内存在不断的、有规律
2010-01-30 10:56:00
3350
10
原创 Eclipse远程调试Tomcat
最近,一直在研究Tomcat的工作内幕,主要的方法就是参考《How Tomcat Works》这本书和Tomcat 5.5.26的源代码。 Tomcat的代码结构还是比较清晰的,注释也比较全。但是代码毕竟是静态的,难以彻底弄清类与类之间的协作关系,以及运行时对象的交互关系。 如果能对Tomcat的启动、处理请求和停止的过程进行断点调试,看清Tomcat的每一步行踪,那么就能
2010-01-24 14:58:00
46610
4
原创 欲知Tomcat, 推荐一本书。
最近由于公司项目的需求,我终有机会再次亲近Java,同时也接触到了Tomcat。 以前在大学期间也简单接触过Servlet和Tomcat,后来深入了解了EJB和JBoss。当时对JBoss的部分源代码进行了阅读,深刻领悟到Java在企业级中间件中的强大战斗力;自定义类加载器、反射机制、Annotation、JMX等高级语法和特性的应用,让我惊叹不已。 公司的Java项目已经结束了,
2010-01-07 22:00:00
7593
3
欲知Tomcat, 推荐一本书。
时对JBoss的部分源代码进行了阅读,深刻领悟到Java在企业级中间件中的强大战斗力;自定义类加载器、反射机制、Annotation、JMX等高级语法和特性的应用,让我惊叹不已。公司的Java项目已经结束了,但是我对Java重新燃起的激情却久久不能削弱。在公司做产品,和学校做实验不同,对应用的稳定性和性能有着极高的要求,这就要求我对Servlet技术和Tomcat本身有着较深的理解。于是,我就产生了深入Tomcat内幕的想法,打算结合Servlet规范和Tomcat源代码,一探Tomcat的运行机理
2010-01-07 22:00:00
99
翻译 Memcached FAQ(4) 选项、Item过期和命名空间方面的问题
最后更新时间 2009-04-10 更新人 dormando@rydia.net这里收集了经常被问到的关于memcached的问题memcached的选项Item的过期 过期的item什么时候才会从cached中删除命名空间 使用key的"前缀"来模拟命名空间根据命名空间来删除memcac
2009-07-13 20:34:00
6523
1
Memcached FAQ(4) 选项、Item过期和命名空间方面的问题
ched中删除命名空间 使用key的"前缀"来模拟命名空间根据命名空间来删除memcached的选项如果您想要学习memcached的选项,在命令行下运行"memcached -h"即可。这个命令将会显示一个简单的选项说明。您可以随便试试这些选项,看看他们的功能。另外,memcached发行版中还带有一个memcached(1)的man帮助页。Item的过期
2009-07-13 20:34:00
94
Memcached FAQ(4) 选项、Item过期和命名空间方面的问题
ched中删除命名空间 使用key的"前缀"来模拟命名空间根据命名空间来删除memcached的选项如果您想要学习memcached的选项,在命令行下运行"memcached -h"即可。这个命令将会显示一个简单的选项说明。您可以随便试试这些选项,看看他们的功能。另外,memcached发行版中还带有一个memcached(1)的man帮助页。Item的过期
2009-07-13 20:34:00
60
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人