Skip to content

Commit

Permalink
drawdiff: Refactor merge functions
Browse files Browse the repository at this point in the history
Signed-off-by: iipeace <iipeace5@gmail.com>
  • Loading branch information
iipeace committed Sep 8, 2024
1 parent c053ed6 commit 7be437b
Showing 1 changed file with 36 additions and 35 deletions.
71 changes: 36 additions & 35 deletions guider/guider.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
__credits__ = "Peace Lee"
__license__ = "GPLv2"
__version__ = "3.9.8"
__revision__ = "240907"
__revision__ = "240908"
__maintainer__ = "Peace Lee"
__email__ = "iipeace5@gmail.com"
__repository__ = "https://github.com/iipeace/guider"
Expand Down Expand Up @@ -121060,39 +121060,40 @@ def _printMemUsage(signum=None, frame=None):
# define new stat dict #
nstats = {"graphTitle": "Guider Diff Graph"}

# define file merge function #
def _getMergedStats(stats, atype):
merged = {}

for comm, attr in stats[n].items():
# get target values #
if atype:
vals = attr.get(atype)
if not vals:
continue
else:
vals = attr

# merge values #
comm = comm.lstrip("*").rsplit("(", 1)[0]
vals = " ".join(vals.split("\n"))
usage = list(map(long, vals.split()))
if comm in merged:
merged[comm] = UtilMgr.calcLists(
"add", merged[comm], usage[:statLen]
)
else:
merged[comm] = usage[:statLen]

return merged

# define merge function #
def _mergeTasks(atype):
# register new stat #
nstats.setdefault(n, {})

# define file merge function #
def _getMergedStats(stats):
merged = {}

for comm, attr in stats[n].items():
# get target values #
if atype:
vals = attr.get(atype)
if not vals:
continue
else:
vals = attr

# merge values #
comm = comm.lstrip("*").rsplit("(", 1)[0]
usage = list(map(long, vals.split()))
if comm in merged:
merged[comm] = UtilMgr.calcLists(
"add", merged[comm], usage[:statLen]
)
else:
merged[comm] = usage[:statLen]

return merged

# merge stats for common tasks #
prevStatsMerged = _getMergedStats(prevStats)
statsMerged = _getMergedStats(gstats)
prevMerged = _getMergedStats(prevStats, atype)
curMerged = _getMergedStats(gstats, atype)

# set max name #
if atype == "rssUsage":
Expand All @@ -121106,10 +121107,10 @@ def _getMergedStats(stats):
defMax = 1

# calculate diffs between stats #
for comm, vals in statsMerged.items():
if comm in prevStatsMerged:
for comm, vals in curMerged.items():
if comm in prevMerged:
diffList = UtilMgr.calcLists(
"sub", vals, prevStatsMerged[comm]
"sub", vals, prevMerged[comm]
)
statStr = " ".join(list(map(str, diffList)))
sums = sum(diffList)
Expand All @@ -121132,14 +121133,14 @@ def _getMergedStats(stats):
nstats[n][comm] = statStr

# calculate diffs from previous stats #
for comm in set(prevStatsMerged.keys()) - set(
statsMerged.keys()
for comm in set(prevMerged.keys()) - set(
curMerged.keys()
):
# save diff #
diffList = UtilMgr.calcLists(
"sub",
[0] * len(prevStatsMerged[comm]),
prevStatsMerged[comm],
[0] * len(prevMerged[comm]),
prevMerged[comm],
)

# save max #
Expand Down

0 comments on commit 7be437b

Please sign in to comment.