forked from MTSR/mapserver
perf timing
This commit is contained in:
parent
607c4fe06d
commit
bf841f6ba0
@ -27,7 +27,7 @@ func getKey(pos coords.MapBlockCoords) string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func NewMapBlockAccessor(accessor db.DBAccessor) *MapBlockAccessor {
|
func NewMapBlockAccessor(accessor db.DBAccessor) *MapBlockAccessor {
|
||||||
c := cache.New(100*time.Millisecond, 200*time.Millisecond)
|
c := cache.New(500*time.Millisecond, 1000*time.Millisecond)
|
||||||
|
|
||||||
return &MapBlockAccessor{accessor: accessor, c: c}
|
return &MapBlockAccessor{accessor: accessor, c: c}
|
||||||
}
|
}
|
||||||
@ -60,6 +60,7 @@ func (a *MapBlockAccessor) FindLegacyMapBlocks(lastpos coords.MapBlockCoords, li
|
|||||||
for _, l := range layerfilter {
|
for _, l := range layerfilter {
|
||||||
if (block.Pos.Y*16) >= l.From && (block.Pos.Y*16) <= l.To {
|
if (block.Pos.Y*16) >= l.From && (block.Pos.Y*16) <= l.To {
|
||||||
inLayer = true
|
inLayer = true
|
||||||
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -41,11 +41,11 @@ func (mb *MapBlock) GetNodeName(x, y, z int) string {
|
|||||||
return mb.BlockMapping[id]
|
return mb.BlockMapping[id]
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewMapblock() MapBlock {
|
func NewMapblock() *MapBlock {
|
||||||
mb := MapBlock{}
|
mb := MapBlock{}
|
||||||
mb.Metadata = NewMetadata()
|
mb.Metadata = NewMetadata()
|
||||||
mb.BlockMapping = make(map[int]string)
|
mb.BlockMapping = make(map[int]string)
|
||||||
return mb
|
return &mb
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewMetadata() *Metadata {
|
func NewMetadata() *Metadata {
|
||||||
|
@ -40,14 +40,14 @@ func Parse(data []byte, mtime int64, pos coords.MapBlockCoords) (*MapBlock, erro
|
|||||||
offset = 6
|
offset = 6
|
||||||
|
|
||||||
//metadata
|
//metadata
|
||||||
count, err := parseMapdata(&mapblock, data[offset:])
|
count, err := parseMapdata(mapblock, data[offset:])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
offset += count
|
offset += count
|
||||||
|
|
||||||
count, err = parseMetadata(&mapblock, data[offset:])
|
count, err = parseMetadata(mapblock, data[offset:])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -86,5 +86,5 @@ func Parse(data []byte, mtime int64, pos coords.MapBlockCoords) (*MapBlock, erro
|
|||||||
mapblock.BlockMapping[nodeId] = blockName
|
mapblock.BlockMapping[nodeId] = blockName
|
||||||
}
|
}
|
||||||
|
|
||||||
return &mapblock, nil
|
return mapblock, nil
|
||||||
}
|
}
|
||||||
|
@ -156,30 +156,32 @@ func (tr *TileRenderer) RenderImage(tc *coords.TileCoords, recursionDepth int) (
|
|||||||
}
|
}
|
||||||
log.WithFields(fields).Debug("Quad image stats")
|
log.WithFields(fields).Debug("Quad image stats")
|
||||||
|
|
||||||
|
start := time.Now()
|
||||||
|
|
||||||
upperLeft, _, err := tr.RenderImage(quads.UpperLeft, recursionDepth-1)
|
upperLeft, _, err := tr.RenderImage(quads.UpperLeft, recursionDepth-1)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
return nil, nil, err
|
||||||
//return nil, err
|
|
||||||
}
|
}
|
||||||
|
|
||||||
upperRight, _, err := tr.RenderImage(quads.UpperRight, recursionDepth-1)
|
upperRight, _, err := tr.RenderImage(quads.UpperRight, recursionDepth-1)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
return nil, nil, err
|
||||||
//return nil, err
|
|
||||||
}
|
}
|
||||||
|
|
||||||
lowerLeft, _, err := tr.RenderImage(quads.LowerLeft, recursionDepth-1)
|
lowerLeft, _, err := tr.RenderImage(quads.LowerLeft, recursionDepth-1)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
return nil, nil, err
|
||||||
//return nil, err
|
|
||||||
}
|
}
|
||||||
|
|
||||||
lowerRight, _, err := tr.RenderImage(quads.LowerRight, recursionDepth-1)
|
lowerRight, _, err := tr.RenderImage(quads.LowerRight, recursionDepth-1)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
return nil, nil, err
|
||||||
//return nil, err
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
t := time.Now()
|
||||||
|
quadrender := t.Sub(start)
|
||||||
|
start = t
|
||||||
|
|
||||||
img := image.NewNRGBA(
|
img := image.NewNRGBA(
|
||||||
image.Rectangle{
|
image.Rectangle{
|
||||||
image.Point{0, 0},
|
image.Point{0, 0},
|
||||||
@ -211,11 +213,34 @@ func (tr *TileRenderer) RenderImage(tc *coords.TileCoords, recursionDepth int) (
|
|||||||
draw.Draw(img, rect, resizedImg, image.ZP, draw.Src)
|
draw.Draw(img, rect, resizedImg, image.ZP, draw.Src)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
t = time.Now()
|
||||||
|
quadresize := t.Sub(start)
|
||||||
|
start = t
|
||||||
|
|
||||||
buf := new(bytes.Buffer)
|
buf := new(bytes.Buffer)
|
||||||
png.Encode(buf, img)
|
png.Encode(buf, img)
|
||||||
|
|
||||||
|
t = time.Now()
|
||||||
|
encode := t.Sub(start)
|
||||||
|
start = t
|
||||||
|
|
||||||
tile := mapobjectdb.Tile{Pos: tc, Data: buf.Bytes(), Mtime: time.Now().Unix()}
|
tile := mapobjectdb.Tile{Pos: tc, Data: buf.Bytes(), Mtime: time.Now().Unix()}
|
||||||
tr.tdb.SetTile(&tile)
|
tr.tdb.SetTile(&tile)
|
||||||
|
|
||||||
|
t = time.Now()
|
||||||
|
cache := t.Sub(start)
|
||||||
|
|
||||||
|
fields = logrus.Fields{
|
||||||
|
"X": tc.X,
|
||||||
|
"Y": tc.Y,
|
||||||
|
"Zoom": tc.Zoom,
|
||||||
|
"LayerId": tc.LayerId,
|
||||||
|
"quadrender": quadrender,
|
||||||
|
"quadresize": quadresize,
|
||||||
|
"encode": encode,
|
||||||
|
"cache": cache,
|
||||||
|
}
|
||||||
|
log.WithFields(fields).Debug("Cross stitch")
|
||||||
|
|
||||||
return img, buf.Bytes(), nil
|
return img, buf.Bytes(), nil
|
||||||
}
|
}
|
||||||
|
@ -95,5 +95,4 @@ func TestTileRender(t *testing.T) {
|
|||||||
f, _ = os.Create("../output/0_0_13.png")
|
f, _ = os.Create("../output/0_0_13.png")
|
||||||
bytes.NewReader(data).WriteTo(f)
|
bytes.NewReader(data).WriteTo(f)
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user