自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

李大伟的专栏

积累、思考

  • 博客(53)
  • 收藏
  • 关注

转载 最全面 Nginx 入门教程 + 常用配置解析

Nginx介绍和安装一个简单的配置文件模块介绍常用场景配置进阶内容参考资料  == Nginx介绍和安装 == Nginx是一个自由、开源、高性能及轻量级的HTTP服务器及反转代理服务器,其性能与IMAP/POP3代理服务器相当。Nginx以其高性能、稳定、功能丰富、配置简单及占用系统资源少而著称。Ngin

2014-08-07 13:59:22 521

转载 TCP/IP详解学习笔记(13)-TCP坚持定时器,TCP保活定时器

TCP一共有四个主要的定时器,前面已经讲到了一个--超时定时器--是TCP里面最复杂的一个,另外的三个是:坚持定时器保活定时器2MSL定时器其中坚持定时器用于防止通告窗口为0以后双方互相等待死锁的情况;而保活定时器则用于处理半开放连接1.坚持定时器坚持定时器的原理是简单的,当TCP服务器收到了客户端的0滑动窗口报文的时候,就启动一个定时器来计时,并在定时器溢出的时候向向客户端查

2014-02-10 09:15:02 585

转载 TCP/IP详解学习笔记(12)-TCP的超时与重传

超时重传是TCP协议保证数据可靠性的另一个重要机制,其原理是在发送某一个数据以后就开启一个计时器,在一定时间内如果没有得到发送的数据报的ACK报文,那么就重新发送数据,直到发送成功为止。1.超时超时时间的计算是超时的核心部分,TCP要求这个算法能大致估计出当前的网络状况,虽然这确实很困难。要求精确的原因有两个:(1)定时长久会造成网络利用率不高。(2)定时太短会造成多次重传,使得网络阻塞。

2014-02-10 09:14:16 513

转载 TCP/IP详解学习笔记(11)-TCP交互数据流,成块数据流

目前建立在TCP协议上的网络协议特别多,有telnet,ssh,有ftp,有http等等。这些协议又可以根据数据吞吐量来大致分成两大类:(1)交互数据类型,例如telnet,ssh,这种类型的协议在大多数情况下只是做小流量的数据交换,比如说按一下键盘,回显一些文字等等。(2)数据成块类型,例如ftp,这种类型的协议要求TCP能尽量的运载数据,把数据的吞吐量做到最大,并尽可能的提高效率。针对这两种情

2014-02-10 09:13:19 472

转载 TCP/IP详解学习笔记(10)-TCP连接的建立与中止

TCP是一个面向连接的协议,所以在连接双方发送数据之前,都需要首先建立一条连接。这和前面讲到的协议完全不同。前面讲的所有协议都只是发送数据而已,大多数都不关心发送的数据是不是送到,UDP尤其明显,从编程的角度来说,UDP编程也要简单的多----UDP都不用考虑数据分片。书中用telnet登陆退出来解释TCP协议连接的建立和中止的过程,可以看到,TCP连接的建立可以简单的称为三次握手,而连接的中

2014-02-10 09:12:18 475

转载 TCP/IP详解学习笔记(9)-TCP协议概述

终于看到了TCP协议,这是TCP/IP详解里面最重要也是最精彩的部分,要花大力气来读。前面的TFTP和BOOTP都是一些简单的协议,就不写笔记了,写起来也没啥东西。TCP和UDP处在同一层---运输层,但是TCP和UDP最不同的地方是,TCP提供了一种可靠的数据传输服务,TCP是面向连接的,也就是说,利用TCP通信的两台主机首先要经历一个“拨打电话”的过程,等到通信准备结束才开始传输数据,最后

2014-02-10 09:11:24 431

转载 TCP/IP详解学习笔记(8)-DNS域名系统

前面已经提到了访问一台机器要靠IP地址和MAC地址,其中,MAC地址可以通过ARP协议得到,所以这对用户是透明的,但是IP地址就不行,无论如何用户都需要用一个指定的IP来访问一台计算机,而IP地址又非常不好记,于是就出现了DNS系统1.DNS系统介绍DNS的全称是Domain Name System。它负责把FQDN(就是以"."分隔结尾的名字)翻译成一个IP。最初的DNS系统使用的是一个

2014-02-10 09:10:00 489

转载 TCP/IP详解学习笔记(7)-广播和多播,IGMP协议

1.单播,多播,广播的介绍1.1.单播(unicast)单播是说,对特定的主机进行数据传送。例如给某一个主机发送IP数据包。这时候,数据链路层给出的数据头里面是非常具体的目的地址,对于以太网来 说,就是网卡的MAC地址(不是FF-FF-FF-FF-FF-FF这样的地址)。现在的具有路由功能的主机应该可以将单播数据定向转发,而目的主机的网 络接口则可以过滤掉和自己MAC地址不一致的数据。

