我认为明显的优点是可维护性,程序员友好性等,但有哪些缺点?
编译器是否需要进行额外的工作才能转换到可能不需要的位置?
由于上述缺点,是否存在低级语言更适合某项任务的情况?
答案 0 :(得分:1)
简而言之:由于非常具体的优化,低级语言可以产生更好的性能。
低级语言的优点:
高级语言的缺点:
这里有更详细的LLL优势列表:
- 您可以访问与机器相关的寄存器和I / O
- 您可以控制关键部分中的确切代码行为,否则可能会涉及多个软件线程之间的死锁或 硬件设备
- 你可以打破常规编译器的约定,这可能允许一些优化(比如暂时违反关于
的规则 内存分配,线程,调用约定等)- 您可以使用不兼容的约定在代码片段之间构建接口(例如,由不同的编译器生成,或者由分隔的 低级接口)
- 您可以访问处理器的异常编程模式(例如,16位模式,以接通启动,固件或遗留代码) 英特尔PC)
- 你可以为紧密循环生成相当快的代码来应对糟糕的非优化编译器(但是,有免费的优化) 编译器可用!)
- 您可以生成针对您的特定硬件设置完美调整的手动优化代码,但不是为了其他人的
- 你可以为你的新语言的优化编译器编写一些代码(这是很少有人会做的事情,甚至他们也没有 常)
- 即。您可以完全控制您的代码
答案 1 :(得分:0)
不自己分配内存是一回事。语言背后的程序员创建垃圾收集器,他们有时(大部分)会给你大量的内存。
以JavaScript为例。如果你var arr = array(501);
,它可能会给你600字节,或1000甚至更多。
对于低级程序,如嵌入式设备上的操作系统或视频游戏(PS4上的游戏等),内存是VITAL。因此,您无法承担比您需要的更多空间。