1、特别执行高频交易的时候,需要多线程多进程的工作
2、如果有网络请求,必须采用异步的方式获取数据
3、如果采用pandas计算的时候,多次查找各种值,可以暂时开一个变量进行存取操作;
4、一次性的把各种变量一次性赋值完毕;
5、有各种条件判定的时候,先把最可能出现的放前面,直接去执行;多采用if elif else,这样把其他不必要的条件去尝试判定;
6、各种if 的时候,把最不可能的条件放前面,这样到短路法则就省去后面的执行与判定;
7,采用第三方工具进行运行,看看我们的程序哪一步需要多久时间进行训练;那个部分可以节省时间,那个部分可以用Numba执行,拿个部分可以cpu +gpu联合运算
8、推荐一个第三方分析执行的工具,kernprof,执行的方式
kernprof -l q_tablefuture_all2.py
查看的方式:
python -m line_profiler q_tablefuture_all2.py.lprof
具体查看教程:https://blog.youkuaiyun.com/weixin_42245157/article/details/125415104
具体代码使用:
import random
import time
@profile
def function1():
time.sleep(2)
for _ in range(100):
y = random.randint(1,100)
def function2():
time.sleep(5)
for _ in range(100):
y = random.randint(1,100)
def function3():
time.sleep(7)
for _ in range(100):
y = random.randint(1,100)
@profile
def main():
function1()
function2()
function3()
if name == “main”:
main()
下一个文章介绍numba加速运算;