自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

Java NIO API详解

在JDK 1.4以前,Java的IO操作集中在java.io这个包中,是基于流的阻塞(blocking)API。对于大多数应用来说,这样的API使用很方便,然而,一些对性能要求较高的应用,尤其是服务端应用,往往需要一个更为有效的方式来处理IO。从JDK 1.4起,NIO API作为一个基于缓冲区,并能提供非阻塞(non-blocking)IO操作的API被引入。本文对其进行深入的介绍。...

2009-06-30 08:37:00 56

Overlapped I/O模型深入分析

简述: Overlapped I/O也称Asynchronous I/O,异步I/O模型。异步I/O和同步I/O不同,同步I/O时,程序被挂起,一直到I/O处理完,程序才能获得控制。异步I/O,调用一个函数告诉OS,进行I/O操作,不等I/O结束就立即返回,继续程序执行,操作系统完成I/O之后,通知消息给你。Overlapped I/O只是一种模型,它可以由内核对象(hand),事...

2009-06-30 08:34:00 61

优化JavaScript下载速度

Web浏览器下载的是JavaScript源码,也就是所有的长变量与注释都会包含在内。这个因素和其他因素都会增加下载时间,这会增加脚本运行的总时间。增加下载时间的关键因素就是脚本所包含的字节数。要记住一个关键数字是1160,这是能放入单个TCP-IP包中的字节数。最好能将每个JavaScript文件都保持在1160字节以下以获取最优的下载时间。在JavaScript中,每个字符就是一个...

2009-06-26 18:08:00 125

cookie的成分

name: 每个cookie由一个唯一的名称代表,这个名称可以包含字母、数字、下划线。cookie的名称是不分大小写,所以mycookie和MyCookie是一样。但考虑到服务器端语言可能区分大小写,建议定义和使用时还是区分大小写。value: 保存在cookie中的字符串值。这个值在存储之前必须使用encodeURIComponent()对其进行编码,以免丢失数据或占用了cookie。注意:co...

2009-06-26 15:25:00 87

花了三天时间,加上了动态的卸载,发文祝贺!

上周六看了看相关代码,周一编码,周二解决了几个致挂的BUG,终于把急需的动态卸载加上了,扩展一下Unreal,貌似也没预想中那么痛苦。编码极少,这点得感谢同事Aman Jiang那富有远见的Streaming,省了大事了。具体能带来多少好处,今天去测试一下,不过运行时确实比之前卡一些了 ^_^。如果能把显卡报错给彻底消除掉,卡那么一点或许也不是大事。有些人还嫌这地图小,有些人又觉得地图...

2009-06-24 07:32:00 50

非阻塞IO典型例子

Java 非阻塞IO常用于高性能的服务器程序。对于阻塞式IO常常需要多个线程来处理客户端的请求,由于线程的开销较大,往往使服务器性能下降很快。而非阻塞IO只需几个线程就可以胜任大量的请求。对于p2p软件(例如BT软件),也常常使用非阻塞IO,来实现文件交换。 下面是一个典型的非阻塞IO程序。客户端向服务器端发起10个连接,服务器端向每个客户端发送”Hello”,并打印出来。服务器...

2009-06-23 20:53:00 309

如何使用Runtime.addShutdownHook

以前从未用过 Runtime.addShutdownHook(Thread), 也不知道什么是 shutdown hook.最近刚刚接触了一点,总结一下。根据 Java API, 所谓 shutdown hook 就是已经初始化但尚未开始执行的线程对象。在Runtime 注册后,如果 jvm 要停止前,这些 shutdown hook 便开始执行。有什么用呢?就是在你的程序结束前,执行一些清理工作...

2009-06-23 16:58:00 60

grep:Binary file (standard input) matches

grep "key" xxx.log时输出Binary file xxx.log matches百度了一下:grep认为这是二进制文件,解决方案:grep -a。grep -a "key" xxx.log

2009-06-23 09:09:00 78

WPF

最近从同事那里借了本WPF的书,看了看WPF,挺简单的,确实很简单,概念很简单,实现很简单,没有什么再简单了。这就是伟大——将复杂的事情用简单的体系去描述。做游戏开发的人或多或少可能都有点对商业软件不太重视,其实,商业软件中有很多思路是很值得我们借鉴的。软件为什么要发展?实现新的功能?——但那个是要取决于硬件的。软件的发展,我认为,第一的要务,是要帮助人类完成他们希望完成的事情。对于游...

2009-06-21 21:31:00 104

浅析C#中的文件操作

微软的.Net框架为我们提供了基于流的I/O操作方式,这样就大大简化了开发者的工作。因为我们可以对一系列的通用对象进行操作,而不必关心该I/O操作是和本机的文件有关还是和网络中的数据有关。.Net框架主要为我们提供了一个System.IO命名空间,该命名空间基本包含了所有和I/O操作相关的类。本文将向大家介绍一些基本的文件操作方法,包括对文件系统中的目录和文件的操作,还有就是文件的读写操...

2009-06-17 17:07:00 44

焦油坑……

记得Blooks人月神话里有一个很形象的比喻——焦油坑。又回想起了这个比喻,陷入泥潭中的史前生物——无论多么强大——无一例外地,越挣扎,陷入的越深。乐观主义的认知总是会觉得事情是可以避免的,然而不幸的是,从Blooks 70年代写下这些文字的时候,我们直到今天,也没有从根本上避免项目陷入焦油坑。我们试图用很多假设,但却一次次的碰壁,到最后,又一次次陷入恶性循环,难道人类是不长记性的么?...

2009-06-15 23:35:00 126

累了……

