/
main.go
71 lines (55 loc) · 1.53 KB
/
main.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
package main
import (
"encoding/csv"
"fmt"
"os"
"strconv"
"time"
)
var (
u = 32000000
)
func main() {
ht := makeSimpleHashTable(16, false)
// ht := makeBackgroundHashTable(16)
// ht := makeMasterHashTable(16)
// Insertion
insert_file, _ := os.Open("tests/insert.csv")
insert_reader := csv.NewReader(insert_file)
insert_times := make([]time.Duration, 0)
for i := 0; ; i++ {
data, err := insert_reader.Read()
if err != nil {
break
}
key, _ := strconv.ParseInt(data[1], 0, 0)
val := data[2]
start := time.Now()
ht.insert(int(key), val)
insert_times = Extend(insert_times, time.Now().Sub(start))
}
insert_out, _ := os.Create("data/simple4.csv")
for _, datum := range insert_times {
insert_out.Write([]byte(datum.String() + "\n"))
}
// Get
get_file, _ := os.Open("tests/get.csv")
get_reader := csv.NewReader(get_file)
get_times := make([]time.Duration, 0)
get_start := time.Now()
for i := 0; ; i++ {
data, err := get_reader.Read()
if err != nil {
break
}
key, _ := strconv.ParseInt(data[1], 0, 0)
start := time.Now()
ht.get(int(key))
get_times = Extend(get_times, time.Now().Sub(start))
}
fmt.Println("Elapsed time", time.Now().Sub(get_start))
get_out, _ := os.Create("data/simple_get4.csv")
for _, datum := range get_times {
get_out.Write([]byte(datum.String() + "\n"))
}
}