nginx+tomcat的keepalive验证、bio/nio连接比较 最近刚好有时间找了台机器压测了一下,验证一下自己的一些想法。很多时候我们会发现实际情况并不如我们所了解,一方面是实际情况并非完美,会受到许多环境的影响,所以结果有时与我们所学理论会相悖,更有甚者,有时在网上了解的理论本身或过时,或并不正确,所以在有机会、抑或有条件的情况,可是实验一下自己所学,这也可加深理解。1. nginx+tomcat keepalive验证
Tomcat扩展——监控 (转过来,源地址:http://www.jmatrix.org/notes/1067.html)最近心血来潮,想是否可以通过增加一个tomcat的扩展,来持续收集tomcat服务器本身的性能信息,如线程池的各项数据,请求数等等,这样可以配合业务方面的监控,可以更方便的分析调整tomcat配置,以提供更好的服务。 这样也不需要每次通过连接jmx去观察数据,而且id
深入理解JVM内部结构(续) 如果你编译下面这个简单的类:package org.jvminternals;public class SimpleClass { public void sayHello() { System.out.println("Hello"); }}之后你可以通过运行如下的javap命令,获得字节码信息,如:javap -v -p -s
深入理解JVM内部结构 这篇文章主要是解释java虚拟机(JVM)的内部结构。下图显示了符合Java SE 7 版本的Java虚拟机规范的一个典型JVM中的关键内部组件。 图中显示的组件将会在下面两部分中进行逐一的解释。第一部分涉及JVM为每一个线程都会创建的组件;第二部分则是独立于线程进行创建的组件。1. Thread Thread是一个程序中的一个执行线程。JV
Linux定时任务的设置 为当前用户创建cron服务1. 键入 crontab -e 编辑crontab服务文件例如 文件内容如下:*/2 * * * * /bin/sh /home/admin/jiaoben/buy/deleteFile.sh保存文件并并退出*/2 * * * * /bin/sh /home/admin/jiaoben/buy/deleteFile.sh*/2 * * * * 通
Linux rsyslog详细介绍 转自:http://llei623.blog.163.com/blog/static/852075042010111482731766/ 作者:lleiWEB服务器多的时候检查日志是一件痛苦的事情,用 perl 脚本登录到服务器上grep一些错误信息两次之后就觉得是纯体力活,想办法偷懒。 准备弄一台统一的日志服务器,将登录认证,系统日志等全部发送到这台日志服务器上,可以做监控
Spring MVC源码分析(续)——视图解析过程 在“Spring MVC源码分析(续)——请求处理 ” 中已大概的描述了Spring MVC中如何为不同的请求找到其对应的处理器。经过这个过程,其获得了一个“视图对象”,也即ModelAndView。后续则是进行视图的渲染(输出)。 接上文,视图的解析在”processDispatchResult(processedRequest, response, mappedHandl
Java网络编程——远程通讯可选技术及原理 (此文系转载,具体出处已找不到~~未能标注) 在分布式服务框架中,一个最基础的问题就是远程服务是怎么通讯的,在Java领域中有很多可实现远程通讯的技术,例如:RMI、MINA、ESB、Burlap、Hessian、SOAP、EJB和JMS等,这些名词之间到底是些什么关系呢,它们背后到底是基于什么原理实现的呢,了解这些是实现分布式服务框架的基础知识,而如果在性能上有高的要求的话,那深入了解
放假第一天——给博客挂了个广告 31号从广州回来,本来订的是下午三点多的飞机,结果搞到了差不多10点才飞,坑爹的南航!!! 今早起来没啥活动,本来打算学点啥。 在网上逛了一圈,突发奇想,我可不可以也学人家在博客上挂个广告赚钱呐! 说干就干!开始在网上搜索各种资料,神马“广告联盟”、“淘宝客”、“啥啥推广”全都出来了,⊙﹏⊙b汗。 好吧!自己都不符合条件。 真打击,总不能半途而废吧! 难得花了
Java 性能优化之 String 篇 “Java中那些你不知道的事”系列转载自:http://www.ibm.com/developerworks/cn/java/j-lo-optmizestring/index.html,IBM developerWorksString在JVM的存储结构一般而言,Java 对象在虚拟机的结构如下:对象头(object header):8 个字节 Java 原始类型数据:如
Java那点事——类加载器结构 在Java语言中,类型的加载和连接过程都是在程序运行期间完成的,尽管这样会带来一定的开销,但是却能为Java应用程序提供高度的灵活性,Java的动态扩展属性正是依赖运行期动态加载和动态连接这个特点实现的。 Java中类的整个生命周期为:加载->验证->准备->解析->初始化->使用->卸载。类加载器便是作用于"加载"阶段,它完成的功能为:通过一个类的全限定名来获取描述此类的二进制
百度2013笔试题——软件研发类 今年百度校园招聘的笔试题类型有了一些小小的变化,也就是增加了简答题,其它的还是和原来一样,算法题加系统设计题。 (回忆版)一.简答题1. 列出几种常见的哈希函数,并简述哈希函数的作用。2. 描述OSI七层模型,说明HTTP协议运行于那一层。3. 有一段C语言程序代码,简述代码能成功运行的条件及程序的运行过程。二、算法与程序设计题1. 大概是,现有一车的苹果,
java那点事——StringBuffer与StringBuilder原理与区别 今天去多玩YY笔试Java开发类职位,这个还是要看看能不能在广州找个好的工作!!Java类的笔试题中有个简单题是“StringBuffer与StringBuilder的区别,它们的应用场景是什么?”其实只要找下Google大神就有答案了:StringBuffer 与 StringBuilder 中的方法和功能完全是等价的,只是StringBuffer 中的方法大都采用了 s
Java指令集 有时候为了能理解JVM对程序所做的优化等,需要查看程序的字节码,因此知道了解一些常见的指令集很重要!指令码助记符说明0x00nop什么都不做0x01aconst_null将null推送至栈顶0x0
Spring AOP 实现原理与 CGLIB 应用 AOP(Aspect Orient Programming),作为面向对象编程的一种补充,广泛应用于处理一些具有横切性质的系统级服务,如事务管理、安全检查、缓存、对象池管理等。AOP 实现的关键就在于 AOP 框架自动创建的 AOP 代理,AOP 代理则可分为静态代理和动态代理两大类,其中静态代理是指使用 AOP 框架提供的命令进行编译,从而在编译阶段就可生成 AOP 代理类,因此也称为编译时增强
Spring MVC源码分析(续)——请求处理 在之前的“Spring MVC实现分析——初始化”中分析了spring mvc的初始化过程,接下来将分析其请求处理过程。 在找请求处理的入口时,我们需要先知道Servlet的编程规范,对应不同的请求(如POST、GET等)的实现方法在FrameworkServlet中,分别是doPost、doGet等,看这一系列方法的具体实现可以知道,请求的处理跳转到了processReques
堆和栈的区别——堆栈详细介绍 堆和栈的区别 (转贴, 原作者不详,此文转自:http://www.cppblog.com/oosky/archive/2006/01/21/2958.html)堆和栈的区别一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈
现在的状态 现在的我身处研究生的最后一年,结束了两个月的实习后,也投身到了找工作的洪流,尽管此时的自己已经淡定了许多,也许是多少有点明白了自己想要的东西,但也只是有点,,一直以来我就有一个困惑,我的职业方向该选择c++,还是java,记得本科时我的想法是想c作为基础来理解一些底层机制,java作为技术方向。但后来"江湖中传说"在一些"一线"的大公司,java并没有受到太大的重视。 此处省
Java性能监控系列——java.lang.instrument Instrumentation是Java5提供的新特性。使用Instrumentation,开发者可以构建一个代理,用来监测运行在JVM上的程序。监测一般是通过在执行某个类文件之前,对该类文件的字节码进行适当的修改进行的。 java.lang.instrument中需要关注的是ClassFileTransformer和Instrumentation接口。每个代理类必须实现 Clas