昨天初步测试了一下现在这个版本静态模型动态加载部分的效率,马马虎虎吧,省了70%的读取时间。剩下几个BUG,跟动态加载没什么关系了,是umbra的BUG,下周继续修理。此外还有个重挂接的效率问题,不过那个简直是没难度。测完了,感觉很累,没觉得这么累过,今天睡了一整天觉,睡得现在超级精神。真的很想感谢一下Unreal,无论如何,能坚持到今天,是因为Unreal,又爱又恨的Unreal...

2009-06-14 22:26:00 69

SharpPcap学习笔记

在做飞信的时候看到nathan2007写的FeitionSniffer(一个用BC++和WinPcap开发的小工具,小巧却很实用),不禁暗暗想自己也能做个类似的东西,以后分析起协议就方便了.上网搜索了一下,发现有人已经用C#把WinPcap的功能进行了封装,开发了SharpPcap.然后看了SharpPcap tutorial,感觉还是挺简单的.顺便做个笔记以后用起来就方便了.1. 获得...

2009-06-12 18:36:00 181

让窗口最小化到系统托盘

1.设置窗体属性showinTask=false 2.加notifyicon控件notifyIcon1,为控件notifyIcon1的属性Icon添加一个icon图标。 3.添加窗体最小化事件(首先需要添加事件引用):? // this.SizeChanged += new System.EventHandler(this.Form1_SizeChanged); //上面一行是主...

2009-06-12 18:07:00 112

脚本调试工具 Microsoft Script Debugger

脚本调试工具 Microsoft Script Debugger ,配合IE在调Ajax脚本代码时用得到,用 debugger; 设断点。安装后,将Internet 选项->高级->禁用脚本调试(Internet Explorer) 前的“√”去掉。安装包下载地址:http://files.cnblogs.com/pcjim/Microsoft Script Debugger.r...

2009-06-11 11:48:00 136

zDragDrop实现拖放

-类似google个性化首页function onLoad() { var oDraggable = new zDraggable(document.getElementById("div1"), zDraggable.DRAG_X | zDraggable.DRAG_Y); var oDropTarget = new zDropTarget(document.getElem...

2009-06-10 18:58:00 70

F5 APACHE WEBLOGIC取用户真实IP的问题

应用环境如下:F5负载均衡16台apache,然后转到后台的4台weblogic,weblogic之间做集群。现在有一个问题就是在weblogic上无法获取客户的真实IP地址了。看到网上有很多相关帖子是介绍apache和weblogic集成使用,可以利用http头里X-Forwarded-For这个值取出用户ip地址。但是在我这个环境下X-Forwarded-For值指向F5的地址,初步估计问题应...

2009-06-09 18:21:00 81

apache+weblogic 获取客户IP

在apache+WebLogic整合系统中,apache会对request对象进行再包装,附加一些WLS要用的头信息。这种情况下,直接用request.getRemoteAddr()是无法取到真正的客户IP的。  apache会增加下列头信息:  X-Forwarded-For=211.161.1.239  WL-Proxy-Client-IP=211.161.1.239  ...

2009-06-09 18:17:00 55

关于:ORA-01536:表空间不足

当用户创建表或向已有的表中插入数据时,提示Ora-01536:表空间不足。用户使用grant resource,解决问题。这不是一种好的作法,特别是在8I及以前的版本的数据中。在理解这一点之前,我们先来看以下几个概念: 表空间(tablespace) 在逻辑组成上,数据库首先是由若干个表空间组成的。用来保存用户的各种对象,包括表、索引等等。用户在建立数据库对象时,可以指定保存的目标表空间...

2009-06-08 08:31:00 64

6-6又歇菜了,赋闲在家,顺便写一下最近的进展和问题。

周三觉得发热,周四就躺着动不了,生病的感觉真难受,躺在那里就像在倒数计时,听着血液在耳边流过的声音,想喝口水,一看——还没烧……顿时就万念俱灰。去见医生,抽血,拍片,又开了一大坨药,天!周五又睡了一天,今天好歹能起床了,盯着电脑屏幕两眼发黑,脑子一片空白,不知道该干什么……要做的事情太多,哪个放前面做?体质真的不如以前了,所以是不是该把锻炼身体列为第一要务呢?有人说我生病是自找的,也是...

2009-06-06 17:03:00 63

判断浏览器和操作系统的js

var sUserAgent = navigator.userAgent;var fAppVersion = parseFloat(navigator.appVersion);function compareVersions(sVersion1, sVersion2) { var aVersion1 = sVersion1.split("."); var aVersion2 ...

2009-06-04 14:35:00 68

javascript事件模型框架-eventutil.js

var EventUtil = new Object;/**//* 此方法用来给特定对象添加事件,oTarget是指定对象,sEventType是事件类型,如click、keydown等, fnHandler是事件回调函数/*EventUtil.addEventHandler = function (oTarget, sEventType, fnHandler) { //firefox情况下 ...

2009-06-04 14:13:00 74

javascript实现继承的多种方式

对象冒充function ClassA(sColor){ this.color=sColor; this.sayColor=function(){ window.alert(this.color); };}function ClassB(sColor,sName){ this.newMethod=ClassA; this.newMethod(sC...

2009-06-02 09:38:00 47

javascript定义类或对象的四种方式

/*function createCar(sColor,iDoors,iMpg){ var oTempCar=new Object; oTempCar.color=sColor; oTempCar.doors=iDoors; oTempCar.mpg=iMpg; oTempCar.showColor=function(){ window.alert(this.c...

2009-06-01 16:25:00 48

空空如也

空空如也

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

TA关注的人

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