這篇文章主要講解了“python如何使用cProfile針對(duì)回測(cè)進(jìn)行性能分析”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“python如何使用cProfile針對(duì)回測(cè)進(jìn)行性能分析”吧!
安裝
不用安裝,python一般自帶都有的,
使用方法有幾個(gè),我是直接輸出。就是把回測(cè)代碼放在一個(gè)方法里面,比如runBackTesting()里面。然后再main方法按照下面代碼跑,這里是按照累計(jì)時(shí)間排序的。提示,最好注釋掉Matplot圖像輸出,因?yàn)榻换サ臅r(shí)間也是統(tǒng)計(jì)的。
if __name__ == '__main__': cProfile.run("runBackTesting()", sort="cumulative")
如下圖所示
第一行 是總共調(diào)用function次數(shù),和總運(yùn)行時(shí)間次數(shù)
下面列的說(shuō)明
ncalls:表示函數(shù)調(diào)用的次數(shù);
tottime:表示指定函數(shù)的總的運(yùn)行時(shí)間,除掉函數(shù)中調(diào)用子函數(shù)的運(yùn)行時(shí)間;
percall:(第一個(gè)percall)等于 tottime/ncalls;
cumtime:表示該函數(shù)及其所有子函數(shù)的調(diào)用運(yùn)行的時(shí)間,即函數(shù)開(kāi)始調(diào)用到返回的時(shí)間;
percall:(第二個(gè)percall)即函數(shù)運(yùn)行一次的平均時(shí)間,等于 cumtime/ncalls;
filename:lineno(function):每個(gè)函數(shù)調(diào)用的具體信息;前面是文件名,第幾行,后面是方法名,有些方法比如max,min這些就沒(méi)有文件名了。
感謝各位的閱讀,以上就是“python如何使用cProfile針對(duì)回測(cè)進(jìn)行性能分析”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)python如何使用cProfile針對(duì)回測(cè)進(jìn)行性能分析這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!