2014-02-10 09:09:08 501

转载 TCP/IP详解学习笔记(6)-UDP协议

1.UDP简要介绍UDP是传输层协议,和TCP协议处于一个分层中,但是与TCP协议不同,UDP协议并不提供超时重传,出错重传等功能,也就是说其是不可靠的协议。2.UDP协议头2.1.UDP端口号由于很多软件需要用到UDP协议,所以UDP协议必须通过某个标志用以区分不同的程序所需要的数据包。端口号的功能就在于此,例如某一个UDP程序A在系统中注册了3000端口,那么,以后从外面传进来

2014-02-10 09:08:22 540

转载 TCP/IP详解学习笔记(5)-IP选路,动态选路,和一些细节

1.静态IP选路1.1.一个简单的路由表选路是IP层最重要的一个功能之一。前面的部分已经简单的讲过路由器是通过何种规则来根据IP数据包的IP地址来选择路由。这里就不重复了。首先来看看一个简单的系统路由表。Destination     Gateway         Genmask         Flags Metric Ref    Use Iface192.168.11.0 

2014-02-10 09:07:14 481

转载 TCP/IP详解学习笔记(4)-ICMP协议,ping和Traceroute

1.IMCP协议介绍前面讲到了,IP协议并不是一个可靠的协议,它不保证数据被送达,那么,自然的,保证数据送达的工作应该由其他的模块来完成。其中一个重要的模块就是ICMP(网络控制报文)协议。当传送IP数据包发生错误--比如主机不可达,路由不可达等等,ICMP协议将会把错误信息封包,然后传送回给主机。给主机一个处理错误的机会,这 也就是为什么说建立在IP层以上的协议是可能做到安全的原因。IC

2014-02-10 09:05:47 584

转载 TCP/IP详解学习笔记(3)-IP协议,ARP协议,RARP协议

把这三个协议放到一起学习是因为这三个协议处于同一层,ARP协议用来找到目标主机的Ethernet网卡Mac地址,IP则承载要发送的消息。数据链路层可以从ARP得到数据的传送信息,而从IP得到要传输的数据信息。1.IP协议IP协议是TCP/IP协议的核心,所有的TCP,UDP,IMCP,IGCP的数据都以IP数据格式传输。要注意的是,IP不是可靠的协议,这是说,IP协议没有提供一种数

2014-02-10 09:04:40 564

转载 TCP/IP详解学习笔记(2)-数据链路层

数据链路层有三个目的:为IP模块发送和 接收IP数据报。为ARP模块发送ARP请求和接收ARP应答。为RARP发送RARP请 求和接收RARP应答ip大家都听说过。至于ARP和RARP,ARP叫做地址解析协议,是用IP地址换MAC地址的一种协议,而RARP则叫做逆地址解析协议,在tcp/ip协议的后面章节会介绍它们(在局域网里面用ARP协议可以很容易的搞瘫痪网络哦)数据链路层的协议

2014-02-10 09:03:13 478

转载 TCP/IP详解学习笔记(1)-基本概念

为什么会有TCP/IP协议在世界上各地,各种各样的电脑运行着各自不同的操作系统为大家服务,这些电脑在表达同一种信息的时候所使用的方法是千差万别。就好像圣经中上帝打乱了各地人的口音,让他们无法合作一样。计算机使用者意识到,计算机只是单兵作战并不会发挥太大的作用。只有把它们联合起来,电脑才会发挥出它最大的潜力。于是人们就想方设法的用电线把电脑连接到了一起。但是简单的连到一起是远远不够的

2014-02-10 09:01:41 480

转载 http协议详解

1. 基础概念篇1.1 介绍  HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写。它的发展是万维网协会(World Wide Web Consortium)和Internet工作小组IETF(Internet Engineering Task Force)合作的结果,(他们)最终发布了一系列的RFC,RFC 1945定义了HTTP/1.0版本。其中

2014-01-13 17:30:00 634

转载 子Div使用Float后如何撑开父Div

一个Div包含了多个子Div,并且子Div使用了浮动后,父Div确不能被撑开,如下图:部分代码如下:1 style>2   #div1{border:1px solid red;float:left;}3   #div2,#div3{float:right;border:1px solid blue;}4 style>5 6 div id="div1

2013-05-09 17:57:39 585

原创 web开发项目经验

一. 增加代码可读性,给代码添加注释  一段好的代码,注释要占三分之一的篇幅。二. 提高重用性,公共组件和私有组件的维护减少代码量,提高代码维护性,公共组件专人维护三. 磨刀不误砍柴工,前期构思很重要构思和设计占总工作量的30%~60%,切忌拿到任务就开始开发,做到项目进度先慢而后快四. 制定规范               制定规范对团队合作非常重要,可以有效

