并发策略可以解决延迟
Concurrency Hides Latency一文从硬件谈到Web应用,提出“性能问题在数据,而不是代码”的观点。
作者以一篇硬件设计为例子:Brian Goetz在Devoxx09的演讲:The Concurrency Revolution: The Hardware Story(并发革命:硬件的故事)中提出“concurrency hides latency并发策略可以解决延迟”。作者认为这个道理在目前开发领域也具有普遍意义。
在硬件领域,CPU性能非常快,而内存相对慢一些,这样,硬件设计人员一直在努力减少内存延迟对计算机性能的影响。
而在Web应用领域,服务器端也存在很多延迟,因此我们在客户端做很多事情,然后通过AJAX异步调用服务器延迟后的处理结果(banq注:切身体会案例Domain Events异步应用)。比如数据库就存在处理延迟(性能比较慢),这样我们可以通过事件驱动架构EDA并发开启多个事务同时处理,隐藏了延迟带来的性能影响。
performance is about data, not code ,性能是数据的问题,不是代码问题,作者亲身经历多个软件系统的性能是由其数据访问架构决定的,相对来说:无论你采取如何自然或者优化的方式,从数据库获取数据都是耗时昂贵的,所有这一切意味着,一个关键的设计问题就是数据访问模式和应用程序使用的数据结构。
如果你需要一个快速的应用, 数据是你主要关心的, 你能够通过使用并发计算来战胜延迟。(这符合我的'独特'见解:虽然并行计算(并发策略的意思)不一定是异步,但是异步思维首先是并行计算(并发策略的意思)的开始,伸缩性和可用性反模式)。
[该贴被admin于2009-12-14 11:09修改过]