Skip to content

Commit 5ec68d5

Browse files
committed
benchmark inode
1 parent 6a49ac2 commit 5ec68d5

File tree

7 files changed

+66
-5
lines changed

7 files changed

+66
-5
lines changed

+stdlib/+python/device.m

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
try
44
i = int64(py.os.stat(file).st_dev);
55
% int64 first is for Matlab <= R2022a
6-
catch
6+
catch e
7+
pythonException(e)
78
i = [];
89
end
910

+stdlib/+python/inode.m

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
try
44
i = int64(py.os.stat(file).st_ino);
55
% int64 first is for Matlab <= R2022a
6-
catch
6+
catch e
7+
pythonException(e)
78
i = [];
89
end
910

+stdlib/inode.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
function [i, b] = inode(file, backend)
1010
arguments
1111
file string
12-
backend (1,:) string = ["java", "perl", "python", "sys"]
12+
backend (1,:) string = ["java", "python", "perl", "sys"]
1313
end
1414

1515
o = stdlib.Backend(mfilename(), backend);

example/BenchmarkGetOwnerRun.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,6 @@
1313

1414
function result = run_bench(name)
1515
suite = testsuite(name);
16-
exp = matlab.perftest.TimeExperiment.limitingSamplingError(MaxSamples=25);
16+
exp = matlab.perftest.TimeExperiment.limitingSamplingError(MaxSamples=25, RelativeMarginOfError=0.1);
1717
result = exp.run(suite);
1818
end

example/BenchmarkInode.m

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
classdef (SharedTestFixtures={ matlab.unittest.fixtures.PathFixture("..")}) ...
2+
BenchmarkInode < matlab.perftest.TestCase
3+
4+
properties(TestParameter)
5+
backend
6+
end
7+
8+
methods (TestParameterDefinition, Static)
9+
function backend = setupBackend()
10+
backend = init_backend('inode');
11+
end
12+
end
13+
14+
15+
methods (Test)
16+
17+
function bench_exist(tc, backend)
18+
file = mfilename('fullpath') + ".m";
19+
tc.startMeasuring()
20+
i = stdlib.inode(file, backend);
21+
tc.stopMeasuring()
22+
23+
tc.verifyClass(i, 'uint64')
24+
tc.assertNotEmpty(i)
25+
tc.verifyGreaterThan(i, 0)
26+
end
27+
28+
29+
function bench_not_exist(tc, backend)
30+
file = tempname();
31+
tc.startMeasuring()
32+
i = stdlib.inode(file, backend);
33+
tc.stopMeasuring()
34+
35+
tc.verifyClass(i, 'uint64')
36+
tc.verifyEmpty(i)
37+
end
38+
39+
end
40+
41+
end

example/BenchmarkInodeRun.m

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
function [r, s] = BenchmarkInodeRun()
2+
%% Exist
3+
r.same = run_bench('BenchmarkInode/bench_exist');
4+
s.exist = sampleSummary(r.same);
5+
disp(sortrows(s.exist, "Median"))
6+
%% Not Exist
7+
r.not = run_bench('BenchmarkInode/bench_not_exist');
8+
s.not = sampleSummary(r.not);
9+
disp(sortrows(s.not, "Median"))
10+
11+
end
12+
13+
14+
function result = run_bench(name)
15+
suite = testsuite(name);
16+
exp = matlab.perftest.TimeExperiment.limitingSamplingError(MaxSamples=25, RelativeMarginOfError=0.1);
17+
result = exp.run(suite);
18+
end

example/BenchmarkSamepathRun.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,6 @@
1717

1818
function result = run_bench(name)
1919
suite = testsuite(name);
20-
exp = matlab.perftest.TimeExperiment.limitingSamplingError(MaxSamples=25);
20+
exp = matlab.perftest.TimeExperiment.limitingSamplingError(MaxSamples=25, RelativeMarginOfError=0.1);
2121
result = exp.run(suite);
2222
end

0 commit comments

Comments
 (0)