Fork me on GitHub

2012年4月25日

摘要: 简介 内存是计算机中最重要的资源之一,通常情况下,物理内存无法容纳下所有的进程。虽然物理内存的增长现在达到了N个GB,但比物理内存增长还快的是程序,所以无论物理内存如何增长,都赶不上程序增长的速度,所以操作系统如何有效的管理内存便显得尤为重要。本文讲述操作系统对于内存的管理的过去和现在,以及一些页替换的算法的介绍。对于进程的简单介绍 在开始之前,首先从操作系统的角度简单介绍一下进程。进程是占有资源的最小单位,这个资源当然包括内存。在现代操作系统中,每个进程所能访问的内存是互相独立的(一些交换区除外)。而进程中的线程所以共享进程所分配的内存空间。 在操作系统的角度来看,进程=程序+数据+PCB( 阅读全文
posted @ 2012-04-25 21:10 HackerVirus 阅读(225) 评论(0) 推荐(0)
摘要: 最近在infoq上面看到 ebay介绍其系统架构变迁以及系统设计分享方面的讲座,其中陈述了ebay从1995年到2006年之间系统架构的变化过程。从这里,我们可以学习到许多宝贵的经验来设计一个大容量,高并发,分布式的系统。ebay的系统架构的变迁主要经历了4个阶段,下面一幅图展现了ebay系统架构变迁的时间表在ebay的V1版本,ebay采用的是FREEBSD + APACHE + PERL +DGBM,这是一个比较原始的模型,而且相对比较简单,操作系统,应用服务器,web服务器 以及 数据库服务器都是在同一台机器中,网络结构在物理上只有一层。整个网站有四个域名,每个域名对应不同的应用,每组应 阅读全文
posted @ 2012-04-25 21:09 HackerVirus 阅读(280) 评论(0) 推荐(0)
摘要: C# 温故而知新:Stream篇(六)BufferedStream目录:简单介绍一下BufferedStream如何理解缓冲区?BufferedStream的优势从BufferedStream 中学习装饰模式 如何理解装饰模式 再次理解下装饰模式在Stream中的作用BufferedStream的构造BufferedStream的属性BufferedStream的方法简单示例:利用socket 读取网页并保存在本地本章总结1 简单介绍一下BufferedStream在前几章的讲述中,我们已经能够掌握流的基本特性和特点,一般进行对流的处理时系统肩负着IO所带来的开销,调用十分频繁,这... 阅读全文
posted @ 2012-04-25 21:08 HackerVirus 阅读(332) 评论(0) 推荐(0)
摘要: 所以内容由作者从网络收集,转载请注明出处:java大全博客http://www.cnblogs.com/diegoliujava哥说:通过代码学习程序,永远是最有效最便捷的方式,在多年的软件编程工作生涯中,java哥也体会到,ctrl+c配合ctrl+v的威力,学习的过程永远是先模仿再创新,希望大家从代码中学到更多的东西,而不仅仅是练习了复制与粘贴的速度,:)一,java2s丰富的java教程,直接以代码例子为教程,上手迅速,学习便捷,分类明晰,内容详尽,还有丰富的专题问答二,java examples拥有众多j2se代码例子,是j2se学习的良药,打好基础,是学习java的关键三,kodej 阅读全文
posted @ 2012-04-25 21:07 HackerVirus 阅读(483) 评论(0) 推荐(0)
摘要: 能够写出可维护的面向对象 JavaScript 代码不仅可以节约金钱,还能让你很受欢迎。不信?有可能你自己或者其他什么人有一天会回来重用你的代码。如果能尽量让这个经历不那么痛苦,就可以节省不少时间。地球人都知道,时间就是金钱。同样的,你也会因为帮某人省去了头疼的过程而获得他的偏爱。但是,在开始探索如何编写可维护的面向对象 JavaScript 代码之前,我们先来快速看看什么是面向对象。如果已经了解面向对象的概念了,就可以直接跳过下一节。 什么是面向对象? 面向对象编程主要通过代码代表现实世界中的实质对象。要创建对象,首先需要写一个“类”来定义。类几乎可以代表所有的东西:账户,员工,导航菜单.. 阅读全文
posted @ 2012-04-25 21:03 HackerVirus 阅读(133) 评论(0) 推荐(0)
摘要: 在百度搜索"2012世界末日"所展现的地震效果的源代码 昨天在同学群里收到这样的信息:【重磅消息:只要在百度搜索"2012世界末日",你的电脑显示器页面将会震动,出现地震山摇的状况,然后会有一张"船票"飘然而出 】。很想看看百度的前端工程师是怎么写出这个效果的。以前我研究过谷歌logo的代码,特别是昨天的拉链效果,虽然找到了源码,但是谷歌的页面里的代码都被压缩和混淆,加上谷歌自己的前端js框架代码混入其中实在难以看懂,抽百度的源码就想比较下百度和谷歌的前端技术,哈哈,百度还是简单多了,没有被压缩和混淆,可以作为学习的范本,好了不废话了 阅读全文
posted @ 2012-04-25 21:02 HackerVirus 阅读(220) 评论(0) 推荐(0)

2012年4月24日

摘要: 一年前写过一个百万级别数据库数据生成配置xml文件的程序,程序目的是用来把数据库里面的数据生成xml文件.程序可以配置多少文件生成到一个文件中去. 程序刚开始设计的时候说的是最多百万级别数据,最多50W数据生成到一个xml文件里面去,所以在做测试的时候自己也只是造了100W的数据并没有做过多数据量的测试,然后问题就来了....由于程序使用的局点数据量巨大,需要生成xml文件的客户资料接近千万级别的程度,而现场对程序的配置大约是100W条数据生成一个xml文件里面去,程序在这样的大数据量下面偶尔会有崩溃. 最近几天现场催的比较紧,最近抽空把这个问题处理了一下,在解决问题的过... 阅读全文
posted @ 2012-04-24 23:45 HackerVirus 阅读(289) 评论(0) 推荐(0)
摘要: 回顾上周微软一站式示例代码库最新发布的7篇示例代码:[Sample of Apr 22nd] Create and sign a cabinet file该示例演示如何创建和对一个cabinet文件进行签名。[Sample of Apr 21st] Compare and merge data from different database该示例演示如何通过代码比较,合并不同的数据库数据。[Sample of Apr 20th] Custom DataGrid Control for WebAccess该示例演示如何为TFS的Web Access界面自定义DataGrid控件。[Sample 阅读全文
posted @ 2012-04-24 23:45 HackerVirus 阅读(114) 评论(0) 推荐(0)
摘要: 生平做过无数次演讲和分享,最短10分钟,最长也不过3个小时。有时候我在想,连续讲3小时可能就是我的极限了吧,这种想法一直持续到2011年的冬天。江湖传言QCon大会要在2012这个多事之秋的4月举行。中国区掌门人在邀请我做QCon的“优化你的架构设计”主持人之后的某一天,不经意的对我说,老池,你来做个会后培训吧。事情就这么发生了,我在不经意的一天发现了这个分享要持续7个小时,当时颇有些崩溃。不过抱着我不入地狱谁入地狱的想法,下定决心,排除万难,对领域驱动设计进行了详细的梳理,终于完成了一个长达100页的Keynote,并且准备了一些案例。不过最终完成了这个分享之后,真是口看舌燥,精疲力尽。原本 阅读全文
posted @ 2012-04-24 09:24 HackerVirus 阅读(226) 评论(0) 推荐(0)
摘要: 代码坏味道:是指在代码之中潜在问题的警示信号。并非所有的坏味道所指示的确实是问题,但是对于大多数坏味道,均很有必要加以查看,并作出相应的修改。1.重复的代码如果你在一个以上的地点看到相同的程序结构,那么当可肯定:设法将它们合而为一,程序会变得更好。同一个class内的两个函数中含有重复的代码段两个兄弟class的成员函数中含有重复的代码段两个毫不相关的class内出现重复的代码段注意:重复的代码是多数潜在BUG的温床!2.过长的函数拥有短函数的对象会活的比较好、比较长。程序愈长就愈难理解函数过长阅读起来也不方便小函数的价值:解释能力、共享能力、选择能力原则:每当感觉需要以注释来说明点什么的时候 阅读全文
posted @ 2012-04-24 09:22 HackerVirus 阅读(176) 评论(0) 推荐(0)