最新 | 最热门 | 最高评价

+0  【算法与数据结构】金刚坐飞机问题

jarfield 发于 2013年02月15日 14:29 | 点击: 2075 | 展开摘要
文章背景

编程之美 4.1 “金刚坐飞机问题”的问题2,难度比问题1大很多。

编程之美的官方解法,包括原理分析、概率公式、推导过程等,感觉阐述不够详细,没有完全读懂。

搜索一下 “金刚坐飞机”,参考了几个很不错的分析,得到一个自己觉得比较完整的答案。

 

仔细审题

 

首先,仔细审题,有两个细节需要搞清楚:

 

飞机上总共有多少座位?N?N+1?还是更多?从问题1的官方解答看,飞机上座位总数为N。

“...乘客们正准备按机票编号(1,2,3...N)依次排

查看全文: http://www.udpwork.com/item/9248.html

+0  Linux随机数发生器导致Apache进程全部Block的问题追查

jarfield 发于 2012年12月02日 21:03 | 点击: 2345 | 展开摘要
今天上午,运营同事报告一个严重故障,现象是网站页面速度非常慢,基本不可用。工程师开始追查问题。

首先介绍一下系统架构:前端 Apache,中间PHP,后端MySQL,经典的LAMP架构。

 

猜测数据库出现性能问题

 

第一反应,怀疑数据库数据量太大。我们一直定期清理数据库,保证单表数据量在一定范围内。而这段时间一直没有清理,数据量可能过大。立刻执行delete语句,单表减少100W条记录。但是,问题依旧。

后来,DBA同学发现慢查询,存在filesort。果断增

查看全文: http://www.udpwork.com/item/8774.html

+0  如何控制War包访问Tomcat的内部实现类

jarfield 发于 2010年12月14日 21:56 | 点击: 3093 | 展开摘要
Tomcat默认部署了Manager应用作为Web控制台,提供对Tomcat的管理功能。

具体功能包括但不限于:

列出已部署的WebApp

部署、卸载、启动、停止指定的WebApp

展现线程池的详情,例如活动线程数、最大线程数、最小线程数等

展现请求处理的统计信息,例如平均请求处理时间、请求次数、出错次数等

...

从这些功能看,Manager能够获知Tomcat内部信息,并对Tomcat内部数据结构进行操控。这些特权功能,对Tomcat来说还是很危险的。

 

查看全文: http://www.udpwork.com/item/3776.html

+0  [收藏]Facebook网站的Ajax化、缓存和流水线

jarfield 发于 2010年12月14日 10:27 | 点击: 3271 | 展开摘要
Velocity China 2010 上,Changhao Jiang 博士 对Facebook前端优化技术做了精彩的简介,内容很有信息量。这里记录下演讲视频和PPT,以飨读者。

 

简介

    在这个报告中,我将介绍在Facebook网站前端性能优化中采用的最主要的一些技术。这些技术不光降低了服务器的开销,而且同时极大地提高了Facebook网站的用户体验性能。

我将首先介绍Quickling技术。通过Quickling,Facebook将所有的用户点击访问自动

查看全文: http://www.udpwork.com/item/3755.html

+0  异常与构造函数、析构函数

jarfield 发于 2010年11月15日 14:06 | 点击: 2756 | 展开摘要
写Java代码的时候,遇到错误总是喜欢抛出异常,简单实用。最近开始写C++代码,发现异常没那么简单,使用须谨慎。

 

翻阅了《Effective C++》 《More Effective C++》《Inside The C++ Object Model》的相关章节,大概弄明白了一些东东,总结在本文。

 

本文不是总结普适的C++异常机制,还没有这个内力哈! 主要是结合构造函数和析构函数,来总结异常对他俩的影响。构造函数和析构函数本来就很折磨脑筋,再叠加上异常机制,确实

查看全文: http://www.udpwork.com/item/3435.html

+0  前置++和后置++的区别

jarfield 发于 2010年09月03日 13:58 | 点击: 2771 | 展开摘要
这篇文章不是讨论(i++)+(i++)+(i++)的计算结果,更不是讨论(i++)+(++i)+(i++)。

 

