Skip to content

Commit 97b2cd9

Browse files
feat: decode sampled values
1 parent c491ea6 commit 97b2cd9

File tree

10 files changed

+1802
-197
lines changed

10 files changed

+1802
-197
lines changed

.github/workflows/ci.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,9 @@ jobs:
7979
path: target
8080
key: ${{ runner.os }}-cargo-bench-target-${{ hashFiles('**/Cargo.lock') }}
8181

82+
- name: Run SMV benchmarks
83+
run: cargo bench --bench smv_decode -- --output-format bencher | tee smv_output.txt
84+
8285
- name: Run GOOSE benchmarks
8386
run: cargo bench --bench goose_codec -- --output-format bencher | tee goose_output.txt
8487

@@ -87,10 +90,16 @@ jobs:
8790
with:
8891
script: |
8992
const fs = require('fs');
93+
const smvOutput = fs.readFileSync('smv_output.txt', 'utf8');
9094
const gooseOutput = fs.readFileSync('goose_output.txt', 'utf8');
9195
9296
const body = `## Benchmark Results
9397
98+
### SMV Decoder Benchmarks
99+
\`\`\`
100+
${smvOutput}
101+
\`\`\`
102+
94103
### GOOSE Codec Benchmarks
95104
\`\`\`
96105
${gooseOutput}

Cargo.toml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,7 @@ criterion = { version = "0.5", features = ["html_reports"] }
1616
[[bench]]
1717
name = "goose_codec"
1818
harness = false
19+
20+
[[bench]]
21+
name = "smv_decode"
22+
harness = false

benches/goose_codec.rs

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
use criterion::{black_box, criterion_group, criterion_main, BenchmarkId, Criterion};
2-
use iec_61850_lib::decode_goose::{decode_ethernet_header, decode_goose_pdu, is_goose_frame};
2+
use iec_61850_lib::decode_basics::decode_ethernet_header;
3+
use iec_61850_lib::decode_goose::{decode_goose_pdu, is_goose_frame};
34
use iec_61850_lib::encode_goose::{encode_ethernet_header, encode_goose};
45
use iec_61850_lib::types::{EthernetHeader, IECData, IECGoosePdu, TimeQuality, Timestamp};
56

@@ -103,17 +104,6 @@ fn benchmark_goose_frame_detection(c: &mut Criterion) {
103104
});
104105
}
105106

106-
fn benchmark_ethernet_header_decode(c: &mut Criterion) {
107-
let packet = create_large_goose_packet();
108-
109-
c.bench_function("ethernet_header_decode", |b| {
110-
b.iter(|| {
111-
let mut header = EthernetHeader::default();
112-
decode_ethernet_header(black_box(&mut header), black_box(&packet))
113-
});
114-
});
115-
}
116-
117107
fn benchmark_goose_pdu_decode(c: &mut Criterion) {
118108
let packet = create_large_goose_packet();
119109
let mut header = EthernetHeader::default();
@@ -232,7 +222,6 @@ fn benchmark_goose_rates(c: &mut Criterion) {
232222
criterion_group!(
233223
benches,
234224
benchmark_goose_frame_detection,
235-
benchmark_ethernet_header_decode,
236225
benchmark_goose_pdu_decode,
237226
benchmark_full_goose_decode,
238227
benchmark_ethernet_header_encode,

0 commit comments

Comments
 (0)