2013-05-08 15:24:05 970

原创 跨浏览器之--事件绑定

function bind(el,type,fn){if(el.addEventListener){el.addEventListener(type,fn);}else if(el.attachEvent){el.attachEvent("on"+type,fn);}else{el["on"+type]=fn;}}function domOnload(){var d

2013-04-24 14:04:48 567

转载 JS排序算法

Array.prototype.swap = function(i, j) { var temp = this[i]; this[i] = this[j]; this[j] = temp; } Array.prototype.bubbleSort = function() { for (var i = this.length - 1; i > 0; --i)

2013-04-12 15:06:51 417

转载 http协议之---浏览器缓存机制

浏览器缓存机制浏览器缓存机制,其实主要就是HTTP协议定义的缓存机制(如: Expires; Cache-control等)。但是也有非HTTP协议定义的缓存机制,如使用HTML Meta 标签,Web开发者可以在HTML页面的节点中加入标签,代码如下:html code上述代码的作用是告诉浏览器当前页面不被缓存,每次访问

2013-04-12 13:23:17 748

转载 提高web性能之--将CSS和JS放到外部文件中引用,CSS放头,JS放尾

基本原理:注:这个是很基础且必须遵循的知识点,可是为了文章的完整性勉为其难加进来吧,嘿嘿。引入外部文件好处是显而易见的,而且是项目稍稍复杂一点的时候就有必要了这样做了。易维护、易扩展,方便管理和重复利用。正确的方式:JavaScript是浏览器中的霸主,为什么这么说,因为在浏览器在执行JavaScript代码时,不能同时做其它事情,即每次出现都会让页面等待脚

2013-04-07 14:55:43 4091

转载 提高web性能之--高效使用HTML标签和CSS样式

基本原理:HTML是一门用来描述网页的一种语言,它使用标记标签来描述网页,作为一名合格的前端开发,你有必要去知道其常用标签代表的含义(SEO)和属性(表现形式)。CSS指层叠样式表 (Cascading Style Sheets),如果说把页面想象成一个人,HTML就是人的骨架,CSS就是人的衣装,一个人的品味从他的衣装就能一目了然。一名专业的前端开发也是一名优秀的重构,因

2013-04-07 14:52:49 953

转载 提高web性能之--使用JSON格式来进行数据交换

基本原理:JSON是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式。同时,JSON是 JavaScript原生格式,这意味着在 JavaScript 中处理 JSON数据不需要任何特殊的 API 或工具包。与XML序列化相比,JSON序列化后产生的数据一般要比XML序列化后数据体积小,所以在Facebook等知名网站中都采用了JSON作为数据交换方式。

2013-04-07 13:51:23 737

转载 提高web性能之--减少对DOM的操作和访问

基本原理:对DOM操作的代价是高昂的,这在网页应用中的通常是一个性能瓶颈。天生就慢。在《高性能JavaScript》中这么比喻:“把DOM看成一个岛屿,把JavaScript(ECMAScript)看成另一个岛屿,两者之间以一座收费桥连接”。所以每次访问DOM都会教一个过桥费,而访问的次数越多,交的费用也就越多。所以一般建议尽量减少过桥次数。解决办法:修改和访问DO

2013-04-07 13:50:12 3617

转载 提高web性能之--正确理解 Repaint 和 Reflow

基本原理:Repaint(重绘)就是在一个元素的外观被改变,但没有改变布局(宽高)的情况下发生,如改变visibility、outline、背景色等等。Reflow(重排)就是DOM的变化影响到了元素的几何属性(宽和高),浏览器会重新计算元素的几何属性,会使渲染树中受到影响的部分失效,浏览器会验证DOM树上的所有其它结点的visibility属性,这也是Reflow低效的原因。如:

2013-04-07 13:48:22 633

原创 java性能优化设计之--消除静态集合

在企业信息化系统中,由于操作系统的限制或为了均衡gc的性能损耗,单个JVM进程常常被设置为1.5-2.0G之间,也就是说无论硬件拥有多大内存,单个java进程能用的内存是有限的。静态变量在class的加载期间就会被初始化,然后被存储到jvm的内存中,直接隶属于class,与实例无关,除非class被unload,否则静态变量永远不会被GC掉,因此生命周期长静态变量在代码

2013-04-03 15:04:33 660

原创 java性能优化设计之--异步处理

异步是相对于同步来说的,异步处理通常使用在线程之上,包括JVM内部线程,外部RPC线程等异步最大优势是可以在宏观层面提高资源的使用率,提供优秀的交互体验“所有耗时操作皆异步”是J2EE构建异步系统的首要原则

2013-04-03 14:55:40 709

原创 java性能优化设计之--按需取数

取数,无论从DB,磁盘,还是缓存,只获取自己需要的部分,取数代价比较高,系统处理耗费,传输占用,内存消耗获取无用的数据是J2EE的大敌,对J2EE每个环节都造成浪费

2013-04-03 14:50:23 540

原创 java性能优化开发之--适当的方法体长度

JVM一开始是以解释方式执行字节码的,当一个方法片段执行的一定次数时,就会 被动态优化编译为机器码执行,速度大大加快,这就是所有的JIT编译在JVM默认的情况下,8k字节以上的方法无论执行多少次,始终是不会被编译成机器码执行可以通过“-xx:DontcompileHUgeMethods”来强制将所有方法预编译,但会导致其他问题,例如启动过慢。测试中发现,8k方法拆分可以获得1倍以上的性

2013-04-03 14:45:00 698

原创 java性能优化开发之--禁用System.out.println

System.out.println将对象结果输出到控制台,会花费大量的CPU资源,发布的代码中不能包含System.out.println。可以用日志框架代替,注意控制输出级别

2013-04-03 14:27:53 4317

原创 java性能优化开发之--禁止用显示的垃圾回收

如果JVM正在进行一个分代的垃圾回收器 system.gc(); 强迫jvm执行一个堆内存的“全部清扫”,比一个常规的GC操作要昂贵好几个数量级--x:+DissableExplicitGC标志自动将所有的system.gc()调用转换成一个空操作

2013-04-03 14:23:53 837

原创 java性能优化开发之--循环内进行代码控制

循环内应:减少对象创建减少try catch避免I/O资源的开关

2013-04-03 14:19:01 457

原创 java性能优化开发之--使用静态变量

在JVM中,静态变量之存在一份,虚拟机在加载类的过程中对静态变量进行了初始化,静态变量存储于code cache去,被所有的实例共享,避免了成员变量的多存储,减少jvm年轻代的GC频率静态变量通常用于定义不会修改的值,通常和final搭配使用静态变量属于class,而不是是实例,在类没有被unload的情况下,永远也不会回收,所以使用静态变量需要注意变量的大小

2013-04-03 14:16:24 495

原创 java性能开发之--尽量使用final修饰符

带有final修饰符的类是不可派生的,在java核心的API中,有许多应用final的例子,例如java.lang.string。为String 类指定final防止了使用者覆盖length()方法.如果一个类是final 的,则该类所有的方法都是final的,java编译器会寻找机会内联(inline)所有的final方法,在实际的代码测试中性能平均提高50%

2013-04-03 14:09:52 1035

原创 java性能优化开发之--使用ArrayCopy进行复制

java 实现中,System.AarrayCopy()方法是native的,native修饰符是java 为了增强其运算能力,使用JNI方式实现的类或方法,通过调用系统的API来加快其运行速度

2013-04-03 14:04:28 958

原创 提高web性能之--压缩组件

请求中使用accept-encoding来表示对压缩的支持例如:accept-encoding: gzip,deflateweb服务器通过 content-encoding来通知web客户端压缩 js,css,json文本不应该压缩图片,pdf因为已经压缩过了,浪费cpu资源压缩使数据减少70%

2013-04-02 22:02:34 491

原创 提高web性能之--添加expires头

页面包含了大量的组件,可以使用expires头将组件缓存下来web服务器使用expires头告诉web客户端它使用一个组件的当前副本,直到制定的时间为止。但是expires严格要求客户端和服务端的系统时间保持一致。 使用 cache-control 的max-age来指定组件被缓存多久cache-control仅支持http1.1,不过已经占据90%修订文件名使

2013-04-02 21:53:47 1159

原创 提高web性能之--使用内容发布网络

将组件服务器分离,如图片,javascript,css发布到CDNCDN 是一组分布在多个不同地理位置的 web服务器。服务器离用户越近,访问速度越快。

2013-04-02 21:27:14 499

原创 提高web性能之--减少http请求

80%的时间是下载组件css sprites将图片合并,减少http请求,用css 的background-position 来制定图片的偏移量内联图片使用data:url 内联图片,不需要额外的http请求合并脚本和样式表保持javascript模块化,在生成过程中从一组特定的模块生成一个目标文件

2013-04-02 21:11:21 555

转载 提高 web 应用性能之 JavaScript 性能调优

简介: JavaScript 是一个比较完善的前端开发语言,在现今的 web 开发中应用非常广泛,尤其是对 Web 2.0 的应用。随着 Web 2.0 越来越流行的今天,我们会发现:在我们的 web 应用项目中,会有大量的 JavaScript 代码,并且以后会越来越多。JavaScript 作为一个解释执行的语言,以及它的单线程机制,决定了性能问题是 JavaScript 的软肋,也是 w

2013-01-05 09:54:55 410

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除