作者apflake (长风破浪)
看板CSSE
标题Re: [问题] 关於软体工程方面的问题
时间Tue Oct 11 16:07:02 2005
※ 引述《pobanetra (囧rz)》之铭言:
: 小弟我不是学CS的
: 对程式的运用仅止於作系统模拟或数值分析
: 有的时候再跑程式
: 往往会觉得自己写的程式performce不是很好
: 不知道软体工程内有没有提到增进程式效能的方法?
: 小弟我只知道减少loop的比率会让程式更有效率
: 可是往往却不得不用大量的loop
这部份不算软体工程的范围, Compiler或是CPU的最佳化太过低阶,
要花的功夫太大, 很难说效能可以改进多少.
比较合理的, 可以实践的还是资料结构和演算法设计, 一般来说处
理大量资料状况下的瓶颈在虚拟记忆体的搬移, 假设有1G的资料,
不可能一次配置1G的记忆体, 然後寄望作业系统帮你处理掉所有记
忆体管理的问题, 要看你处理资料的性质自己设计适当的资料结构,
做一部份记忆体的管理.
程式设计上可考虑, 系统内部有多层次Cache, 处理的资料集中在
local部份可以透过Cache比较快, 越少page fault也会越快, 如果
大量用到硬碟上的虚拟记忆体就要再慢上数十倍, 所以资料结构和
记忆体管理配合计算的性质就很重要.
资料结构和演算法里面有专章讨论演算法的计算复杂度, 也就是程
式处理资料的效率问题, 所讨论的排序, 搜寻, 演算法, 很多东西
都是效率相关的, 例如 divide and conquer概念, 外部排序等等
可能有些帮助..
--
人人心中都有一个玉娇龙
人人心中都有一个绿巨人
人人心中都有一座断背山
▁▂▃▄▅▄▃▂▁▁▂▃▄▅▆▇▆▅▄▃▂
▁▂▃▄▅▆▇███████████▇▆▅▄▃▂▁██████
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.175.235.191