mirror of
https://github.com/kanidm/kanidm.git
synced 2025-02-23 20:47:01 +01:00
* Bump the all group with 17 updates | Package | From | To | | --- | --- | --- | | [clap](https://github.com/clap-rs/clap) | `4.5.15` | `4.5.16` | | [clap_complete](https://github.com/clap-rs/clap) | `4.5.14` | `4.5.18` | | [concread](https://github.com/kanidm/concread) | `0.5.2` | `0.5.3` | | [js-sys](https://github.com/rustwasm/wasm-bindgen) | `0.3.69` | `0.3.70` | | [ldap3_client](https://github.com/kanidm/ldap3) | `0.5.0` | `0.5.1` | | [ldap3_proto](https://github.com/kanidm/ldap3) | `0.5.0` | `0.5.1` | | [libc](https://github.com/rust-lang/libc) | `0.2.155` | `0.2.157` | | [lodepng](https://github.com/kornelski/lodepng-rust) | `3.10.4` | `3.10.5` | | [serde](https://github.com/serde-rs/serde) | `1.0.206` | `1.0.208` | | [serde_json](https://github.com/serde-rs/json) | `1.0.124` | `1.0.125` | | [syn](https://github.com/dtolnay/syn) | `2.0.74` | `2.0.75` | | [tokio](https://github.com/tokio-rs/tokio) | `1.39.2` | `1.39.3` | | [wasm-bindgen](https://github.com/rustwasm/wasm-bindgen) | `0.2.92` | `0.2.93` | | [wasm-bindgen-futures](https://github.com/rustwasm/wasm-bindgen) | `0.4.42` | `0.4.43` | | [wasm-bindgen-test](https://github.com/rustwasm/wasm-bindgen) | `0.3.42` | `0.3.43` | | [web-sys](https://github.com/rustwasm/wasm-bindgen) | `0.3.69` | `0.3.70` | | [tower](https://github.com/tower-rs/tower) | `0.4.13` | `0.5.0` | Updates `clap` from 4.5.15 to 4.5.16 - [Release notes](https://github.com/clap-rs/clap/releases) - [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md) - [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.15...clap_complete-v4.5.16) Updates `clap_complete` from 4.5.14 to 4.5.18 - [Release notes](https://github.com/clap-rs/clap/releases) - [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md) - [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.14...clap_complete-v4.5.18) Updates `concread` from 0.5.2 to 0.5.3 - [Commits](https://github.com/kanidm/concread/commits) Updates `js-sys` from 0.3.69 to 0.3.70 - [Release notes](https://github.com/rustwasm/wasm-bindgen/releases) - [Changelog](https://github.com/rustwasm/wasm-bindgen/blob/main/CHANGELOG.md) - [Commits](https://github.com/rustwasm/wasm-bindgen/commits) Updates `ldap3_client` from 0.5.0 to 0.5.1 - [Changelog](https://github.com/kanidm/ldap3/blob/master/RELEASE_NOTES.md) - [Commits](https://github.com/kanidm/ldap3/commits) Updates `ldap3_proto` from 0.5.0 to 0.5.1 - [Changelog](https://github.com/kanidm/ldap3/blob/master/RELEASE_NOTES.md) - [Commits](https://github.com/kanidm/ldap3/commits) Updates `libc` from 0.2.155 to 0.2.157 - [Release notes](https://github.com/rust-lang/libc/releases) - [Changelog](https://github.com/rust-lang/libc/blob/0.2.157/CHANGELOG.md) - [Commits](https://github.com/rust-lang/libc/compare/0.2.155...0.2.157) Updates `lodepng` from 3.10.4 to 3.10.5 - [Commits](https://github.com/kornelski/lodepng-rust/compare/v3.10.4...v3.10.5) Updates `serde` from 1.0.206 to 1.0.208 - [Release notes](https://github.com/serde-rs/serde/releases) - [Commits](https://github.com/serde-rs/serde/compare/v1.0.206...v1.0.208) Updates `serde_json` from 1.0.124 to 1.0.125 - [Release notes](https://github.com/serde-rs/json/releases) - [Commits](https://github.com/serde-rs/json/compare/v1.0.124...1.0.125) Updates `syn` from 2.0.74 to 2.0.75 - [Release notes](https://github.com/dtolnay/syn/releases) - [Commits](https://github.com/dtolnay/syn/compare/2.0.74...2.0.75) Updates `tokio` from 1.39.2 to 1.39.3 - [Release notes](https://github.com/tokio-rs/tokio/releases) - [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.39.2...tokio-1.39.3) Updates `wasm-bindgen` from 0.2.92 to 0.2.93 - [Release notes](https://github.com/rustwasm/wasm-bindgen/releases) - [Changelog](https://github.com/rustwasm/wasm-bindgen/blob/main/CHANGELOG.md) - [Commits](https://github.com/rustwasm/wasm-bindgen/compare/0.2.92...0.2.93) Updates `wasm-bindgen-futures` from 0.4.42 to 0.4.43 - [Release notes](https://github.com/rustwasm/wasm-bindgen/releases) - [Changelog](https://github.com/rustwasm/wasm-bindgen/blob/main/CHANGELOG.md) - [Commits](https://github.com/rustwasm/wasm-bindgen/commits) Updates `wasm-bindgen-test` from 0.3.42 to 0.3.43 - [Release notes](https://github.com/rustwasm/wasm-bindgen/releases) - [Changelog](https://github.com/rustwasm/wasm-bindgen/blob/main/CHANGELOG.md) - [Commits](https://github.com/rustwasm/wasm-bindgen/commits) Updates `web-sys` from 0.3.69 to 0.3.70 - [Release notes](https://github.com/rustwasm/wasm-bindgen/releases) - [Changelog](https://github.com/rustwasm/wasm-bindgen/blob/main/CHANGELOG.md) - [Commits](https://github.com/rustwasm/wasm-bindgen/commits) Updates `tower` from 0.4.13 to 0.5.0 - [Release notes](https://github.com/tower-rs/tower/releases) - [Commits](https://github.com/tower-rs/tower/compare/tower-0.4.13...tower-0.5.0) --- updated-dependencies: - dependency-name: clap dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all - dependency-name: clap_complete dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all - dependency-name: concread dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all - dependency-name: js-sys dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all - dependency-name: ldap3_client dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all - dependency-name: ldap3_proto dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all - dependency-name: libc dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all - dependency-name: lodepng dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all - dependency-name: serde dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all - dependency-name: serde_json dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all - dependency-name: syn dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all - dependency-name: tokio dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all - dependency-name: wasm-bindgen dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all - dependency-name: wasm-bindgen-futures dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all - dependency-name: wasm-bindgen-test dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all - dependency-name: web-sys dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all - dependency-name: tower dependency-type: direct:production update-type: version-update:semver-minor dependency-group: all ... Signed-off-by: dependabot[bot] <support@github.com> * updates to source/packages * making the nightly build happy * making the nightly build happy * making the nightly build happy --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: James Hodgkinson <james@terminaloutcomes.com>
139 lines
5.9 KiB
Rust
139 lines
5.9 KiB
Rust
use std::time::{Duration, Instant, SystemTime};
|
|
|
|
use criterion::{
|
|
criterion_group, criterion_main, BenchmarkId, Criterion, SamplingMode, Throughput,
|
|
};
|
|
|
|
use kanidmd_lib::entry::{Entry, EntryInit, EntryNew};
|
|
use kanidmd_lib::entry_init;
|
|
use kanidmd_lib::prelude::{Attribute, EntryClass};
|
|
use kanidmd_lib::testkit::{setup_idm_test, TestConfiguration};
|
|
use kanidmd_lib::value::Value;
|
|
|
|
pub fn duration_from_epoch_now() -> Duration {
|
|
#[allow(clippy::expect_used)]
|
|
SystemTime::now()
|
|
.duration_since(SystemTime::UNIX_EPOCH)
|
|
.expect("invalid duration from epoch now")
|
|
}
|
|
|
|
pub fn scaling_user_create_single(c: &mut Criterion) {
|
|
let mut group = c.benchmark_group("user_create_single");
|
|
group.sample_size(10);
|
|
group.sampling_mode(SamplingMode::Flat);
|
|
group.warm_up_time(Duration::from_secs(5));
|
|
group.measurement_time(Duration::from_secs(120));
|
|
|
|
for size in &[100, 250, 500, 1000, 1500, 2000, 5000, 10000] {
|
|
group.throughput(Throughput::Elements(*size));
|
|
group.bench_with_input(BenchmarkId::from_parameter(size), size, |b, &size| {
|
|
b.iter_custom(|iters| {
|
|
let mut elapsed = Duration::from_secs(0);
|
|
println!("iters, size -> {iters:?}, {size:?}");
|
|
|
|
for _i in 0..iters {
|
|
let mut rt = tokio::runtime::Builder::new_current_thread();
|
|
elapsed = rt
|
|
.enable_all()
|
|
.build()
|
|
.expect("Failed building the Runtime")
|
|
.block_on(async {
|
|
let (idms, _idms_delayed, _idms_audit) =
|
|
setup_idm_test(TestConfiguration::default()).await;
|
|
|
|
let ct = duration_from_epoch_now();
|
|
let start = Instant::now();
|
|
for counter in 0..size {
|
|
let mut idms_prox_write =
|
|
idms.proxy_write(ct).await.expect("Failed to get write txn");
|
|
let name = format!("testperson_{counter}");
|
|
let e1 = entry_init!(
|
|
(Attribute::Class, EntryClass::Object.to_value()),
|
|
(Attribute::Class, EntryClass::Person.to_value()),
|
|
(Attribute::Class, EntryClass::Account.to_value()),
|
|
(Attribute::Name, Value::new_iname(&name)),
|
|
(Attribute::Description, Value::new_utf8s("criterion")),
|
|
(Attribute::DisplayName, Value::new_utf8s(&name))
|
|
);
|
|
|
|
let cr = idms_prox_write.qs_write.internal_create(vec![e1]);
|
|
assert!(cr.is_ok());
|
|
|
|
idms_prox_write.commit().expect("Must not fail");
|
|
}
|
|
elapsed.checked_add(start.elapsed()).unwrap()
|
|
});
|
|
}
|
|
elapsed
|
|
});
|
|
});
|
|
}
|
|
group.finish();
|
|
}
|
|
|
|
pub fn scaling_user_create_batched(c: &mut Criterion) {
|
|
let mut group = c.benchmark_group("user_create_batched");
|
|
group.sample_size(10);
|
|
group.sampling_mode(SamplingMode::Flat);
|
|
group.warm_up_time(Duration::from_secs(5));
|
|
group.measurement_time(Duration::from_secs(120));
|
|
|
|
for size in &[100, 250, 500, 1000, 1500, 2000, 5000, 10000] {
|
|
group.throughput(Throughput::Elements(*size));
|
|
group.bench_with_input(BenchmarkId::from_parameter(size), size, |b, &size| {
|
|
b.iter_custom(|iters| {
|
|
let mut elapsed = Duration::from_secs(0);
|
|
println!("iters, size -> {iters:?}, {size:?}");
|
|
|
|
let data: Vec<_> = (0..size)
|
|
.map(|i| {
|
|
let name = format!("testperson_{i}");
|
|
entry_init!(
|
|
(Attribute::Class, EntryClass::Object.to_value()),
|
|
(Attribute::Class, EntryClass::Person.to_value()),
|
|
(Attribute::Class, EntryClass::Account.to_value()),
|
|
(Attribute::Name, Value::new_iname(&name)),
|
|
(Attribute::Description, Value::new_utf8s("criterion")),
|
|
(Attribute::DisplayName, Value::new_utf8s(&name))
|
|
)
|
|
})
|
|
.collect();
|
|
|
|
for _i in 0..iters {
|
|
let mut rt = tokio::runtime::Builder::new_current_thread();
|
|
elapsed = rt
|
|
.enable_all()
|
|
.build()
|
|
.expect("Failed building the Runtime")
|
|
.block_on(async {
|
|
let (idms, _idms_delayed, _idms_audit) =
|
|
setup_idm_test(TestConfiguration::default()).await;
|
|
|
|
let ct = duration_from_epoch_now();
|
|
let start = Instant::now();
|
|
|
|
let mut idms_prox_write =
|
|
idms.proxy_write(ct).await.expect("Failed to get write txn");
|
|
let cr = idms_prox_write.qs_write.internal_create(data.clone());
|
|
assert!(cr.is_ok());
|
|
|
|
idms_prox_write.commit().expect("Must not fail");
|
|
elapsed.checked_add(start.elapsed()).unwrap()
|
|
});
|
|
}
|
|
elapsed
|
|
});
|
|
});
|
|
}
|
|
group.finish();
|
|
}
|
|
|
|
criterion_group!(
|
|
name = scaling_basic;
|
|
config = Criterion::default()
|
|
.measurement_time(Duration::from_secs(15))
|
|
.with_plots();
|
|
targets = scaling_user_create_single, scaling_user_create_batched
|
|
);
|
|
criterion_main!(scaling_basic);
|