// BenchmarkBlockHeader benchmarks how long it takes to load the mainnet genesis
// block.
BenchmarkBlockHeader benchmarks how long it takes to load the mainnet genesis
block.
// BenchmarkBlockHeader benchmarks how long it takes to load the mainnet genesis // block .
func BenchmarkBlock(b *testing.B) {
	dbPath := filepath.Join(os.TempDir(), "ffldb-benchblk")
	_ = os.RemoveAll(dbPath)
	db, err := database.Create("ffldb", dbPath, blockDataNet)
	if err != nil {
		b.Fatal(err)
	}
	defer os.RemoveAll(dbPath)
	defer db.Close()
	err = db.Update(func(tx database.Tx) error {
		block := bchutil.NewBlock(chaincfg.MainNetParams.GenesisBlock)
		return tx.StoreBlock(block)
	})
	if err != nil {
		b.Fatal(err)
	}
	b.ReportAllocs()
	b.ResetTimer()
	err = db.View(func(tx database.Tx) error {
		blockHash := chaincfg.MainNetParams.GenesisHash
		for i := 0; i < b.N; i++ {
			_, err := tx.FetchBlock(blockHash)
			if err != nil {
				return err
			}
		}
		return nil
	})
	if err != nil {
		b.Fatal(err)
	}
	b.StopTimer()
}
func BenchmarkBlock ( b * testing . B ) { dbPath := filepath . Join ( os . TempDir ( ) , " " ) _ = os . RemoveAll ( dbPath ) db , err := database . Create ( " " , dbPath , blockDataNet ) if err != nil { b . Fatal ( err ) } defer os . RemoveAll ( dbPath ) defer db . Close ( ) err = db . Update ( func ( tx database . Tx ) error { block := bchutil . NewBlock ( chaincfg . MainNetParams . GenesisBlock ) return tx . StoreBlock ( block ) } ) if err != nil { b . Fatal ( err ) } b . ReportAllocs ( ) b . ResetTimer ( ) err = db . View ( func ( tx database . Tx ) error { blockHash := chaincfg . MainNetParams . GenesisHash for i := 0 ; i < b . N ; i ++ { _ , err := tx . FetchBlock ( blockHash ) if err != nil { return err } } return nil } ) if err != nil { b . Fatal ( err ) } b . StopTimer ( ) }
BenchmarkBlockHeader benchmarks how long it takes to load the mainnet genesis
block.
BenchmarkBlockHeader benchmarks how long it takes to load the mainnet genesis block .
// Start by creating a new database and populating it with the mainnet // genesis block. // Don't benchmark teardown.