/
manualbench.go
79 lines (72 loc) · 2.77 KB
/
manualbench.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
package accumulator
import (
"fmt"
"strconv"
"time"
)
// ManualBench is used for manual benchmark. Because the running time can be long, the golang benchmark may not work
func ManualBench(testSetSize int) {
set := GenBenchSet(testSetSize)
setup := *TrustedSetup()
startingTime := time.Now().UTC()
_, _ = AccAndProve(set, DIHashFromPoseidon, &setup)
endingTime := time.Now().UTC()
var duration = endingTime.Sub(startingTime)
fmt.Printf("Running AccAndProve with set size %v\nTakes [%.3f] Seconds \n",
testSetSize, duration.Seconds())
}
// ManualBenchZKAcc is used for manual benchmark. Because the running time can be long,
// the golang benchmark may not work
func ManualBenchZKAcc(testSetSize int) {
set := GenBenchSet(testSetSize)
setup := *TrustedSetup()
startingTime := time.Now().UTC()
_, _ = ZKAccumulate(set, DIHashFromPoseidon, &setup)
endingTime := time.Now().UTC()
var duration = endingTime.Sub(startingTime)
fmt.Printf("Running AccAndProve with set size %v\nTakes [%.3f] Seconds \n",
testSetSize, duration.Seconds())
}
// ManualBenchIter is used for manual benchmark. Because the running time can be long, the golang benchmark may not work
func ManualBenchIter(testSetSize int) {
set := GenBenchSet(testSetSize)
setup := *TrustedSetup()
startingTime := time.Now().UTC()
_, _ = AccAndProveIter(set, DIHashFromPoseidon, &setup)
endingTime := time.Now().UTC()
var duration = endingTime.Sub(startingTime)
fmt.Printf("Running AccAndProveIter with set size %v\nTakes [%.3f] Seconds \n",
testSetSize, duration.Seconds())
}
// ManualBenchParallel is used for manual benchmark. Because the running time can be long,
// the golang benchmark may not work
func ManualBenchParallel(testSetSize int) {
set := GenBenchSet(testSetSize)
setup := *TrustedSetup()
startingTime := time.Now().UTC()
_, _ = AccAndProveParallel(set, DIHashFromPoseidon, &setup)
endingTime := time.Now().UTC()
var duration = endingTime.Sub(startingTime)
fmt.Printf("Running AccAndProveParallel with set size %v\nTakes [%.3f] Seconds \n",
testSetSize, duration.Seconds())
}
// ManualBenchIterParallel is used for manual benchmark. Because the running time can be long,
// the golang benchmark may not work
func ManualBenchIterParallel(testSetSize int) {
set := GenBenchSet(testSetSize)
setup := *TrustedSetup()
startingTime := time.Now().UTC()
_, _ = AccAndProveIterParallel(set, DIHashFromPoseidon, &setup)
endingTime := time.Now().UTC()
var duration = endingTime.Sub(startingTime)
fmt.Printf("Running AccAndProveIterParallel with set size %v\nTakes [%.3f] Seconds \n",
testSetSize, duration.Seconds())
}
// GenBenchSet generate one set where every element is different
func GenBenchSet(num int) []string {
ret := make([]string, num)
for i := 0; i < num; i++ {
ret[i] = strconv.Itoa(i)
}
return ret
}