在C++教程中,我们都会学到:i++和++i是两个表达式,他们都会对i进行自增,但是呢,作为表达式,i++的值是自增之前的值,++i的值是自增之后的值。

 

本文在此基础上,进行一些稍微深入的讨论。

 

从操作符重载的角度,看i++和++i的区别,是一个比较好的切入点。

 

操作符重载

假设有一个类Age,描述年龄。该类重载了前置++和后置++两

查看全文: http://www.udpwork.com/item/2578.html

+0  为什么需要auto_ptr_ref

jarfield 发于 2010年08月24日 15:46 | 点击: 2087 | 展开摘要
这几天开始拜读侯捷先生和孟岩先生的译作《C++标准程序库:自修教程与参考手册》 。两位先生确实译功上乘,读得很顺。但是读到P55页关于auto_ptr_ref的讨论,却百思不得其解:为什么需要引入auto_ptr_ref这个辅助类呢?

 

从书中描述来看,仿佛与拷贝构造函数 、右值 、类型转换 有关。于是,结合auto_ptr的源代码,google之、baidu之,找了一推资料,终于初步 搞清该问题。

 

auto_ptr的拥有权

C++常见的智能指针有

查看全文: http://www.udpwork.com/item/2452.html

+0  [How Tomcat Works]第4章 Tomcat默认连接器

jarfield 发于 2010年06月29日 20:17 | 点击: 2189 | 展开摘要
译者 jarfield


客 http://jarfield.iteye.com




HTTP
1.1新特性


久化连接(Persistent Connections)

Chunked
编码(Chunked Encoding)

100(Continue)
状态码的使用

Connector
接口

HttpConnector



建服务器套接字


护HttpProcessor实例


理HTTP请求

HttpProcessor





查看全文: http://www.udpwork.com/item/1931.html

+0  [How Tomcat Works]第3章 连接器(二)

jarfield 发于 2010年04月10日 22:50 | 点击: 2102 | 展开摘要
译者 jarfield
 

博客 http://jarfield.iteye.com




StringManager


应用程序


动应用


接器


建HttpRequest对象


取套接字的输入流


析请求行


析Headers


析Cookies


取参数


建HttpResponse对象


态资源处理器和Servlet处理器


行应用程序




前面的部分见:[How Tomcat Works]第3章 连接

查看全文: http://www.udpwork.com/item/656.html

+0  [How Tomcat Works]第3章 连接器(一)

jarfield 发于 2010年04月10日 21:55 | 点击: 2243 | 展开摘要
译者 jarfield
 

博客 http://jarfield.iteye.com




StringManager


应用程序


动应用


接器


建HttpRequest对象


取套接字的输入流


析请求行


析Headers


析Cookies


取参数


建HttpResponse对象


态资源处理器和Servlet处理器


行应用程序







    就像《简介》中介绍的,Catalina
中有

查看全文: http://www.udpwork.com/item/655.html

+0  Tomcat 5.5.26源代码分析——启动过程(二)

jarfield 发于 2010年03月25日 14:38 | 点击: 16865 | 展开摘要
init方法

Catalina_Home和Catalina_Base

初始化类加载器体系

Tomcat的类加载器体系

initClassLoaders的代码

一个疑问

Catalina对象

load方法

Catalina类的命令行参数

加载过程

start方法

await状态

setAwait方法

await方法

上一篇文章
主要分析了Bootstrap main
方法的总体流程,并讨论
了JDK兼容性和启动参数。本篇开始深入细节。

Tomcat

查看全文: http://www.udpwork.com/item/550.html

+0  Tomcat 5.5.26源代码分析——启动过程(一)

jarfield 发于 2010年03月25日 14:30 | 点击: 3269 | 展开摘要
main方法

第一阶段

第二阶段

第三阶段

启动参数的区别

一个Bug

configtest启动参数

一般,我们直接运行startup.sh

启动Tomcat
。最终执行的命令是:

java [options] org.apache.catalina.startup.Bootstrap start

options是JVM启动参数,这里忽略。

 

main方法

可见,Tomcat
的启动类是org.apache.catalina.startup.B

查看全文: http://www.udpwork.com/item/551.html
|<<<12>>>| 一共2页, 18条记录