public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Michał Górny" <mgorny@gentoo.org>
To: gentoo-dev@lists.gentoo.org
Cc: "Michał Górny" <mgorny@gentoo.org>
Subject: [gentoo-dev] [PATCH 1/5] eclass/tests: Add a minimal benchmark for cargo.eclass
Date: Fri, 16 Jun 2023 14:01:04 +0200	[thread overview]
Message-ID: <20230616120739.8656-2-mgorny@gentoo.org> (raw)
In-Reply-To: <20230616120739.8656-1-mgorny@gentoo.org>

The initial results on my machine are:

```
real  252 it/s
user  289 it/s
```

Signed-off-by: Michał Górny <mgorny@gentoo.org>
---
 eclass/tests/cargo-bench.sh | 107 ++++++++++++++++++++++++++++++++++++
 1 file changed, 107 insertions(+)
 create mode 100755 eclass/tests/cargo-bench.sh

diff --git a/eclass/tests/cargo-bench.sh b/eclass/tests/cargo-bench.sh
new file mode 100755
index 000000000000..cdc5e4431c14
--- /dev/null
+++ b/eclass/tests/cargo-bench.sh
@@ -0,0 +1,107 @@
+#!/bin/bash
+# Copyright 2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+source tests-common.sh || exit
+
+export LC_ALL=C
+
+ITERATIONS=1000
+RUNS=3
+
+doit() {
+	for (( i = 0; i < ITERATIONS; i++ )); do
+		SRC_URI="
+			$(cargo_crate_uris)
+		"
+	done
+}
+
+timeit() {
+	local real=()
+	local user=()
+	local x vr avg
+
+	for (( x = 0; x < RUNS; x++ )); do
+		while read tt tv; do
+			case ${tt} in
+				real) real+=( ${tv} );;
+				user) user+=( ${tv} );;
+			esac
+		done < <( ( time -p doit ) 2>&1 )
+	done
+
+	[[ ${#real[@]} == ${RUNS} ]] || die "Did not get ${RUNS} real times"
+	[[ ${#user[@]} == ${RUNS} ]] || die "Did not get ${RUNS} user times"
+
+	local xr avg
+	for x in real user; do
+		xr="${x}[*]"
+		avg=$(dc -S 3 -e "${ITERATIONS} ${RUNS} * ${!xr} + + / p")
+
+		printf '%s %4.0f it/s\n' "${x}" "${avg}"
+	done
+}
+
+# taken from cryptograpy-41.0.1
+CRATES="
+	Inflector-0.11.4
+	aliasable-0.1.3
+	asn1-0.15.2
+	asn1_derive-0.15.2
+	autocfg-1.1.0
+	base64-0.13.1
+	bitflags-1.3.2
+	cc-1.0.79
+	cfg-if-1.0.0
+	foreign-types-0.3.2
+	foreign-types-shared-0.1.1
+	indoc-1.0.9
+	libc-0.2.144
+	lock_api-0.4.9
+	memoffset-0.8.0
+	once_cell-1.17.2
+	openssl-0.10.54
+	openssl-macros-0.1.1
+	openssl-sys-0.9.88
+	ouroboros-0.15.6
+	ouroboros_macro-0.15.6
+	parking_lot-0.12.1
+	parking_lot_core-0.9.7
+	pem-1.1.1
+	pkg-config-0.3.27
+	proc-macro-error-1.0.4
+	proc-macro-error-attr-1.0.4
+	proc-macro2-1.0.59
+	pyo3-0.18.3
+	pyo3-build-config-0.18.3
+	pyo3-ffi-0.18.3
+	pyo3-macros-0.18.3
+	pyo3-macros-backend-0.18.3
+	quote-1.0.28
+	redox_syscall-0.2.16
+	scopeguard-1.1.0
+	smallvec-1.10.0
+	syn-1.0.109
+	syn-2.0.18
+	target-lexicon-0.12.7
+	unicode-ident-1.0.9
+	unindent-0.1.11
+	vcpkg-0.2.15
+	version_check-0.9.4
+	windows-sys-0.45.0
+	windows-targets-0.42.2
+	windows_aarch64_gnullvm-0.42.2
+	windows_aarch64_msvc-0.42.2
+	windows_i686_gnu-0.42.2
+	windows_i686_msvc-0.42.2
+	windows_x86_64_gnu-0.42.2
+	windows_x86_64_gnullvm-0.42.2
+	windows_x86_64_msvc-0.42.2
+"
+
+inherit cargo
+timeit
+
+texit
-- 
2.41.0



  reply	other threads:[~2023-06-16 12:08 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-06-16 12:01 [gentoo-dev] [PATCH 0/5] cargo.eclass: optimizations Michał Górny
2023-06-16 12:01 ` Michał Górny [this message]
2023-06-16 12:01 ` [gentoo-dev] [PATCH 2/5] cargo.eclass: Add variable alternative to $(cargo_crate_uris) Michał Górny
2023-06-16 12:01 ` [gentoo-dev] [PATCH 3/5] cargo.eclass: Optimize GIT_CRATES check Michał Górny
2023-06-16 12:01 ` [gentoo-dev] [PATCH 4/5] cargo.eclass: Support separating crate names/versions via slash Michał Górny
2023-06-16 14:48   ` Denis Lisov
2023-06-16 15:52     ` Michał Górny
2023-06-16 18:06       ` Sam James
2023-06-16 12:01 ` [gentoo-dev] [PATCH 5/5] cargo.eclass: Mark GIT_CRATES as pre-inherit Michał Górny

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230616120739.8656-2-mgorny@gentoo.org \
    --to=mgorny@gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox