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     94.42   ../../../../../Macaulay2/m2/matrix1.m2:273:4-276:58 
     1     91.19   ../../../../../Macaulay2/m2/matrix1.m2:275:22-275:43
     1     44.61   ../../../../../Macaulay2/m2/matrix1.m2:183:25-183:52
     1     31.07   ../../../../../Macaulay2/m2/matrix1.m2:104:5-146:72 
     1     29.85   ../../../../../Macaulay2/m2/matrix1.m2:130:10-145:16
     1     22.02   ../../../../../Macaulay2/m2/matrix1.m2:171:4-171:42 
     1     20.8    ../../../../../Macaulay2/m2/matrix1.m2:35:10-39:22  
     1     20.7    ../../../../../Macaulay2/m2/set.m2:129:5-129:61     
     1     3.27    ../../../../../Macaulay2/m2/matrix1.m2:102:5-102:29 
     1     2.34    ../../../../../Macaulay2/m2/matrix1.m2:131:13-131:78
     1     2.16    ../../../../../Macaulay2/m2/matrix1.m2:86:5-99:11   
     1     1.48    ../../../../../Macaulay2/m2/matrix1.m2:275:7-275:16 
     1     1.34    ../../../../../Macaulay2/m2/matrix1.m2:270:4-271:73 
     1     1.34    ../../../../../Macaulay2/m2/matrix1.m2:137:20-137:64
     1     1.13    ../../../../../Macaulay2/m2/matrix1.m2:101:5-101:91 
     1     1.10    ../../../../../Macaulay2/m2/matrix1.m2:88:10-88:46  
     1     1.05    ../../../../../Macaulay2/m2/matrix1.m2:172:4-174:74 
     1     .78     ../../../../../Macaulay2/m2/modules.m2:282:4-282:52 
     20    .71     ../../../../../Macaulay2/m2/matrix1.m2:181:14-182:67
     20    .42     ../../../../../Macaulay2/m2/matrix1.m2:37:43-37:71  
     1     .0026s  elapsed total                                       
i3 : coverageSummary

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