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     95.29   ../../../../Macaulay2/m2/matrix1.m2:279:4-282:58 
     1     92.43   ../../../../Macaulay2/m2/matrix1.m2:281:22-281:43
     1     44.82   ../../../../Macaulay2/m2/matrix1.m2:193:25-193:52
     1     31.53   ../../../../Macaulay2/m2/matrix1.m2:114:5-156:72 
     1     30.05   ../../../../Macaulay2/m2/matrix1.m2:140:10-155:16
     1     22.49   ../../../../Macaulay2/m2/matrix1.m2:181:4-181:42 
     1     21.21   ../../../../Macaulay2/m2/set.m2:122:5-122:61     
     1     21.15   ../../../../Macaulay2/m2/matrix1.m2:45:10-49:22  
     1     3.38    ../../../../Macaulay2/m2/matrix1.m2:112:5-112:29 
     1     2.39    ../../../../Macaulay2/m2/matrix1.m2:141:13-141:78
     1     2.17    ../../../../Macaulay2/m2/matrix1.m2:96:5-109:11  
     1     1.45    ../../../../Macaulay2/m2/matrix1.m2:281:7-281:16 
     1     1.34    ../../../../Macaulay2/m2/matrix1.m2:147:20-147:64
     1     1.27    ../../../../Macaulay2/m2/matrix1.m2:276:4-277:73 
     1     1.16    ../../../../Macaulay2/m2/matrix1.m2:111:5-111:91 
     1     1.11    ../../../../Macaulay2/m2/matrix1.m2:98:10-98:46  
     1     1.08    ../../../../Macaulay2/m2/matrix1.m2:182:4-184:74 
     1     .55     ../../../../Macaulay2/m2/modules.m2:278:4-278:52 
     20    .43     ../../../../Macaulay2/m2/matrix1.m2:191:14-192:67
     20    .30     ../../../../Macaulay2/m2/matrix1.m2:47:43-47:71  
     1     .0033s  elapsed total                                    
i3 : coverageSummary

o3 = covered lines:
     ../../../../Macaulay2/m2/lists.m2:145:24-145:32
     ../../../../Macaulay2/m2/lists.m2:145:34-145:58
     ../../../../Macaulay2/m2/matrix.m2:12:5-12:35
     ../../../../Macaulay2/m2/matrix.m2:13:5-13:46
     ../../../../Macaulay2/m2/matrix.m2:14:5-14:40
     ../../../../Macaulay2/m2/matrix.m2:15:5-15:30
     ../../../../Macaulay2/m2/matrix.m2:16:5-16:80
     ../../../../Macaulay2/m2/matrix.m2:17:5-17:17
     ../../../../Macaulay2/m2/matrix.m2:72:4-72:40
     ../../../../Macaulay2/m2/matrix1.m2:44:8-44:16
     ../../../../Macaulay2/m2/matrix1.m2:45:10-49:22
     ../../../../Macaulay2/m2/matrix1.m2:47:23-47:37
     ../../../../Macaulay2/m2/matrix1.m2:47:43-47:71
     ../../../../Macaulay2/m2/matrix1.m2:93:5-93:16
     ../../../../Macaulay2/m2/matrix1.m2:94:5-94:16
     ../../../../Macaulay2/m2/matrix1.m2:95:5-95:12
     ../../../../Macaulay2/m2/matrix1.m2:96:5-109:11
     ../../../../Macaulay2/m2/matrix1.m2:97:10-97:15
     ../../../../Macaulay2/m2/matrix1.m2:98:10-98:46
     ../../../../Macaulay2/m2/matrix1.m2:98:21-98:29
     ../../../../Macaulay2/m2/matrix1.m2:98:42-98:46
     ../../../../Macaulay2/m2/matrix1.m2:110:5-110:124
     ../../../../Macaulay2/m2/matrix1.m2:111:5-111:91
     ../../../../Macaulay2/m2/matrix1.m2:111:15-111:38
     ../../../../Macaulay2/m2/matrix1.m2:111:44-111:71
     ../../../../Macaulay2/m2/matrix1.m2:112:5-112:29
     ../../../../Macaulay2/m2/matrix1.m2:113:5-113:17
     ../../../../Macaulay2/m2/matrix1.m2:114:5-156:72
     ../../../../Macaulay2/m2/matrix1.m2:139:13-139:42
     ../../../../Macaulay2/m2/matrix1.m2:140:10-155:16
     ../../../../Macaulay2/m2/matrix1.m2:141:13-141:78
     ../../../../Macaulay2/m2/matrix1.m2:145:18-145:36
     ../../../../Macaulay2/m2/matrix1.m2:147:20-147:64
     ../../../../Macaulay2/m2/matrix1.m2:152:35-152:53
     ../../../../Macaulay2/m2/matrix1.m2:152:66-152:98
     ../../../../Macaulay2/m2/matrix1.m2:181:4-181:42
     ../../../../Macaulay2/m2/matrix1.m2:182:4-184:74
     ../../../../Macaulay2/m2/matrix1.m2:183:7-183:19
     ../../../../Macaulay2/m2/matrix1.m2:183:25-183:32
     ../../../../Macaulay2/m2/matrix1.m2:190:17-190:29
     ../../../../Macaulay2/m2/matrix1.m2:191:14-192:67
     ../../../../Macaulay2/m2/matrix1.m2:193:8-193:19
     ../../../../Macaulay2/m2/matrix1.m2:193:25-193:52
     ../../../../Macaulay2/m2/matrix1.m2:274:4-274:42
     ../../../../Macaulay2/m2/matrix1.m2:275:4-275:31
     ../../../../Macaulay2/m2/matrix1.m2:276:4-277:73
     ../../../../Macaulay2/m2/matrix1.m2:279:4-282:58
     ../../../../Macaulay2/m2/matrix1.m2:281:7-281:16
     ../../../../Macaulay2/m2/matrix1.m2:281:22-281:43
     ../../../../Macaulay2/m2/modules.m2:222:8-222:21
     ../../../../Macaulay2/m2/modules.m2:223:10-224:19
     ../../../../Macaulay2/m2/modules.m2:277:4-277:91
     ../../../../Macaulay2/m2/modules.m2:278:4-278:52
     ../../../../Macaulay2/m2/modules.m2:408:8-408:21
     ../../../../Macaulay2/m2/modules.m2:409:10-410:11
     ../../../../Macaulay2/m2/set.m2:121:5-121:33
     ../../../../Macaulay2/m2/set.m2:122:5-122:61
     ../../../../Macaulay2/m2/set.m2:122:23-122:30
     ../../../../Macaulay2/m2/set.m2:122:36-122:41
     ../../../../Macaulay2/m2/set.m2:122:47-122:60
     null
     total

For the programmer

The object profile is a keyword.


The source of this document is in Macaulay2Doc/ov_debugging.m2:181:0.