自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 资源 (6)
  • 收藏
  • 关注

原创 The essense of the software atchitecture

Normal 0 7.8 pt 0 2 false false false MicrosoftInternetExplorer4 <!-- /* Font

2009-07-26 20:55:00 863

原创 原理篇-多线程

要点:多线程是一项重要的技术。理解线程的调度机制,线程切换的代价,以及多线程的同步,才能设计出高效的多线程应用。讨论:线程就其本质是一个CPU的时间片。定时器产生一个中断,这个中断将CPU的控制权转移到OS的线程调度程序,OS根据调度规则将线程队列里的最合适线程调出,恢复该线程的上下文(context),也就是该线程上次被切换前的寄存器。中断结束,该线程就开始运行,直到下次中断,OS开始另一次调度

2008-08-24 22:42:00 1507

原创 模块篇-数据结构

要点:    理清数据流和控制流,确定模块的瓶颈,选择更优的算法,设计局部性和并行性友好的数据结构.讨论:    这里谈到的模块是系统中相对独立的一个模块,如Player中的视频解码器.对模块的全局思考与架构的全局思考类似,都是先要理清数据流和控制流,确定性能瓶颈,以局部性与并行性为基本的优化指导原则.所不同的是架构级的全局思考主要集中在模块间的高效协作,合理分配资源,使得系统总体的perfora

2008-08-24 22:34:00 1124

原创 架构篇-准备工作

 要点:       工欲善其事,必先利其器。在优化前必须做好一些准备工作,尤其是工具的准备。包括测试集(test suite),日志(log),性能评估工具(profiler),源码阅读工具,版本控制工具等。讨论:       在开始优化前,必须准备好工具。这不仅能提高工作效率,而且是保证优化朝着正确方向前进的必要条件。1,  测试集(test suite)测试集包括测试

2008-08-07 00:51:00 765

原创 架构篇-全局的设计考虑

 要点:    架构师首先应该从用户的角度看软件的performance(表现)。在架构设计上,接口应该足够灵活,对软件的performance(性能)参数能够动态调整,以期达到一定自适应的效果。同时总体的架构设计应该考虑到移植性。讨论:优化绝对不是为了技术优化而优化。架构师首先要清楚软件所要达到的用户期望目标。这里以一个OMAP850(200MHZ ARM926EJ CPU)上的

2008-08-07 00:47:00 849

原创 原理篇-算法

 要点:算法对于软件的性能是有决定性影响的。算法实现的优化就是要充分应用硬件和操作系统的特性,设计合理的数据结构,使得各个模块具有高度的局部性,模块间具有最低的耦合性和最高的并行性。讨论:       算法优化可以分为算法的科学级优化和技术级优化。科学级的优化如快速排序算法,FFT算法,对该问题域都起了革命性的影响。技术级优化是我们普通工程师的主要工作,如对冒泡算法的实现做优化,可

2008-08-07 00:45:00 672

原创 原理篇-CPU

 要点:选择最合适的指令,调整指令布局使其符合流水线处理,尽可能地去除分支以及提高Data Cache的数据读写效率,减少因数据读写带来的流水线停顿,这些都是提高CPU使用性能的关键。 讨论:现代CPU是多级流水线的超标量结构,每个时钟周期可以执行多个操作。CPU可以分为两个部分,一部分是指令控制单元(ICU),另一部分是执行单元(EU)。ICU的取指单元从Instruct

2008-08-07 00:43:00 728

原创 原理篇-内存

 要点:对优化工作来说,内存是最重要的资源。计算机的存储体系是个多级缓存体系。理解并应用缓存是全局算法设计实现和局部代码优化调整的基础。讨论:有人说程序优化就是内存的优化,可见内存在优化中的地位。现代计算机的存储体系是个多级缓存体系,离CPU越近,速度越快,容量越小。寄存器是L1 Cache的缓存,L1 Cache是L2 Cache的缓存,L2 Cache是RAM缓存,RAM是更外

2008-08-07 00:42:00 623

原创 原理篇-局部性与并行性

 概要:局部性原理是计算机系统最重要的理论。也是软件优化的最重要的基础。而系统的并行性,则保证了系统资源的充分使用。最理想的,最高效的软件就是系统的各个部件(CPU,内存,I/O设备等)都充分运转,而彼此间的耦合程度又最低,在合理的算法调度下,相关的软硬件资源都能像流水线一样运作,从而最快最好的完成计算。描述:要理解软件优化,首先对软件要有个本质的认识。软件是什么呢?它是一组在计算机平

2008-08-07 00:38:00 1750

原创 基于ARM平台的高效嵌入式软件开发--前言

                                                         前言                                                        扎在嵌入式多媒体领域6年时间,方方面面的工作都涉猎过。一直有把过去所学总结成文的想法。侯捷老师说过发表是最好的记忆,我觉得很对。总结与思考才能将技术内化为自己的思

2008-08-07 00:30:00 853

原创 软件优化技术真经-框架篇

软件优化是一项系统工程。总体而言,整个优化框架可以分为两个部分:设计优化和代码优化。1,设计优化       设计优化包括了软件体系结构的优化,数据结构的优化,算法的优化。1.1       软件体系结构的优化软件优化首先要对整个软件体系结构有个清晰的了解。在认识了整个软件的目标功能后,围绕这个目标,软件的模块划分,软件的运行流程都要一清二楚。整个软件的“数据流”和“控制流”都要能

2005-10-10 20:28:00 2842

原创 软件优化技术真经-总论篇

       软件优化是一项系统工程。要理解软件优化,首先对软件要有个本质的认识。软件是什么呢?它是一组在计算机平台上运行的逻辑代码。这个概念比较拗口。第一,软件是一组计算机能理解并运行的逻辑代码。第二,软件一定是运行在某个计算机平台上,可能是大型机,可能是PC,可能是手机。好,认识了这两点。就可以正确认识软件优化。首先,软件既然是计算机的逻辑,那么好的软件就是贴合计算机体系结构的

2005-10-09 21:12:00 1581

人工智能2019最新进展.pdf

近两年,人工智能发展迅猛,无论是工作还是生活都在因此发生着转变。那么2019年人工智能将有那些突破性进展呢,下面就和大家分享一下!

2019-12-13

机器学习必备数学

没有数学,你将寸步难行,不服不行,基础必须要扎实。

2019-01-22

数据科学最佳实践32例

最佳实践,不可不读。不管是入门还是参考,都很有价值

2019-01-22

java高级并发编程32例

深度解析java并发机制,Java高级开发,架构师思维导图 Java架构师必备技能,全方位仔细梳理所需各个知识点。让您有更多时间陪家人陪朋友

2019-01-22

H.264 High profile

H.264 High profile 简介

2009-06-30

Software Optimization for High-Performance computing.doc

A good guide of Software Optimization

2008-10-07

空空如也

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

TA关注的人

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