标签:#软件优化

共 11 篇文章

快速路徑

在程式設計中,快速路徑()是指在一個程式中比起一般路徑有更短的路徑。有效的快速路徑會在處理最常出現的的情形上比一般路徑更有效率,讓一般路徑處理特殊情形、邊角情形、錯誤處理與其它反常狀況。快速路徑是的一種形式。 例子 在以下的 UTF-8 解碼的程式碼中: / 改編程式碼 / if (_s > 8) & 0xFFu); _p[2] = ((value >> 16) & 0xFFu); _p[3] = ((value >> 24) & 0x…

增量计算

增量计算(),又称增量计算法,是一种软件特性。当部分数据变化时,增量计算试图仅重新计算那些依赖于变化的数据的输出,以节省计算时间。 相比于简单地重新计算完整的输出内容,增量计算能够显著地节省计算时间。 比如,电子表格的重计算功能可能会采用增量计算的方式,只有当单元格含有的公式直接或间接依赖于发生变化的其他单元格时,该单元格才会被更新。 当一个工具能够自动地为各种不同的代码实现增量计算时,该工具可被视为一种用于优化的程序分析工具。 静态实…

代码膨胀

代码膨胀()一般指程序代码(可以是源代码,也可以是机器代码)生成的程序文件过大、运行缓慢或者有其他浪费资源的情况,也可以指编译后的代码或者二进制文件占用空间过大(体积膨胀)。代码膨胀可能由编写代码的语言、编译时所用的编译器,或者编写的程序员导致。 产生原因 通常来说,膨胀的代码是由于程序员使用了较多的代码行(并且大部分是无用或低效的),而非使用了解决问题的最佳方案。 程序员写出膨胀代码的部分原因有: 过度设计: 过度使用面向对象(OOP…

电脑瓶颈

在软件工程或電子計算機領域,当应用程序或计算机操作系统的運行速度受到電腦单个零部件或组件的限制时,就会出现瓶颈,就像瓶子的颈部减缓了整体水流速度一样。如果某个组件相对于其他组件的执行速度过快,系统或应用程序就会遇到瓶颈。中央处理器、顯卡和碟盤存儲等都有可能造成瓶頸。由于总有一个组件限制了整体性能,所以通常改善瓶頸的措施是改进瓶颈组件,使整个電腦能够达到预期的性能。 参考文献

寫入時複製

寫入時複製(,简称COW)是一种计算机程式設計領域的优化策略。其核心思想是,如果有多個呼叫者(callers)同時请求相同資源(如内存或磁盘上的数据存储),他們會共同取得相同的指標指向相同的資源,直到某個呼叫者试图修改資源的内容時,系統才會真正複製一份专用副本(private copy)給該呼叫者,而其他呼叫者所见到的最初的资源仍然保持不变。這過程對其他的呼叫者都是的。此作法主要的優點是如果呼叫者沒有修改該資源,就不會有副本(priva…

零复制

零复-{}-制(;也译零拷-{}-贝)技术是指计算机执行操作时,CPU不需要先将数据从某处内存复制到另一个特定区域。这种技术通常用于通过网络传输文件时节省CPU周期和内存带宽。 原理 操作系统某些组件(例如驱动程序、文件系统和网络协议栈)若采用零复制技术,则能极大地增强了特定应用程序的性能,并更有效地利用系统资源。通过使CPU得以完成其他而非将机器中的数据复制到另一处的任务,性能也得到了增强。另外,零复制操作减少了在用户空间与内核空间之…

访问局部性

访问局部性()指的是在计算机科学领域中应用程序在访问内存的时候,倾向于访问内存中较为靠近的值。 访问局部性分为两种基本形式,一种是时间局部性,另一种是空间局部性。时间局部性指的是,程序在运行时,最近刚刚被引用过的一个内存位置容易再次被引用,比如在调取一个函数的时候,前不久才调取过的本地参数容易再度被调取使用。空间局部性指的是,最近引用过的内存位置以及其周边的内存位置容易再次被使用。空间局部性比较常见于循环中,比如在一个数列中,如果第3个…

时空权衡

计算机科学中的时空权衡(,又叫空间换时间)是指一个算法或程序用增加空间使用量来换取时间减少的情况。这里,空间指的是执行一个给定任务所消耗的数据存储(内存、硬盘等),而时间指的是执行一个给定任务所消耗的时间(计算时间或反應時間)。 一个给定的时空权衡的效用受到相关的固定和可变成本(如CPU速度、存储空间)的影响,并受到收益递减的影响。 历史 在动物行为的早期阶段,可以看到时空权衡的生物学用途。使用储存的知识或将刺激反应编码为DNA中的“本…

算法效率

计算机科学中,算法效率是算法的一种属性,算法效率与算法使用的计算资源量的大小有关。分析算法以确定其资源使用情况,即可根据不同资源的使用情况来衡量算法的效率。算法效率可以被认为类似于某个重复或持续过程的生产力大小。 为获得最大效率,一般希望能够尽量减少资源使用量。然而,时间复杂度和空间复杂度等不同的资源不能直接比较,因此通常两种算法中哪一种更有效率取决于哪种效率计量被认为是最重要的。 例如,冒泡排序和Timsort都是将一个列表中的每一项…

程式優化

在電腦科學中,程式優化、代碼優化或軟體優化是修改軟體系統以使其某些方面運行得更高效或使用更少資源的過程。 一般來說,電腦程式可以被優化以更快速執行,或減少記憶體存儲或其他資源的使用,或者降低功耗。 概述 雖然「優化」(Optimization)一詞源自「最佳」(Optimum),但在實際操作中實現最佳化的系統極為罕見,這通常被稱為超優化(Superoptimization)。程式優化通常專注於針對特定的品質指標進行改進,而非讓系統在所有…

性能分析

在软件工程中,性能分析(performance analysis,也称为profiling),是以收集程序运行时信息为手段研究程序行为的分析方法,是一種的方法。 性能分析量測像是程式的空間或時間複雜度、、函式呼叫的頻率及執行時間等。性能分析的目的在于决定程序的哪个部分应该被,从而提高程序的速度或者内存使用效率。 性能分析可以由程式的源代碼或是可執行檔進行。一般會使用稱為性能分析工具(profiler)的工具進行。性能分析工具會使用許多不…