summaryrefslogtreecommitdiff
path: root/cmd/compare/compare.go
blob: bbfd04e286e97e484f1ab18b135a569e08b13898 (plain)
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)
}