From 08e906a0193410ce0358e07a3eb808b30f65c72c Mon Sep 17 00:00:00 2001 From: Oliver Tonnhofer Date: Tue, 28 May 2013 14:42:14 +0200 Subject: [PATCH] log more steps --- goposm.go | 110 ++++++++++++++++++++++++++----------------------- stats/stats.go | 2 +- 2 files changed, 60 insertions(+), 52 deletions(-) diff --git a/goposm.go b/goposm.go index 7405b77..ef63d27 100644 --- a/goposm.go +++ b/goposm.go @@ -152,68 +152,74 @@ func main() { } } + step := log.StartStep("Imposm") + if *read != "" { + step := log.StartStep("Reading OSM data") progress.Start() osmCache.Coords.SetLinearImport(true) reader.ReadPbf(osmCache, progress, tagmapping, *read) osmCache.Coords.SetLinearImport(false) progress.Stop() osmCache.Coords.Flush() + log.StopStep(step) } if *write { - if true { - progress.Start() - err = db.Init() - if err != nil { - die(err) - } - - diffCache := cache.NewDiffCache(*cachedir) - if err = diffCache.Remove(); err != nil { - die(err) - } - if err = diffCache.Open(); err != nil { - die(err) - } - - insertBuffer := writer.NewInsertBuffer() - dbWriter := writer.NewDbWriter(db, insertBuffer.Out) - - pointsTagMatcher := tagmapping.PointMatcher() - lineStringsTagMatcher := tagmapping.LineStringMatcher() - polygonsTagMatcher := tagmapping.PolygonMatcher() - - relations := osmCache.Relations.Iter() - relWriter := writer.NewRelationWriter(osmCache, relations, - insertBuffer, polygonsTagMatcher, progress) - relWriter.SetClipper(geometryClipper) - relWriter.Start() - - // blocks till the Relations.Iter() finishes - relWriter.Close() - - ways := osmCache.Ways.Iter() - wayWriter := writer.NewWayWriter(osmCache, ways, insertBuffer, - lineStringsTagMatcher, polygonsTagMatcher, progress) - wayWriter.SetClipper(geometryClipper) - wayWriter.Start() - - nodes := osmCache.Nodes.Iter() - nodeWriter := writer.NewNodeWriter(osmCache, nodes, insertBuffer, - pointsTagMatcher, progress) - nodeWriter.SetClipper(geometryClipper) - nodeWriter.Start() - - diffCache.Coords.Close() - - wayWriter.Close() - nodeWriter.Close() - insertBuffer.Close() - dbWriter.Close() - progress.Stop() + stepImport := log.StartStep("Importing OSM data") + stepWrite := log.StartStep("Writing OSM data") + progress.Start() + err = db.Init() + if err != nil { + die(err) } + diffCache := cache.NewDiffCache(*cachedir) + if err = diffCache.Remove(); err != nil { + die(err) + } + if err = diffCache.Open(); err != nil { + die(err) + } + + insertBuffer := writer.NewInsertBuffer() + dbWriter := writer.NewDbWriter(db, insertBuffer.Out) + + pointsTagMatcher := tagmapping.PointMatcher() + lineStringsTagMatcher := tagmapping.LineStringMatcher() + polygonsTagMatcher := tagmapping.PolygonMatcher() + + relations := osmCache.Relations.Iter() + relWriter := writer.NewRelationWriter(osmCache, relations, + insertBuffer, polygonsTagMatcher, progress) + relWriter.SetClipper(geometryClipper) + relWriter.Start() + + // blocks till the Relations.Iter() finishes + relWriter.Close() + + ways := osmCache.Ways.Iter() + wayWriter := writer.NewWayWriter(osmCache, ways, insertBuffer, + lineStringsTagMatcher, polygonsTagMatcher, progress) + wayWriter.SetClipper(geometryClipper) + wayWriter.Start() + + nodes := osmCache.Nodes.Iter() + nodeWriter := writer.NewNodeWriter(osmCache, nodes, insertBuffer, + pointsTagMatcher, progress) + nodeWriter.SetClipper(geometryClipper) + nodeWriter.Start() + + diffCache.Coords.Close() + + wayWriter.Close() + nodeWriter.Close() + insertBuffer.Close() + dbWriter.Close() + progress.Stop() + + log.StopStep(stepWrite) + if db, ok := db.(database.Generalizer); ok { if err := db.Generalize(); err != nil { die(err) @@ -229,6 +235,7 @@ func main() { } else { die("database not finishable") } + log.StopStep(stepImport) } if *deployProduction { @@ -260,6 +267,7 @@ func main() { die("database not deployable") } } - progress.Stop() + + log.StopStep(step) } diff --git a/stats/stats.go b/stats/stats.go index a33c07e..42927be 100644 --- a/stats/stats.go +++ b/stats/stats.go @@ -128,8 +128,8 @@ func StatsReporter() *Statistics { case STOP: tick = nil tock = nil - case START: c.PrintStats() + case START: c = counter{} c.start = time.Now() tick = time.Tick(500 * time.Millisecond)