示例#1
0
func BenchmarkLoadParameters(b *testing.B) {
	var ps FullParameters = *NewFullParameters()
	db, err := bolt.Open(path.Join("data", "testdb.db"), 0600, nil)
	if err != nil {
		Error.Println(err)
	}
	defer db.Close()
	b.ResetTimer()
	for i := 0; i < b.N; i++ {
		err = db.View(func(tx *bolt.Tx) error {
			// Assume bucket exists and has keys
			b := tx.Bucket([]byte("resources"))
			if b == nil {
				return fmt.Errorf("Resources dont exist")
			}
			v := b.Get([]byte("fullParameters"))
			ps = loadParameters(v)
			return nil
		})
		if err != nil {
			Error.Println(err)
		}

	}
}
示例#2
0
// BenchmarkCalculatePosteriors1 needs to have precomputed parameters for testdb (run Optimize after loading testdb.sh)
func BenchmarkCalculatePosteriors1(b *testing.B) {
	res := Fingerprint{}
	jsonTest := `{"username": "******", "group": "testdb", "wifi-fingerprint": [{"rssi": -45, "mac": "80:37:73:ba:f7:d8"}, {"rssi": -58, "mac": "80:37:73:ba:f7:dc"}, {"rssi": -61, "mac": "a0:63:91:2b:9e:65"}, {"rssi": -68, "mac": "a0:63:91:2b:9e:64"}, {"rssi": -70, "mac": "70:73:cb:bd:9f:b5"}, {"rssi": -75, "mac": "d4:05:98:57:b3:10"}, {"rssi": -75, "mac": "00:23:69:d4:47:9f"}, {"rssi": -76, "mac": "30:46:9a:a0:28:c4"}, {"rssi": -81, "mac": "2c:b0:5d:36:e3:b8"}, {"rssi": -82, "mac": "00:1a:1e:46:cd:10"}, {"rssi": -82, "mac": "20:aa:4b:b8:31:c8"}, {"rssi": -83, "mac": "e8:ed:05:55:21:10"}, {"rssi": -83, "mac": "ec:1a:59:4a:9c:ed"}, {"rssi": -88, "mac": "b8:3e:59:78:35:99"}, {"rssi": -84, "mac": "e0:46:9a:6d:02:ea"}, {"rssi": -84, "mac": "00:1a:1e:46:cd:11"}, {"rssi": -84, "mac": "f8:35:dd:0a:da:be"}, {"rssi": -84, "mac": "b4:75:0e:03:cd:69"}], "location": "zakhome floor 2 office", "time": 1439596533831, "password": "******"}`
	json.Unmarshal([]byte(jsonTest), &res)

	var ps FullParameters
	db, err := bolt.Open(path.Join("data", "testdb.db"), 0600, nil)
	if err != nil {
		Error.Println(err)
	}
	err = db.View(func(tx *bolt.Tx) error {
		// Assume bucket exists and has keys
		b := tx.Bucket([]byte("resources"))
		if b == nil {
			return fmt.Errorf("Resources dont exist")
		}
		v := b.Get([]byte("fullParameters"))
		ps = loadParameters(v)
		return nil
	})
	if err != nil {
		Error.Println(err)
	}
	db.Close()

	b.ResetTimer()
	for i := 0; i < b.N; i++ {
		calculatePosterior(res, ps)
	}

}
示例#3
0
func BenchmarkGet(b *testing.B) {
	b.StopTimer()
	if benchDb == nil {
		benchDb = newTestDb(true, 0)
		benchDb.Execute(NewTransaction(func(b *TransactionBlock) {
			b.Set("test_container", "benchget", "somevalue")
		}))
	}
	b.StartTimer()

	for i := 0; i < b.N; i++ {
		ret := benchDb.Execute(NewTransaction(func(b *TransactionBlock) {
			b.Return(b.Get("test_container", "benchget"))
		}))

		if ret.Error != nil {
			fmt.Errorf("Got an error during benchmark: %v", *ret.Error.Message)
		}
	}
}