![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Architecture
hidetobj
这个作者很懒,什么都没留下…
展开
-
YouTube架构学习
原文: [url=http://www.highscalability.com/youtube-architecture]YouTube Architecture[/url]YouTube发展迅速,每天超过1亿的视频点击量,但只有很少人在维护站点和确保伸缩性。[b]平台[/b]ApachePythonLinux(SuSe)MySQLpsyco,一个动态的Pyth...2007-10-08 14:47:05 · 274 阅读 · 0 评论 -
CLRS笔记6:堆排序
终于搞明白堆排序了,汗一个 :cry: [b]先上代码:[/b][code="ruby"]def heapify(a, idx, size) left_idx = 2 * idx + 1 right_idx = 2 * idx + 2 bigger_idx = idx bigger_idx = left_idx if left_idx < size && a...原创 2008-11-19 21:14:11 · 101 阅读 · 0 评论 -
深入理解计算机系统13,并发编程
一个并发程序是由在时间上重叠的一组逻辑流组成的三种不同的构建并发程序的机制:进程、I/O多路复用和线程进程是由内核自动调度的,而且因为它们有各自独立的虚拟地址空间,所以要实现共享数据,它们需要显示的IPC机制事件驱动程序创建它们自己的并发逻辑流,这些逻辑流被模型化为状态机,用I/O多路复用来显示地调度这些流因为程序运行在一个单一进程中,所以在流之间共享数据速度很快而且很容易...原创 2008-11-14 14:52:32 · 100 阅读 · 0 评论 -
深入理解计算机系统10,虚拟存储器 垃圾收集器
虚拟存储器是对主存的一个抽象支持虚拟存储器的处理器通过使用一种叫虚拟寻址的间接形式来使用主存处理器产生一个虚拟地址,在被发送到主存之前,这个地址被翻译成一个物理地址从虚拟地址空间到物理地址空间的地址翻译要求硬件和软件紧密合作专门的硬件通过使用页表来翻译虚拟地址,而页表的内容是由操作系统提供的虚拟存储器的三个重要功能:1,它在主存中自动缓存最近使用的存放磁盘上的虚拟地址空...原创 2008-11-13 14:17:46 · 110 阅读 · 0 评论 -
为什么要读好的框架或软件的源码?
我读了Rails的源代码,但是目的仅止步于加深对Rails API的熟悉和底层机制的了解,利于我以后更有效的使用Rails开发程序和必要时刻Hack Rails的源码。但是今天UI Manager给我们上了一课,读读Jive、JIRA、LumaQQ的源码,将目的树立为学习架构设计、OOD和设计模式。以前看《面向对象的软件设计》和阎宏博士的大砖头书《Java与模式》,但是看了就忘了,...2008-04-01 18:07:52 · 159 阅读 · 0 评论 -
深入理解计算机系统笔记 2,信息的表示和处理
计算机将信息编码为位(比特),通常组织成字节序列。有不同的编码方式用来表示整数、实数和字符串。不同的计算机模型在编码数字和多字节数据中的字节顺序上使用不同的约定。C语言被设计成包容多种不同字长和数字编码的实现。虽然高端机器逐渐开始使用64位字长,但是目前大多数机器仍使用32位字长。大多数机器对整数使用二进制补码编码,而对浮点数使用IEEE编码。在位级上理解这些编码,并且理解算术运算的数学特...原创 2008-10-15 13:01:46 · 91 阅读 · 0 评论 -
深入理解计算机系统笔记 1,计算机系统漫游
让我们以一个hello程序为例:[code]#include int main(){ printf("hello, world\n");}[/code][b]1.1 信息就是位+上下文[/b]hello程序的生命周期是从源程序hello.c开始的该源程序实际上就是一个由0和1组成的位(比特)序列,每8个一组,称为字节大部分现在系统使用ASCII...原创 2008-10-14 13:46:04 · 83 阅读 · 0 评论 -
深入理解计算机系统笔记 0,序言
本书适合那些想要写出更快、更可靠程序的程序员阅读。通过掌握程序是如何映射到系统上,以及程序是如何执行的,读者能够更好的理解程序的行为为什么是这样的,以及效率低下是如何造成。粗略来看,计算机系统包括处理器和存储器硬件、编译器、操作系统及网络互联环境。而通过程序员的视角,读者可以深深地体会到学习计算机系统的内部工作原理会对他们今后作为计算机科学研究者和工程师的工作有进一步的帮助。它还有助于为进一步...原创 2008-10-13 15:29:25 · 122 阅读 · 0 评论 -
与iTechTag一起学习如何加快HTML页面加载速度
[url=http://developer.mozilla.org/cn/docs/Tips_for_Authoring_Fast-loading_HTML_Pages]Tips for Authoring Fast-loading HTML Pages[/url]iTechTag实在很慢,人家财帮子就快多了,所以希望和你一起学习下Mozilla这篇如何加快页面加载速度的文章[b]...2007-10-19 12:31:56 · 85 阅读 · 0 评论 -
Load Balancing
基于Shared Nothing Architecture做Load Balancing,遵循REST的无状态模型,不用考虑Sticky Sessions[b]一、DNS Load Balancing[/b]DNS Load Balancing是最简单的方式,它将相同域名解析到不同IP由于TTL和缓存时间,DNS不能实时更新clusters的更改DNS方式很难自定义配置bala...2007-10-18 14:31:01 · 130 阅读 · 0 评论 -
Shared Nothing Architecture与PHP的童话
PHP的发明者Rasmus Lerdorf同时也发明了SNA(shared nothing architecture)的概念什么意思呢?对Web Servers做scaling时如果将session等状态保持在各个节点上,这样状态的复制就很成问题,所以SNA告诉你在节点上不要保存状态,session这种东西可以存在数据库或内存缓存中嘛,然后cookie或URL中带一个加密strin...2007-10-18 12:10:19 · 80 阅读 · 0 评论 -
Google架构学习
原文:[url=http://www.highscalability.com/google-architecture]Google Architecture[/url]Google是伸缩性的王者。Google一直的目标就是构建高性能高伸缩性的基础组织来支持它们的产品。[b]平台[/b]Linux大量语言:Python,Java,C++[b]状态[/b]在2006...2007-10-10 16:33:04 · 362 阅读 · 0 评论 -
Twitter架构学习
原文:[url=http://www.highscalability.com/scaling-twitter-making-twitter-10000-percent-faster]Scaling Twitter: Making Twitter 1000 Percent Faster[/url]Twitter是目前为止最大的Ruby on Rails应用,几个月间页面点击由0增长到几百万,...2007-10-09 11:56:09 · 108 阅读 · 0 评论 -
On Designing and Deploying Internet-Scale Services
On Designing and Deploying Internet-Scale Services[b]Three simple tenets[/b]1. Expect failures2. Keep things simple3. Automate everything[b]1. Overall Application Design[/b]1. Design f...2008-05-20 11:50:02 · 66 阅读 · 0 评论