hupflupper
2022-04-10T10:45:18+00:00
看了点编程教程,有一个问题,如果要写一段代码,有什么办法去提高性能或者优化它?
代码的行数对性能有影响吗,是不是应该尽可能去压缩代码的行数?
代码行数是影响最小的吧,最简单的对比一下各种排序算法
用行数评价代码,等于用重量评价船。[s:dt:笑3]
这个问题展开来说就太复杂了……但总体来说需要你对计算机体系结构有一个完整的认知。CPU流水线、内存缓存机制、网络与硬盘IO、进程线程调度、编译器优化、通信与同步,都得有概念。
楼上说的时间复杂度也是一点,不过只是最基本的,很多性能问题还真不是时间复杂度那么简单。
[quote][tid=31495669]Topic[/tid] Post by [uid=61403825]香喷喷火辣辣[/uid] (2022-04-15 18:54):
看了点编程教程,有一个问题,如果要写一段代码,有什么办法去提高性能或者优化它?
代码的行数对性能有影响吗,是不是应该尽可能去压缩代码的行数?[/quote]优化性能需要你对计算机本身的工作原理有一定的了解,是一个比较系统的工程,推荐一本书叫性能之巅,基本涵盖了可以优化的一些方向。
查询,插入,修改,这些不同功能用同一个数据结构都有不同时间复杂度的
Reply to [pid=603383352,31495669,1]Reply[/pid] Post by [uid=62677235]该账号声望不足[/uid] (2022-04-15 18:56)
光看数据结构和算法,看完也不会懂。这方面的书都是讲内存算法的,而且习惯性只强调时间复杂度不讲常数。
最基本的:斐波那契堆和普通的二项堆谁快?插入排序和快速排序谁快?
最主要是算法,直观评价标准就是时间复杂度,空间复杂度。
再底层一点就是考虑缓存的读写特性
[s:ac:汗] 你这种提问方式,在编程学习里属于一种无效问题,因为太宽泛了……具体一点,什么语言,运行在什么平台,系统什么配置,做什么样的业务
不要过度优化
绝大部分地方都对性能没什么影响
严重影响性能的都是一些关键点
代码行数和性能无关
先看算法的复杂度
优化完了之后再看数据IO
然后再搞的话恐怕就要调汇编了吧
不像算法之类的 ,,现在好多辣鸡程序都在重复执行。。。