解释语言可以被认为是在模拟核心上运行的汇编程序的变体。它们的堆栈和命令以类似于汇编器的方式工作,但实际上并不是汇编器。它们是虚拟机。
for 循环可以被认为是告诉系统,设置一个值,运行一系列任务,完成后返回并检查该值。如果没有达到阈值,则按照规定的方式进行更改,然后重复这些任务然后再回来。在汇编程序中,你运行得很快,但在“VM”中则不然。考虑一下此链接 13:50 到 15:30 之间的演示:(链接)
这意味着看似 for 循环,实际上并不是 for 循环。它是操作系统中断和虚拟化内存。这是后台的病毒扫描和巨型树懒膨胀软件。
如果您有一个虚拟系统,您能否制定一个不使用虚拟化 for 循环的寻址内存的快捷方式,并且效率相当高?MatLab 试图主攻数据处理,因此它必须在虚拟机中拥有非常有效的存储、排序和选择数据的方法。
MathWorks 不会向公众公开此细节。如果它有一个好主意,那么他们不希望它在 Python 和 R 中实现。如果它有一个平庸的想法,那么他们不想明天在执行中被 Python 和 R 击败。不管怎样,在没有保密协议的情况下向公众提供这种特定方法的具体细节——对他们来说这可能是一个失败的提议。
底线:
值得注意的是,在执行相同的操作时,矢量化代码的性能优于 for 循环。这意味着他们可能会应用更多的内部机制来执行“任务序列”,以提高性能。
| 归档时间: |
|
| 查看次数: |
172 次 |
| 最近记录: |