LINE Solver
MATLAB API documentation
Loading...
Searching...
No Matches
saveMetrics.m
1function [simElem, simDoc] = saveMetrics(self, simElem, simDoc)
2% [SIMELEM, SIMDOC] = SAVEMETRICS(SIMELEM, SIMDOC)
3
4% Copyright (c) 2012-2026, Imperial College London
5% All rights reserved.
6
7if isempty(self.handles)
8 self.model.getAvgHandles(); % Create handles on model
9 self.handles = self.model.handles; % Copy to JMTIO
10end
11handles = self.handles;
12[simElem, simDoc] = saveMetric(self, simElem, simDoc, handles.Q);
13[simElem, simDoc] = saveMetric(self, simElem, simDoc, handles.U);
14[simElem, simDoc] = saveMetric(self, simElem, simDoc, handles.R);
15[simElem, simDoc] = saveMetric(self, simElem, simDoc, handles.T);
16[simElem, simDoc] = saveMetric(self, simElem, simDoc, handles.A);
17%[simElem, simDoc] = saveMetric(self, simElem, simDoc, handles.W);
18% JMT ResidT is inconsistently defined with LINE's on some
19% difficult class switching cases, hence we recompute it at the
20% level of the NetworkSolver class to preserve consistency.
21
22% Save tardiness metrics
23if isfield(handles,'Tard') && ~isempty(handles.Tard)
24 [simElem, simDoc] = saveMetric(self, simElem, simDoc, handles.Tard);
25end
26if isfield(handles,'SysTard') && ~isempty(handles.SysTard)
27 [simElem, simDoc] = saveMetric(self, simElem, simDoc, handles.SysTard);
28end
29
30% Save FCR (blocking region) metrics
31[simElem, simDoc] = saveFCRMetrics(self, simElem, simDoc);
32
33% Save Cache Hit Rate metrics for Cache nodes
34[simElem, simDoc] = saveCacheHitRateMetrics(self, simElem, simDoc);
35end
36
37function [simElem, simDoc] = saveCacheHitRateMetrics(self, simElem, simDoc)
38% Request Cache Hit Rate metrics for each Cache node
39sn = self.getStruct;
40model = self.model;
41
42for ind = 1:sn.nnodes
43 if sn.nodetype(ind) == NodeType.Cache
44 nodeName = sn.nodenames{ind};
45 hitclass = sn.nodeparam{ind}.hitclass;
46
47 % Request Cache Hit Rate for each class that has a hit class defined
48 for r = 1:length(hitclass)
49 if hitclass(r) > 0
50 hitClassName = sn.classnames{hitclass(r)};
51
52 performanceNode = simDoc.createElement('measure');
53 performanceNode.setAttribute('alpha', num2str(1 - self.simConfInt, 2));
54 performanceNode.setAttribute('name', sprintf('CacheHitRate_%s_%s', nodeName, hitClassName));
55 performanceNode.setAttribute('nodeType', 'station');
56 performanceNode.setAttribute('precision', num2str(self.simMaxRelErr, 2));
57 performanceNode.setAttribute('referenceNode', nodeName);
58 performanceNode.setAttribute('referenceUserClass', hitClassName);
59 performanceNode.setAttribute('type', 'Cache Hit Rate');
60 performanceNode.setAttribute('verbose', 'false');
61 simElem.appendChild(performanceNode);
62 end
63 end
64 end
65end
66end
67
68
Definition mmt.m:92