首页 > 编程语言 >CSAPP学习笔记——chapter5 优化程序性能

CSAPP学习笔记——chapter5 优化程序性能

时间:2024-01-30 21:45:16浏览次数:31  
标签:CSAPP chapter5 性能 程序 笔记 编译器 优化

编写高效程序需要做到以下几点:第一,我们必须选择一组适当的算法和数据结构第二,我们必须编写出编译器能够有效优化以转换成高效可执行代码的源代码。对于这第二点,理解优化编译器的能力和局限性是很重要的。编写程序方式中看上去只是一点小小的变动,都会引起编译器优化方式很大的变化。有些编程语言比其他语言容易优化。C语言的有些特性,例如执行指针运算和强制类型转换的能力,使得编译器很难对它进行优化。程序员经常能够以一种使编译器更容易产生高效代码的方式来编写他们的程序。第二项技术针对处理运算量特别大的计算,将一个任务分成多个部分,这些部分可以在多核和多处理器的某种组合上并行地计算。我们会把这种性能改进的方法推迟到第 12 章中去讲即使是要利用并行性,每个并行的线程都以最高性能执行也是非常重要的,所以无论如何本章所讲的内容也还是有意义的。

标签:CSAPP,chapter5,性能,程序,笔记,编译器,优化
From: https://www.cnblogs.com/curiositywang/p/17998046

相关文章

  • 【侯捷C++面向对象笔记】补充5-new & delete重载
    平时所使用的new和delete操作,称之为表达式,一般由好几个步骤组成。如上图所示,new表达式会被编译器转化为三个步骤。new表达式不能重载,但其中operatornew是可以重载的。➡️全局::operatornew的重载why不能放在namespace内?因为全局operatornew是放在defaultglobalnamespac......
  • openGauss学习笔记-211 openGauss 数据库运维-高危操作一览表
    openGauss学习笔记-211openGauss数据库运维-高危操作一览表各项操作请严格遵守指导书操作,同时避免执行如下高危操作。211.1禁止操作表1中描述在产品的操作与维护阶段,进行日常操作时应注意的严禁操作。表1禁用操作操作名称操作风险严禁修改数据目录下文件名,权限,......
  • 【侯捷C++面向对象笔记】补充2-pointer-like & function-like class
    关键词:仿函数pointer-like:将一个类设计得像指针一样,通常通过重载*和->操作符实现。function-like:将类的成员设计得能像函数一样使用,通过重载()操作符实现。TipDemo应用:智能指针注意:->符号在作用一次后,会继续作用下去(不同于*号)Foof(*sp):f为一个Foo对象本体,使用时f.m......
  • 【侯捷C++面向对象笔记】补充3-template
    关键词:类模板,函数模板,成员模板,模板特化“泛化”和“特化”TipDemo类模板定义时需要显式地指定类型名。函数模板定义时编译器自动进行实参推导类型(但不提供隐式转换)。成员模板:模板中还包含模板模板(全)特化格式:template<>尖括号内为空模板偏特化(partia......
  • 【侯捷C++面向对象笔记】补充4-object model
    关键词:虚函数表,动态绑定,多态每个对象都维护自己的虚表指针,指向类的虚函数表。(所以对象的size比其包含的所有数据size多4,即虚指针大小)➡️动态绑定:(多态的实现原理)通过指针p找到对象c的vptr通过vptr找到classC的vtbl在vtbl中找到第n个虚函数并调用➡️子类调用父类函数隐......
  • 小书匠发布笔记到博客园
    小书匠发布笔记到博客园小书匠博客园发布要把小书匠里面写的markdown笔记发布到博客园中,需要做如下的设置。一、设置元数据下面是我这个笔记的元数据设置。这里面,title是笔记的标题,tags是笔记的标签,renderNumberedHeading:true表示自动对标题进行编号,grammar_cjkRuby:t......
  • 【侯捷C++面向对象笔记】String类
    关键词:动态内存分配,拷贝赋值,new/delete与Complex类最大的差别:有动态分配的内存空间(char*m_data)TipDemo拷贝赋值函数的一般结构拷贝赋值时,检测自我赋值非常重要自己的内存已经释放了,还怎么把自己赋给自己?new时做了什么?1.分配内存2.static_cast为相应类型指针......
  • manacher 学习笔记
    定义与基本求法定义又名马拉车,用于处理子串回文问题。基本求法暴力判断每个子串是否是回文是\(O(n^3)\)的,根据其对称性优化为\(O(n^2)\)依旧是不优秀的。马拉车便是解决这种单一问题的算法,具有局限性,但同时是解决这种问题的不二选择。枚举回文串的中点,例如\(aaba......
  • Kali学习笔记-01-安装Kali Linux2
    Kali学习笔记-01-安装KaliLinux2KaliLinux网络安防使用的VMWare版本信息如下:kaliLinux下载网页是https://www.kali.org/get-kali/#kali-virtual-machines。在页面上选择VMware64位版本下载。下载之后得到一个.7z的压缩文件,名字为kali-linux-2023.4-vmware-amd64.7z,解压缩......
  • Android开发笔记[8]-基于Compose布局的开屏页
    摘要基于Compose布局的开屏页,显示进度条;自动跳转到其他页面.关键信息AndroidStudio:ElectricEel|2022.1.1Patch2Gradle:distributionUrl=https://services.gradle.org/distributions/gradle-7.5-bin.zipjvmTarget='1.8'minSdk21targetSdk33compileSdk33开......