Macaulay2 » Documentation
Packages » Macaulay2Doc » The Macaulay2 language » debugging » profile
next | previous | forward | backward | up | index | toc

profile -- profile a computation

Description

Running a computation with the profile keyword enables the Macaulay2 profiler, which measures and stores the frequency of particular instructions for aid in analyzing and optimizing the computation.

i1 : profile matrix table(4, 5, (i,j) -> i^j)

o1 = | 1 0 0 0  0  |
     | 1 1 1 1  1  |
     | 1 2 4 8  16 |
     | 1 3 9 27 81 |

              4       5
o1 : Matrix ZZ  <-- ZZ

Afterwards, running profileSummary and coverageSummary produces easy to read tables summarizing the accumulated data so far in different ways.

i2 : profileSummary

o2 = #run  %time   position                         
     1     93.98   ../../m2/matrix1.m2:273:4-276:58 
     1     91.47   ../../m2/matrix1.m2:275:22-275:43
     1     44.31   ../../m2/matrix1.m2:183:25-183:52
     1     30.77   ../../m2/matrix1.m2:104:5-146:72 
     1     29.66   ../../m2/matrix1.m2:130:10-145:16
     1     22.12   ../../m2/matrix1.m2:171:4-171:42 
     1     20.97   ../../m2/matrix1.m2:35:10-39:22  
     1     20.74   ../../m2/set.m2:129:5-129:61     
     1     3.37    ../../m2/matrix1.m2:102:5-102:29 
     1     2.38    ../../m2/matrix1.m2:131:13-131:78
     1     2.35    ../../m2/matrix1.m2:86:5-99:11   
     1     1.41    ../../m2/matrix1.m2:275:7-275:16 
     1     1.41    ../../m2/matrix1.m2:137:20-137:64
     1     1.4     ../../m2/matrix1.m2:270:4-271:73 
     1     1.29    ../../m2/matrix1.m2:88:10-88:46  
     1     1.2     ../../m2/matrix1.m2:101:5-101:91 
     1     .99     ../../m2/matrix1.m2:172:4-174:74 
     1     .8      ../../m2/modules.m2:282:4-282:52 
     20    .63     ../../m2/matrix1.m2:181:14-182:67
     20    .50     ../../m2/matrix1.m2:37:43-37:71  
     1     .0038s  elapsed total                    
i3 : coverageSummary

o3 = covered lines:
     ../../m2/lists.m2:146:24-146:32
     ../../m2/lists.m2:146:34-146:58
     ../../m2/matrix.m2:30:5-30:35
     ../../m2/matrix.m2:31:5-31:46
     ../../m2/matrix.m2:32:5-32:40
     ../../m2/matrix.m2:33:5-33:30
     ../../m2/matrix.m2:34:5-34:80
     ../../m2/matrix.m2:35:5-35:17
     ../../m2/matrix.m2:90:4-90:40
     ../../m2/matrix1.m2:34:8-34:16
     ../../m2/matrix1.m2:35:10-39:22
     ../../m2/matrix1.m2:37:23-37:37
     ../../m2/matrix1.m2:37:43-37:71
     ../../m2/matrix1.m2:83:5-83:16
     ../../m2/matrix1.m2:84:5-84:16
     ../../m2/matrix1.m2:85:5-85:12
     ../../m2/matrix1.m2:86:5-99:11
     ../../m2/matrix1.m2:87:10-87:15
     ../../m2/matrix1.m2:88:10-88:46
     ../../m2/matrix1.m2:88:21-88:29
     ../../m2/matrix1.m2:88:42-88:46
     ../../m2/matrix1.m2:100:5-100:124
     ../../m2/matrix1.m2:101:5-101:91
     ../../m2/matrix1.m2:101:15-101:38
     ../../m2/matrix1.m2:101:44-101:71
     ../../m2/matrix1.m2:102:5-102:29
     ../../m2/matrix1.m2:103:5-103:17
     ../../m2/matrix1.m2:104:5-146:72
     ../../m2/matrix1.m2:129:13-129:42
     ../../m2/matrix1.m2:130:10-145:16
     ../../m2/matrix1.m2:131:13-131:78
     ../../m2/matrix1.m2:135:18-135:36
     ../../m2/matrix1.m2:137:20-137:64
     ../../m2/matrix1.m2:142:35-142:53
     ../../m2/matrix1.m2:142:66-142:98
     ../../m2/matrix1.m2:171:4-171:42
     ../../m2/matrix1.m2:172:4-174:74
     ../../m2/matrix1.m2:173:7-173:19
     ../../m2/matrix1.m2:173:25-173:32
     ../../m2/matrix1.m2:180:17-180:29
     ../../m2/matrix1.m2:181:14-182:67
     ../../m2/matrix1.m2:183:8-183:19
     ../../m2/matrix1.m2:183:25-183:52
     ../../m2/matrix1.m2:268:4-268:42
     ../../m2/matrix1.m2:269:4-269:31
     ../../m2/matrix1.m2:270:4-271:73
     ../../m2/matrix1.m2:273:4-276:58
     ../../m2/matrix1.m2:275:7-275:16
     ../../m2/matrix1.m2:275:22-275:43
     ../../m2/modules.m2:226:8-226:21
     ../../m2/modules.m2:227:10-228:19
     ../../m2/modules.m2:281:4-281:91
     ../../m2/modules.m2:282:4-282:52
     ../../m2/modules.m2:412:8-412:21
     ../../m2/modules.m2:413:10-414:11
     ../../m2/set.m2:128:5-128:33
     ../../m2/set.m2:129:5-129:61
     ../../m2/set.m2:129:23-129:30
     ../../m2/set.m2:129:36-129:41
     ../../m2/set.m2:129:47-129:60
     null
     total

For the programmer

The object profile is a keyword.


The source of this document is in /build/reproducible-path/macaulay2-1.26.05+ds/M2/Macaulay2/packages/Macaulay2Doc/ov_debugging.m2:182:0.