在Hack / PHP中分析静态类型与动态类型

时间:2018-07-21 21:51:59

标签: profiling dynamic-languages hacklang static-language

我正在使用Hack,并且试图找出“如果键入代码,代码运行速度会更快”,因为该语言将支持动态和静态类型,具体取决于文件的标头。

您将运行哪些测试来查看两者之间的效率差异?

1 个答案:

答案 0 :(得分:3)

Facebook Research的

A recent paper描述了HHVM JIT的当前状态(强调了我的意思):

  

§2.1 [Hack的]更丰富的类型提示   只能由静态类型检查器使用,而由HHVM运行时丢弃。   类型提示在运行时是Hack的渐变类型系统是   不健全。静态类型检查器是乐观的,它会忽略   语言的许多动态功能。因此,即使   程序类型检查,可以观察到不同的类型   运行。

本文继续说明JIT如何使用类型信息来优化程序,但目前,类型信息并非来自类型提示。仍然是一本好书,因为您似乎对HHVM的性能投入很大。我还想指出,基于类型提示has been requested for some time进行优化,这表明这种优化不会很快出现。