本次測試matx庫。該庫由字節跳動開源,首先會將要優化的代碼編譯成c++。然后通過編譯c++為擴展的方式,使用他們自己的pipline進行調用。
優點:近乎于擴展的速度,近乎0學習成本。只要將變量類型進行定義即可
缺點:數字類型最多只支持到int64位(可能版本問題)。基本都是為了機器學習而優化。導致大部分公共庫都不支持。
安裝就不贅述。直接上測試代碼。后續會進行性能對比。
import timeit
import matx
def fib(n: int) -> int:
ret :int = 0
for x in range(n + 1):
ret += 1
return ret
def main():
fib_script = matx.script(fib)
#print(f'Matx execution time: {timeit.timeit(lambda: fib_script(30), number=10)}s') # 0.03s
print(fib_script(9999))
if __name__ == '__main__':
main()