554325746@qq.com
2019-06-25 0b2d29619f82ea488de5b94f51f02ba641108057
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
package cache
 
import (
    "flag"
    "fmt"
    "time"
    "sync"
    "encoding/base64"
 
    "basic.com/pubsub/cache.git/esutil"
    "basic.com/pubsub/cache.git/shardmap"
 
    "basic.com/valib/gosdk.git"
)
 
var querynum = flag.Int("querynum", 10, "the query number from database")
var threadnum = flag.Int("threadnum",32, "the number of thread to deal data.")
 
var Cmap *shardmap.ShardMap
func Init(){
    flag.Parse()
    gosdk.InitFaceExtractor(16, 0)
 
    Cmap = shardmap.New(uint8(*threadnum))
 
    temptime := time.Now()
    var wg sync.WaitGroup
    for i:=0; i<*threadnum; i++ {
        j := i*(*querynum)
        wg.Add(1)
        go func(qs int){
            defer wg.Done()
 
            escache, err := esutil.DbPersoninfos(qs, *querynum)
            if err != nil {
                fmt.Println(err)
                return
            }
 
            for _, value := range escache {
                 Cmap.Set(value.FaceFeature,value) 
            }
        }(j)
    }
    wg.Wait()
    fmt.Println("get number of es: ", Cmap.GetLen())
    fmt.Println("time of get data from es.", time.Since(temptime))
    fmt.Println()
}
 
//func main(){
//    Init()
//    Getdbpersonmsg("")
//}
 
func Getdbpersonmsg(teststring string, IsCompare bool) ([]interface{}) {
 
    if !IsCompare {
        return nil
    }
 
    if teststring == "" {
    testcache, _:= esutil.DbPersoninfos(0,1)
    teststring = testcache[0].FaceFeature
    }
 
    fmt.Println()
    fmt.Println("======华丽的分割线============")
    fmt.Println()
 
    firsttime := time.Now()
    Rscore := Cmap.Walk(Printest, teststring, IsCompare)
    fmt.Println(time.Since(firsttime))
    return Rscore
}
 
func Printest(ci, co string ) (float32){
 
    ci_d, err := base64.StdEncoding.DecodeString(ci)
    if err != nil {
        fmt.Println("ci_d : error : ", err)
        return -1
    }
 
    co_d, err := base64.StdEncoding.DecodeString(co)
    if err != nil {
        fmt.Println("co_d : error : ", err)
        return -1
    }
 
    sec := gosdk.FaceCompare(ci_d, co_d)
    return sec
}