2021-06-03 13:10发布
各位朋友们好,
我想了解一些与编程相关的技巧。
编写高效、快速的代码意味着什么?
如何快速高效地编写代码?
有人能告诉我一些关于如何编写高效代码的技巧吗?
编写快速或高效的代码意味着使用执行任务所需的最少指令数。每条指令被分配一个固定数目的时钟周期来执行其功能。为了做到这一点,你必须密切了解机器的指令集。在稍高的层次上,当使用编程语言lice C时,您需要了解编译器如何生成机器指令的内部信息,以便评估可选的编码策略。很久以前,这是一个非常重要的练习,当时机器时间为每小时1000.00美元,程序员每小时的工作价格为2.25美元。现在你可以用1000.00美元买到比我们1962年设计的电脑更强大的电脑了,而一个普通的程序员每小时赚75.00美元(150,000.00美元/年),我们满足于让廉价的机器浪费掉时间,这样你就不用再浪费时间了。
正如楼上所指出的,现在已经发生了变化。虽然编写内核代码的人可能仍然在编写指令,但“高效代码”现在与重用和维护有关。在当前环境中,易于阅读、注释良好和适当模块化的代码才是“高效的”。
我想我们在编程过程中使用良好的控制结构、数据结构和算法的代码也很重要。我们今天不太担心处理器的时钟周期和速度,但增加不必要的代码处理是没有必要的。
是的,我想说...编写高效的代码与编写易于阅读的代码不同。 有时,编写高度紧凑的代码提升的效率很少,进而牺牲代码的易读性是没有必要的。
接下来要注意的是熟悉各种通用算法。举个例子,你知道最快的排序方法吗?设置时间和执行时间之间存在相互作用,这使得选择变得不明显。
如前所述,在程序的效率和程序员的效率之间有一种权衡。
在考虑程序的效率时,必须考虑高度迭代过程的最内部循环。这是CPU将花费大部分时间的地方。
计算机图形程序的内环是花费大量时间的地方,例如从(x1,y1)到(x2,y2)之间画一条线。
最初的Apple Macintosh电脑上的原始图形功能是由比尔·阿特金森(BillAtkinson)创建的,名为QuickDraw。这是从Lisa计算机上的一个早期版本LisaGraf派生出来的。比尔用帕斯卡写了函数。然后,为了压缩程序的最大效率,最基本的核心是用68000汇编程序编写的。
有趣的是,我要提到Bresnehan的算法,作为提高代码效率的一个例子。
我为PDP-11编写了一个图形包,它使用了该算法,但将一行代码“编译”到内存中,以便增量和测试是编码中的常量,以节省几个周期。
最多设置5个标签!
正如楼上所指出的,现在已经发生了变化。虽然编写内核代码的人可能仍然在编写指令,但“高效代码”现在与重用和维护有关。在当前环境中,易于阅读、注释良好和适当模块化的代码才是“高效的”。
我想我们在编程过程中使用良好的控制结构、数据结构和算法的代码也很重要。我们今天不太担心处理器的时钟周期和速度,但增加不必要的代码处理是没有必要的。
是的,我想说...编写高效的代码与编写易于阅读的代码不同。 有时,编写高度紧凑的代码提升的效率很少,进而牺牲代码的易读性是没有必要的。
接下来要注意的是熟悉各种通用算法。举个例子,你知道最快的排序方法吗?设置时间和执行时间之间存在相互作用,这使得选择变得不明显。
如前所述,在程序的效率和程序员的效率之间有一种权衡。
在考虑程序的效率时,必须考虑高度迭代过程的最内部循环。这是CPU将花费大部分时间的地方。
计算机图形程序的内环是花费大量时间的地方,例如从(x1,y1)到(x2,y2)之间画一条线。
最初的Apple Macintosh电脑上的原始图形功能是由比尔·阿特金森(BillAtkinson)创建的,名为QuickDraw。这是从Lisa计算机上的一个早期版本LisaGraf派生出来的。比尔用帕斯卡写了函数。然后,为了压缩程序的最大效率,最基本的核心是用68000汇编程序编写的。
有趣的是,我要提到Bresnehan的算法,作为提高代码效率的一个例子。
我为PDP-11编写了一个图形包,它使用了该算法,但将一行代码“编译”到内存中,以便增量和测试是编码中的常量,以节省几个周期。
一周热门 更多>