memoise a few more shared renderers

This commit is contained in:
Matthias Radestock
2017-11-05 00:21:45 +00:00
parent b793a9efa8
commit 5f4f9da4df
2 changed files with 6 additions and 6 deletions

View File

@@ -24,7 +24,7 @@ var UncontainedIDPrefix = MakePseudoNodeID(UncontainedID)
// NB We only want processes in container _or_ processes with network connections
// but we need to be careful to ensure we only include each edge once, by only
// including the ProcessRenderer once.
var ContainerRenderer = MakeFilter(
var ContainerRenderer = Memoise(MakeFilter(
func(n report.Node) bool {
// Drop deleted containers
state, ok := n.Latest.Lookup(docker.ContainerState)
@@ -37,9 +37,9 @@ var ContainerRenderer = MakeFilter(
),
ConnectionJoin(MapContainer2IP, SelectContainer),
),
)
))
var mapEndpoint2IP = MakeMap(endpoint2IP, SelectEndpoint)
var mapEndpoint2IP = Memoise(MakeMap(endpoint2IP, SelectEndpoint))
const originalNodeID = "original_node_id"

View File

@@ -26,7 +26,7 @@ var EndpointRenderer = SelectEndpoint
// ProcessRenderer is a Renderer which produces a renderable process
// graph by merging the endpoint graph and the process topology.
var ProcessRenderer = ConditionalRenderer(renderProcesses,
var ProcessRenderer = Memoise(ConditionalRenderer(renderProcesses,
MakeReduce(
MakeMap(
MapEndpoint2Process,
@@ -34,13 +34,13 @@ var ProcessRenderer = ConditionalRenderer(renderProcesses,
),
SelectProcess,
),
)
))
// ColorConnectedProcessRenderer colors connected nodes from
// ProcessRenderer. Since the process topology views only show
// connected processes, we need this info to determine whether
// processes appearing in a details panel are linkable.
var ColorConnectedProcessRenderer = ColorConnected(ProcessRenderer)
var ColorConnectedProcessRenderer = Memoise(ColorConnected(ProcessRenderer))
// processWithContainerNameRenderer is a Renderer which produces a process
// graph enriched with container names where appropriate