- 博客(274)
- 收藏
- 关注
原创 理解HTTP幂等性
幂等(idempotence)是来自于高等代数中的概念。定义如下(加入了自己理解):单目运算, x为某集合内的任意数, f为运算子如果满足f(x)=f(f(x)), 那么我们称f运算为具有幂等性(idempotent)比如在实数集中,绝对值运算就是一个例子: abs(a)=abs(abs(a))双目运算,x为某集合内的任意数, f为运算子如果满足f(x,x)=x, f运算的前提是两...
2012-08-15 00:00:22
283
原创 SVN删除文件恢复
一、本地删除 本地删除,指的是在客户端delete了一个文件,但还没有commit,使用revert来撤销删除。二、服务器删除 1.通过本地删除后提交服务器 a)Update上一个版本,但只适用于修改较少的情况; b) 通过showLog,找到被删的项,选中,点击右键->Revert changes from thisrevision...
2012-06-29 17:27:42
308
原创 Nagle's algorithm
Nagle's algorithmFrom Wikipedia, the free encyclopedia Jump to: navigation, search Nagle's algorithm, named after John Nagle, is a means of improving the efficiency of TC...
2012-06-17 20:45:20
352
原创 RAID10与RAID5比较[转]
一直以来,看到关于raid5与raid10的性能之争还是非常多的,甚至很多人那拿出了测试数据,但是,到底谁是谁非。这里,我就这两种raid的内部运行原理来分析一下,我们在什么情况下应当适合选哪一种raid方式。 为了方便对比,我这里拿同样多驱动器的磁盘来做对比,raid5选择3D+1P的raid方案,raid10选择2D+2D的Raid方案,分别如图:1、安全性方面的比较...
2012-05-13 21:30:23
327
原创 Linux的tmpfs文件系统
前几天发现服务器的内存(ram)和swap使用率非常低,于是就想这么多的资源不用岂不浪费了?google了一下,认识了tmpfs,总的来说tmpfs是一种虚拟内存文件系统正如这个定义它最大的特点就是它的存储空间在VM里面,这里提一下VM(virtual memory),VM是由linux内核里面的vm子系统管理的东东,现在大多数操作系统都采用了虚拟内存管理机制?更详细的说明请参考&...
2012-05-02 17:46:16
523
原创 Android 数字签名学习笔记
在Android系统中,所有安装到系统的应用程序都必有一个数字证书,此数字证书用于标识应用程序的作者和在应用程序之间建立信任关系,如果一个permission的protectionLevel为signature,那么就只有那些跟该permission所在的程序拥有同一个数字证书的应用程序才能取得该权限。Android使用Java的数字证书相关的机制来给apk加盖数字证书,要理解an...
2012-04-25 11:03:52
129
原创 JVM 深入笔记
JVM 深入笔记(1)内存区域是如何划分的?一个超短的前言 JVM 是一个从事 Java 开发的软件工程师的修炼之路上必然要翻阅的一座山。当你了解了 Java 的基本语言特性,当你熟悉了 Java SDK 中的常用 API,当你写过一些或大或小的程序后,你就会有去了解 JVM 的需求出现。如果你现在没有这种感觉,那么可能此时去了...
2012-04-12 20:36:10
144
原创 IOPS
IOPS (Input/Output Operations Per Second),即每秒进行读写(I/O)操作的次数,多用于数据库等场合,衡量随机访问的性能。存储端的IOPS性能和主机端的IO是不同的,IOPS是指存储每秒可接受多少次主机发出的访问,主机的一次IO需要多次访问存储才可以完成。例如,主机写入一个最小的数据块,也要经过“发送写入请求、写入数据、收到写入确认”等三个步...
2012-04-04 22:23:21
195
原创 磁盘IOPS概念及IOPS的计算与测试
来自磁盘的需求简单的说,磁盘的一个典型I/O操作由两个阶段组成:1.数据定位平均定位时间主要由两部分组成:平均寻道时间和平均转动延迟。寻道时间的典型值是4.6ms。转动延迟则取决于磁盘的转速:普通7200RPM桌面硬盘的转动延迟是4.2ms,而高端10000RPM的是3ms。这些数字多年来一直徘徊不前,大概今后也无法有大的改善了。在下文中,我们不妨使用 8ms作为典型定位时间。...
2012-04-04 22:06:20
1254
原创 iostat来对linux硬盘IO性能进行检测
近期公司安装了几台DELL PE2650和2850的服务器,统一安装的是RHLE5.132位系统,而服务器的SCSI硬盘都统一做了raid1。公司老总要求对硬盘IO作统一检测报告,在Linux下找了许多工具,发现最实用的还是iostat,这个需要先安装sysstat ,即yum -y install sysstat;公司内部的yum服务器搭建这个不是本文的重点,这里不作详细叙述。...
2012-03-22 18:11:47
134
原创 mysql查询优化之索引类型、最左前缀
一、什么是索引? 索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存。如果没有索引,执行查询时MySQL必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录。表里面的记录数量越多,这个操作的代价就越高。如果作为搜索条件的列上已经创建了索引,MySQL无需扫描任何记录即可迅速得到目标记录所在的位置。如果表有 1000个记录,通过索引查找记录至少要比顺序扫描...
2012-03-22 00:42:41
257
原创 Softlinks vs. Hardlinks: A Quick Explanation
I got this question in an email the other day, and I realized it’s something many people might be unfamiliar with. In Linux, there are two types of file links, hardlinks and softlinks. Her...
2012-01-18 15:04:46
165
原创 ImageIO.read()方法读取图片后重写,图片蒙上一层红色的解决办法
1.在项目中为了处理用户上传的图片,会对图片进行重写处理,故使用了类似下面的代码: File src = new File("e:/img/google.jpg"); BufferedImage bi = (BufferedImage)ImageIO.read(src); BufferedImage bi_scale = new BufferedImage(bi.get...
2011-11-24 09:53:20
2596
原创 查看linux 线程
查看linux 线程 博客分类:linux 3中方法: 1. cat /proc/${pid}/status 2. pstree -p ${pid} 3. top -p ${pid} 再按H 或者直接输入 top -bH -d 3 -p ${pid} 查看进程工作 strace -p ${pid} 开启iptables日志 iptables -t raw -I PRE...
2011-11-22 11:35:26
153
原创 ADSL上网速度慢 都是帐号限速惹的祸
全方位解读帐号限速?ADSL宽带Modem中显示的带宽,是ADSL宽带用户在宽带运营商局端机房所连接的物理端口的速度。由于这一速度非常透明,在带宽紧缺的情况下,宽带运营商无法在物理端口速度上做文章,于是,“帐号限速”闪亮登场。据电信内部知情人透露,宽带运营商的ADSL拨号服务器支持帐号限速,宽带运营商只需要升级一下网管系统就可以运行帐号限速功能。例如,ADSL用户物理端口的速度是下...
2011-11-12 10:59:27
540
原创 序列化:serializable,hessian,protobuf性能对比
分布式应用系统中,系统之间的通讯的质量决定了系统的可用性,当然很多可以选择的技术:XML-RPC,RMI,SOAP,CORBA,JMS,EJB,NIO等。在传输数据的过程中,数据包越小,占用的带宽就越少,同等条件下资源利用就会越小。目前基于SOA的ESB系统中,很多采用NIO来传输数据,就涉及到对象的序列化的问题。 本文主要讨论jdk自带序列化,hessian,Google的pro...
2011-10-31 17:08:15
1781
原创 JAR 文件揭密
JAR 文件是什么? JAR 文件格式以流行的 ZIP 文件格式为基础,用于将许多个文件聚集为一个文件。与 ZIP 文件不同的是,JAR 文件不仅用于压缩和发布,而且还用于部署和封装库、组件和插件程序,并可被像编译器和 JVM 这样的工具直接使用。在 JAR 中包含特殊的文件,如 manifests 和部署描述符,用来指示工具如何处理特定的 JAR。一个 JAR 文件可以用...
2011-10-18 01:28:18
128
原创 SSL/TLS/WTLS原理
一 前言 首先要澄清一下名字的混淆: 1 SSL(Secure Socket Layer)是netscape公司设计的主要用于web的安全传输协议。这种协议在WEB上获得了 广泛的应用。 2 IETF(www.ietf.org)将SSL作了标准化,即RFC2246,并将其称为TLS(Transport Layer Security),从 技术上讲,TLS1.0与SS...
2011-10-18 00:01:16
125
原创 SSL双向认证java实现
本文通过模拟场景,介绍SSL双向认证的java实现默认的情况下,我认为读者已经对SSL原理有一定的了解,所以文章中对SSL的原理,不做详细的介绍如果有这个需要,那么通过GOOGLE,可以搜索到很多这样的文章模拟场景:Server端和Client端通信,需要进行授权和身份的验证,即Client只能接受Server的消息,Server只能接受Client的消息实现技术:JSSE(Java Securi...
2011-10-17 23:49:35
148
原创 memcache一致性 hash 算法(consistent hashing)
consistent hashing 算法早在 1997 年就在论文 Consistent hashing and random trees 中被提出,目前在 cache 系统中应用越来越广泛;1 基本场景比如你有 N 个 cache 服务器(后面简称 cache ),那么如何将一个对象 object 映射到 N 个 cache 上呢,你很可能会采用类似下面的通用方法计算 o...
2011-09-26 01:18:30
107
原创 深入JVM锁机制
目前在Java中存在两种锁机制:synchronized和Lock,Lock接口及其实现类是JDK5增加的内容,其作者是大名鼎鼎的并发专家Doug Lea。本文并不比较synchronized与Lock孰优孰劣,只是介绍二者的实现原理。 数据同步需要依赖锁,那锁的同步又依赖谁?synchronized给出的答案是在软件层面依赖JVM,而Lock给出的方案是在硬件层面依赖特殊的CP...
2011-09-19 01:00:41
160
原创 UTC和GMT时间
每个地区都有自己的本地时间,在网上以及无线电通信中时间转换的问题就显得格外突出。我自己就经常混淆于此,特地研究了一下,记录在此以备忘。 整个地球分为二十四时区,每个时区都有自己的本地时间。在国际无线电通信场合,为了统一起见,使用一个统一的时间,称为通用协调时(UTC, Universal Time Coordinated)。UTC与格林尼治平均时(GMT, Greenwich Mean Time)...
2011-08-24 18:16:11
648
原创 数学之美系列二十一 - 布隆过滤器(Bloom Filter)
今天在培训中听到目前的一个产品用到Bloom Filter,非常可惜之前没仔细看,现在重新温习下,吸取精华思想。在日常生活中,包括在设计计算机软件时,我们经常要判断一个元素是否在一个集合中。比如在字处理软件中,需要检查一个英语单词是否拼写正确(也就是要判断它是否在已知的字典中);在 FBI,一个嫌疑人的名字是否已经在嫌疑名单上;在网络爬虫里,一个网址是否被访问过等等。最直接的方法就是将集...
2011-06-22 18:49:36
179
原创 java 正则表达式 非捕获组(特殊构造)Special Constructs(Non-Capturing)
针对Java API文档中的正则表达式关于特殊构造(非捕获组)的说明,例如: 1.(?:X) X, as a non-capturing group 2.(?idmsux-idmsux) Nothing, but turns match flags on - off 3.(?idmsux-idmsux:X) X, as a non-capturing group with the given...
2011-06-20 23:15:46
133
原创 JVM启动参数
java [jvmargs] class [arguments] 1.2 标准参数 1.-server -client 虚拟机服务器模式/客户机模式,使用server模式可以提高性能,启动比client模式慢,长期运行则比client模式快。当该参数不指定时,虚拟机启动检测主机是否为服务器,如果是则以server模式启动,否则以client模式启动,J2SE5.0检测的根据是至少2个CPU和最低2...
2011-06-10 16:27:18
118
原创 Java文件映射[mmap]揭秘
前言相信现在做Java的人没有人不用NIO来进行IO相关的操作了吧。这个新的IO类库[虽然现在已经不新了]为我们带来了基于块的IO处理方式,通过预定义的Buffer,我们可以更高效地完成IO操作。在NIO中,我比较关注的是一个成为mmap的文件映射功能,其特点是可以把文件的一部分或全部映射到内存中,之后我们就可以通过MappedBuffer对内存进行操作,而操作的...
2011-06-08 20:10:26
181
原创 原创 java的Mmap二三事
转自 :http://blog.youkuaiyun.com/kabini/archive/2009/04/07/4053750.aspx 先说些题外话,Java的内存管理一直是让人又爱又恨玩意。学生时代写Java程序主要考虑的只是实现算法、完成功能,偶尔碰到OutofMemory也是递归搞成死循环。什么垃圾回收、内存管理统统交给JVM去烦恼。上班之后再用J...
2011-06-08 19:46:02
433
原创 网络远程通讯总结
文章引自www.51cto.com基本原理要实现网络机器间的通讯,首先得来看看计算机系统网络通信的基本原理,在底层层面去看,网络通信需要做的就是将流从一台计算机传输到另外一台计算机,基于传输协议和网络IO来实现,其中传输协议比较出名的有http、tcp、udp等等,http、tcp、udp都是在基于Socket概念上为某类应用场景而扩展出的传输协议,网络IO,主要有bio、nio、aio三种方...
2011-06-06 23:00:08
214
Goodbye Rose !
一直以为公牛太依赖罗斯,后来发现是罗斯主动承担的太多了,无私得变成自私,自私的不相信队友能为你承担。艾佛森苦苦需求答案,却发现答案是自己,简单、不复杂,以这样的信念,近乎偏执的执行最关键球的处理。罗斯,天赋异禀,你会领悟詹姆斯曾经领悟了的东西。联盟未来属于你-风城玫瑰!!!!!!...
2011-05-27 11:54:52
105
原创 JVM指令集 和 一个异常例子
指令码助记符说明0x00nop什么都不做0x01aconst_null将null推送至栈顶0x02iconst_m1将int型-1推送至栈顶0x03iconst_0将int型0推送至栈顶0x04iconst_1将int型1推送至栈顶0x05iconst_2将int型2推送至栈顶...
2011-05-19 16:14:39
141
原创 32位CPU所含有的寄存器及32位指令
转载自:http://blog.youkuaiyun.com/jiaguoxinzhi/archive/2008/09/14/2915127.aspx 32位CPU所含有的寄存器有: 4个数据寄存器(EAX、EBX、ECX和EDX)2个变址和指针寄存器(ESI和EDI) 2个指针寄存器(ESP和EBP) 6个段寄存器(ES、CS、SS、DS、FS和GS)1个指令指针寄存器(EIP) 1个标志寄存器(E...
2011-05-18 11:03:51
796
原创 The Top Java Memory Problems – Part 1
转载:http://blog.dynatrace.com/2011/04/20/the-top-java-memory-problems-part-1/ Memory and Garbage Collection problems are still the most prominent issues in any java application. One of the reasons ...
2011-05-18 11:01:58
136
原创 Linux学习总结—缺页中断和交换技术
三、Linux缺页中断处理1.请求调页中断:进程线性地址空间里的页面不必常驻内存,例如进程的分配请求被理解满足,空间仅仅保留vm_area_struct的空间,页面可能被交换到后援存储器,或者写一个只读页面(COW)。Linux采用请求调页技术来解决硬件的缺页中断异常,并且通过预约式换页策略。主缺页中断和次缺页中断,费时的需要从磁盘读取数据时就会产生主缺页中断。每种CPU结构提供一个do_page...
2011-05-18 11:00:36
382
原创 Linux学习总结—Linux调度器分析
四、Linux调度器分析1.Linux2.6调度器的特性2.6 调度系统从设计之初就把开发重点放在更好满足实时性和多处理机并行性上,并且基本实现了它的设计目标。新调度系统的特性概括为如下几点:继承和发扬 2.4 版调度器的特点: 交互式作业优先 轻载条件下调度/唤醒的高性能 公平共享 基于优先级调度 高 CPU 使用率 SMP 高效亲和 实时调度和 cpu 绑定等调度手段 在此基础之上的新特性: ...
2011-05-18 10:58:38
209
原创 Linux内存分段和分页管理
1.x86 内存架构和Linux的分段管理x86 内存架构在 x86 架构中,内存被划分成 3 种类型的地址:· 逻辑地址 (logical address) 是存储位置的地址,它可能直接对应于一个物理位置,也可能不直接对应于一个物理位置。逻辑地址通常在请求控制器中的信息时使用。· 线性地址 (linear address) (或称为平面地址空间)是从 0 开始进行...
2011-05-18 10:56:49
224
原创 Linux启动分析
一、系统引导过程总体介绍启动流程图: 系统引导过程主要由以下几个步骤组成(以硬盘启动为例) 1、开机; 2、 BIOS加电自检(POST——Power On Self Test),包括检查RAM,keyboard,显示器,软硬磁盘等等。Intel系列的CPU首先进入的是实模式,并开始执行位于地址0xFFFF0处的代码,也就是ROM-BIOS起始位置的代码;3、搜索启动的操作系...
2011-05-18 10:54:44
88
Some of my favourite NBA players' measurements
姓名 裸足高 穿鞋高 体重 臂展 站立摸高 脂肪 原地跳 助跑跳 卧推 底线折返跑 3/4场冲刺 Derrick Rose 6' 1.5" 6' 2.5" 196 6' 8" 8' 2.5" 4.6 34.5 40.0 10 11.69 3.05LeBro...
2011-05-14 12:39:43
122
Talking to myself
You have your goal and your motivation; what else do you need?Don't distract your focus. Make clear thing clearer; don't think of other things.Empty your mind. There is only one goal that you ne...
2011-05-06 01:18:08
217
1
原创 浏览器并发连接数测试(IE、Firefox)
版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息一、测试思路制作网页若干,在一个域名(tt1.howmax.com)下放置20个不同文件名的图片(URI不同)为一组,先用一组测出浏览器的per host max数,再逐步增加组,测试浏览器process(thread) max数,最终网页中图片的总个数为20×n组,请求期间在服务器端用netstat查看TCP连接情...
2011-05-04 15:29:15
1444
通过现象看本质
每当我暇时常思考,总想透过表象看到本质的东西,思辨是很有趣的过程。哲学本身和物理密不可分,能量和质量的转换形成了空间的维度,物与物得相互作用,产生了运动,孕育了生命,形成了时间的维度。时间和空间又可以进行划分,形成多维时空。万物通过磁场、电场、引力相互作用,各自按照轨迹运动,形成了表象上的规律和规则。运动轨迹是复杂的,物与物轨迹重合时,发生了碰撞,形成了能量的传播。物与物因自旋方向不同...
2011-04-29 10:46:28
398
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人