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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
|
package main
import (
"fmt"
"time"
"github.com/dchest/stemmer/porter2"
"github.com/reiver/go-porterstemmer"
p2 "github.com/surgebase/porter2"
)
func main() {
actions := []string{
"access",
"alert",
"allocate",
"allow",
"audit",
"backup",
"bind",
"block",
"cancel",
"clean",
"close",
"compress",
"connect",
"copy",
"create",
"decode",
"decompress",
"decrypt",
"depress",
"detect",
"disconnect",
"download",
"encode",
"encrypt",
"establish",
"execute",
"filter",
"find",
"free",
"get",
"initialize",
"initiate",
"install",
"lock",
"login",
"logout",
"modify",
"move",
"open",
"post",
"quarantine",
"read",
"release",
"remove",
"replicate",
"resume",
"save",
"scan",
"search",
"start",
"stop",
"suspend",
"uninstall",
"unlock",
"update",
"upgrade",
"upload",
"violate",
"write",
}
n := 10000
var es p2.EnglishStemmer
now := time.Now()
for i := 0; i < n; i++ {
for _, a := range actions {
es.Stem(a)
}
}
since := time.Since(now)
fmt.Println("surge:", since)
//eng := porter2.Stemmer
now = time.Now()
for i := 0; i < n; i++ {
for _, a := range actions {
porter2.EngStem.Stem(a)
}
}
since = time.Since(now)
fmt.Println("dchest:", since)
now = time.Now()
for i := 0; i < n; i++ {
for _, a := range actions {
porterstemmer.StemString(a)
}
}
since = time.Since(now)
fmt.Println("reiver:", since)
}
|