深入理解计算机系统之旅(五)优化程序性能

1、前言

好的算法和数据结构在编写高性能的程序时固然重要,但是却不是全部,如果我们想要写出性能更好的程序就需要了解编译器是否如何工作和优化我们的代码的,当然并不是要求所有的程序员都去了解和掌握此技能,仅仅对程序性能要求比较苛刻在现有情况下已经无法通过其他方法优化的情况下才会凸显重要性。

未完待续

时间: 2024-09-30 15:37:36

深入理解计算机系统之旅(五)优化程序性能的相关文章

深入理解计算机系统之旅(三)程序的机器级表示

1.前言 我们在使用高级语言比如C语言.OBjective-C以及Java等编写程序时,我们被屏蔽了程序的具体机器级的实现,这个屏蔽的工具就是编译器(Java是解释执行,但是它同样也需要将文本的源码进行一定的翻译,转换为字节码). 未完待续

深入理解计算机系统之旅(一)计算机系统漫游

1.计算机系统是什么? 我们直观的可以看到的计算机系统就是一台电脑,包括主机.显示器.键盘鼠标,然后显示器上会显示不同界面,用鼠标点击,键盘输入界面就会相应操作. 2.深入一点,他们是如何工作的? 计算机系统是由硬件和系统软件组成,它们共同工作来运行应用程序. 3.再深入一点,硬件是什么?系统软件是什么?应用程序是什么? 硬件是组成计算机系统的基础,大家耳熟能详的就是CPU.内存.硬盘.主板等. 系统软件是运行在硬件之上的一层控制软件,就是我们经常听到的Windows XP.WIN7.Linux

深入理解计算机系统之旅(二)信息在计算机中的表示和处理

1.前言 计算机只能处理和认识0和1,但是0和1的位数多了,就能对现实世界的各种信息进行编码,同样的0和1的序列在不同场景和上下文中的意义也不尽相同,所以通过一定的规则进行合理的编码和解码,然后就能将现实世界的信息放在计算机中运算和处理,最后按照预先设定好的程序将结果反馈给用户. 2.信息的存储 3.整数的表示 4.整数的运算 5.浮点数(小数) 6.小结 未完待续

深入理解计算机系统之旅(四)处理器(CPU)的体系结构

1.前言 处理器是非常复杂的系统,它不是一蹴而就的,它是经过不断的升级.更新.设计之后的产物,并且现在还在保持着不断的更新. 处理器只能执行一系列的指令,每条指令都只是执行某个简单的操作,比如数字相加.指令同样也需要被编码,这些编码是由一定规则的0和1的二进制位组成,这些指令编码的统称就是处理器的指令集. 未完待续

深入理解计算机系统-之-内存寻址(五)--页式存储管理

前景回顾 前面我们讲解了操作系统段式存储管理的主要内容. 32位,在保护方式下,其能够访问的线性地址空间可达4GB,而且允许几乎不受存储空间限制的虚拟存储器程序.虚拟存储器地址空间能够可达64TB.它还提供了复杂的存储管理和硬件辅助的保护机构和增加了支持多任务操作系统的特别优化的指令.实际上,64TB的虚拟地址空间是有磁盘等外部存储器的支持下实现的.在编写程序是可以放在磁盘存储器上,但在执行时,必须把程序加载到物理存储器中.而存储器管理就是要将46位虚拟地址变换成32位物理地址. 将程序分成不同

ASP.NET程序性能优化五则

asp.net|程序|性能|优化 一.使用存储过程: 1.性能方面:存储过程提供了许多标准sql语言中所没有的高级特性.其传递参数和执行逻辑表达式的功能,有助于应用程序设计者处理复杂任务.另外,存储过程存储在本地服务器上,减少了执行该过程所需的网络传输宽带和执行时间.(存储过程已经对sql语句进行了预编译,所以其执行速度比在程序里执行sql语句快很多) 2.程序结构方面:从程序的可扩展性看,使用存储过程会对程序以后的修改带来方便.比如数据库的结构改变了,只需修改相对应的存储结构,和程序中的调用部

深入理解计算机系统-之-数值存储(二)--C程序打印变量的每一字节或者位

大端与小端 前面我们提到了依据CPU端模式的不同,数据的存储顺序也不一样. 采用大小模式对数据进行存放的主要区别在于在存放的字节顺序,BE big-endian 大端模式 ,最直观的字节序 ,地址低位存储值的高位,地址高位存储值的低位 ,不需要考虑对应关系,只需要把内存地址从左到右按照由低到高的顺序写出 ,把值按照通常的高位到低位的顺序写出 ,两者对照,一个字节一个字节的填充进去 LE little-endian 小端模式,最符合人的思维的字节序,地址低位存储值的低位,地址高位存储值的高位 ,怎

Java程序性能优化

一.避免在循环条件中使用复杂表达式 在不做编译优化的情况下,在循环中,循环条件会被反复计算,如果不使用复杂表达式,而使循环条件值不变的话,程序将会运行的更快. 例子: import java.util.vector; class cel { void method (vector vector) { for (int i = 0; i < vector.size (); i++) // violation ; // ... } } 更正: class cel_fixed { void metho

java 程序性能优化《第二章》设计优化 2.1善用设计模式 1 单例模式

java 程序性能优化<第二章>设计优化 2.1善用设计模式 1 单例模式 设计模式是前人工作的总结和提炼.通常,被人们广泛流传的设计模式都是对某一特定问题的成熟的解决方案.如果能合理的使用设计模式,不仅能使系统更容易被他人理解,同时也能使系统拥有更加合理的结构.本节总结归纳了一些经典的设计模式,并详细说明它们与软件性能之间的关系. 2.1.1 单例模式 单例模式是设计模式中使用最为普遍的模式之一.它是一种对象创建模式,用于生产一个对象的具体实现,它可以确保系统中一个类只产生一个实例.在Jav