From 83868d2968de9809b9485d9cb5f2f1c6b49c6172 Mon Sep 17 00:00:00 2001
From: Per Lindgren <per.lindgren@ltu.se>
Date: Fri, 2 Apr 2021 19:35:27 +0200
Subject: [PATCH] pool benchmark

---
 benchmark/README.md | 54 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 54 insertions(+)
 create mode 100644 benchmark/README.md

diff --git a/benchmark/README.md b/benchmark/README.md
new file mode 100644
index 0000000..1e3c30a
--- /dev/null
+++ b/benchmark/README.md
@@ -0,0 +1,54 @@
+# Benchmark
+
+Here we focus on the allocation and deallocation.
+
+``` Rust
+mod app {
+    pub const U: usize = 2;
+    pub static P: PoolMan<u32, U> = PoolMan::new([0; U]);
+    ...
+}
+
+use poolman::{Poolman, Box, Error};
+
+#[inline(never)]
+fn just_alloc() -> Result<Box<u32, { app::U }>, Error> {
+    app::P.alloc()
+}
+```
+
+``` arm
+
+08000256 <poolman::just_alloc>:
+ 8000256:	b580      	push	{r7, lr}
+ 8000258:	466f      	mov	r7, sp
+ 800025a:	f240 0200 	movw	r2, #0
+ 800025e:	f2c2 0200 	movt	r2, #8192	; 0x2000
+ 8000262:	f892 1028 	ldrb.w	r1, [r2, #40]	; 0x28
+ 8000266:	b171      	cbz	r1, 8000286 <poolman::just_alloc+0x30>
+ 8000268:	f3ef 8c10 	mrs	ip, PRIMASK
+ 800026c:	b672      	cpsid	i
+ 800026e:	6a53      	ldr	r3, [r2, #36]	; 0x24
+ 8000270:	f00c 0c01 	and.w	ip, ip, #1
+ 8000274:	eb02 0183 	add.w	r1, r2, r3, lsl #2
+ 8000278:	69c9      	ldr	r1, [r1, #28]
+ 800027a:	6251      	str	r1, [r2, #36]	; 0x24
+ 800027c:	2903      	cmp	r1, #3
+ 800027e:	d305      	bcc.n	800028c <poolman::just_alloc+0x36>
+ 8000280:	2201      	movs	r2, #1
+ 8000282:	7042      	strb	r2, [r0, #1]
+ 8000284:	e007      	b.n	8000296 <poolman::just_alloc+0x40>
+ 8000286:	2101      	movs	r1, #1
+ 8000288:	8001      	strh	r1, [r0, #0]
+ 800028a:	bd80      	pop	{r7, pc}
+ 800028c:	f102 0114 	add.w	r1, r2, #20
+ 8000290:	2200      	movs	r2, #0
+ 8000292:	e9c0 3101 	strd	r3, r1, [r0, #4]
+ 8000296:	f1bc 0f00 	cmp.w	ip, #0
+ 800029a:	7002      	strb	r2, [r0, #0]
+ 800029c:	bf18      	it	ne
+ 800029e:	bd80      	popne	{r7, pc}
+ 80002a0:	b662      	cpsie	i
+ 80002a2:	bd80      	pop	{r7, pc}
+
+```
-- 
GitLab