import cProfile import pstats def UtiFml(A): D = np.linalg.det(A) def Min(A,i,j): up = np.hstack((A[:i,:j],A[:i,j+1:])) lo = np.hstack((A[i+1:,:j],A[i+1:,j+1:])) N = np.vstack((up,lo)) return((-1)**(i+j))*np.linalg.det(N) def tComatrice(A): Comat = np.zeros((10,10)) tComat = np.zeros((10,10)) for i in range(10): for j in range(10): Comat[i,j] = Min(A,i,j) for i in range(10): for j in range(10): tComat[i,j] = Comat[j,i] return tComat tComatrice = tComatrice(A) return(1/D*(tComatrice)) pr = cProfile.Profile() pr.enable() UtiFml(M) pr.disable() # 输出函数调用次数和所花时间 pr.print_stats()这段函数输出的调用次数我想要保存起来,怎么加一段代码
时间: 2024-02-29 16:51:38 浏览: 120
PyPI 官网下载 | pstats_print2list-1.1.9.tar.gz
你可以使用 `pstats.Stats` 模块来统计和分析 `cProfile` 输出的结果,并将其保存到文件中。以下是示例代码:
```python
import cProfile
import pstats
def UtiFml(A):
D = np.linalg.det(A)
def Min(A,i,j):
up = np.hstack((A[:i,:j],A[:i,j+1:]))
lo = np.hstack((A[i+1:,:j],A[i+1:,j+1:]))
N = np.vstack((up,lo))
return((-1)**(i+j))*np.linalg.det(N)
def tComatrice(A):
Comat = np.zeros((10,10))
tComat = np.zeros((10,10))
for i in range(10):
for j in range(10):
Comat[i,j] = Min(A,i,j)
for i in range(10):
for j in range(10):
tComat[i,j] = Comat[j,i]
return tComat
tComatrice = tComatrice(A)
return(1/D*(tComatrice))
# 使用 cProfile 进行性能分析
pr = cProfile.Profile()
pr.enable()
UtiFml(M)
pr.disable()
# 对 profile 数据进行统计和分析
stats = pstats.Stats(pr)
stats.strip_dirs()
stats.sort_stats('cumulative')
stats.print_stats()
# 将统计结果保存到文件中
with open('stats.txt', 'w') as f:
stats = pstats.Stats(pr, stream=f)
stats.strip_dirs()
stats.sort_stats('cumulative')
stats.print_stats()
```
这样,你就可以将函数调用次数和所花时间保存到 `stats.txt` 文件中了。
阅读全文