我知道它们是什么:
在命令式编程语言中,您可以告诉编译器您希望逐步执行的操作,而在声明性语言中,您可以编写描述结果但不一定如何实现所需结果的代码。
但是,我不知道使用任何一种编程语言的优化。除此之外 - 是否涉及任何并发症?例如,运行以任一语言开发的程序需要空间/时间。
答案 0 :(得分:2)
Comparison of programming paradigms WikiPedia页面的性能比较部分几乎涵盖了您通常所要求的内容。
纯粹在总指令路径长度方面,编码的程序 一个命令式的风格,根本就没有使用任何子程序 最低的数量。但是,这样的程序的二进制大小可能是 大于使用子程序编码的相同程序(如在函数中 和程序编程)并会引用更多“非本地” 物理指令可能会增加缓存未命中和增加 现代处理器中的指令获取开销。
广泛使用子程序的范例(包括功能, 程序性和面向对象的)并且也不使用重要的 因此,内联(通过编译器优化)将使用a 子程序链接上总资源的百分比更大 他们自己。面向对象的程序,不会故意改变 直接编程状态,而不是使用mutator方法(或“setter”) 封装这些状态变化,作为直接后果, 有更大的开销。这是由于消息传递的事实 本质上是一个子程序调用,但还有三个额外的 开销:动态内存分配,参数复制和动态 调度。从堆中获取内存并复制参数 消息传递可能涉及远远超过的重要资源 国家所需的那些改变了。访问者(或“获取者”) 仅返回私有成员变量的值也取决于 在类似的消息传递子例程,而不是使用更多 直接分配(或比较),增加总路径长度。
......它继续