Repository: cobbler/cobbler (language: python)

Issue:
Ever slower adding of nodes, huge slow down since 3.2.x
### Describe the bug

I built 3.3.3 and 3.4.0 branches from git.  I noticed that cobbler sync, launching cobblerd, and even things like minor edits to a profile to set a template get ever slower.  On a 3.2.x system I have a cobbler sync takes 3-5 seconds, with 3.3.3 or 3.4.0 it's more like 15-20 minutes.

From what I can tell the more systems I add the more repetitions I get of:
```
[Thread-1406] 2022-07-05T17:19:41 - INFO | grab_tree found 3 children (including settings) of this object
[Thread-1406] 2022-07-05T17:19:41 - INFO | grab_tree found 3 children (including settings) of this object
[Thread-1406] 2022-07-05T17:19:41 - INFO | grab_tree found 3 children (including settings) of this object
[Thread-1406] 2022-07-05T17:19:41 - INFO | grab_tree found 3 children (including settings) of this object
[Thread-1406] 2022-07-05T17:19:41 - INFO | grab_tree found 3 children (including settings) of this object
[Thread-1406] 2022-07-05T17:19:41 - INFO | grab_tree found 3 children (including settings) of this object
[Thread-1406] 2022-07-05T17:19:41 - INFO | grab_tree found 3 children (including settings) of this object
```

Even running really simple stuff like:
```
cobbler system add --name=admin10 --mac=3c:ec:ef:71:db:70 --netboot=true --profile=rocky86-x86_64 --dns-name=admin10.swtestcluster.example.com --ip-address=192.168.3.32 --hostname=admin10.swtestcluster.example.com --netmask=255.255.0.0 --gateway=192.168.1.2
```

Runs at 77 per minute, when I have no system, but then down to 28 per minute when I have 300 nodes added.  It keeps slowing and I was hoping to have 500 nodes and 500 IPMI interfaces in the database.  With 1000 nodes even launching cobblerd takes 90 seconds, when I strace cobblerd it looks like it's blocking on reading a ton of random numbers.  Maybe a 50-100 numbers per host or something?

Building the cobbler database isn't that bad, but waiting 15-20 minutes for a cobbler sync does make any changes pretty painful.  Am I doing something wrong?

<!--- A clear and concise description of what the bug is. -->

<!--- HINT: You can paste gist.github.com links for long logs or larger files -->

### Steps to reproduce

1. git clone (3.4.0 is default now, but 3.3.3 branch seems to behave the same way
2. `rm -rf /var/lib/python3.6/cobbler*`
3. `cd cobbler; make install`
4. download Rocky-8.6-x86_64-minimal.iso
5. `mkdir /mnt/dvd1; mount -o loop Rocky-8.6-x86_64-minimal.iso /mnt/dvd1`
6. `cobbler import --path=/mnt/dvd1 --name=rocky86`
7. add 1000 nodes along the lines of
    `cobbler system add --name=admin10 --mac=3c:ec:ef:71:db:70 --netboot=true --profile=rocky86-x86_64 --dns-name=admin10.swtestcluster.example.com --ip-address=192.168.3.32 --hostname=admin10.swtestcluster.example.com --netmask=255.255.0.0 --gateway=192.168.1.2`
8. time cobbler sync
9. watch 1000s of lines of "grab_tree found 4 children (including settings) of this object"
10. wait a few minutes for 400 nodes, but 15+ minutes for 1000 nodes.
11. Wait 90 seconds or so for cobblerd to launch
12. Wait for minutes for a `cobbler profile edit --autoinstall=`
13. Wait for an entire minute for a single `cobbler system add`

### Expected behavior

I was expecting cobbler system add and cobbler sync to run in a few seconds.  3.2.x can sync 1000 nodes in 5 seconds.  Cobblerd should start in a few seconds, and minor profile edits should run in a few seconds.

### Cobbler version

```
[root@nas-1-1 cobbler]# cobbler version
Cobbler 3.3.3
  source: 5c498dbf, Thu Jun 2 18:01:33 2022 +0200
  build time: Tue Jul  5 23:13:40 2022
```

### Operating system

Rocky 8.6 (a RHEL/CentOS variant)

### Cobbler log

Here's a snipped, for adding 1000 nodes it's something like 400,000 lines:
```
[Thread-4923] 2022-07-05T17:35:47 - DEBUG | REMOTE CLI Authorized; user(?)
[Thread-4923] 2022-07-05T17:35:47 - INFO | add_item(system); ['mc1-35']
[Thread-4923] 2022-07-05T17:35:47 - DEBUG | running python triggers from /var/lib/cobbler/triggers/add/system/pre/*
[Thread-4923] 2022-07-05T17:35:47 - DEBUG | running shell triggers from /var/lib/cobbler/triggers/add/system/pre/*
[Thread-4923] 2022-07-05T17:35:47 - DEBUG | shell triggers finished successfully
[Thread-4923] 2022-07-05T17:35:47 - INFO | grab_tree found 3 children (including settings) of this object
[Thread-4923] 2022-07-05T17:35:47 - INFO | grab_tree found 3 children (including settings) of this object
[Thread-4923] 2022-07-05T17:35:47 - INFO | grab_tree found 3 children (including settings) of this object
[Thread-4923] 2022-07-05T17:35:47 - INFO | grab_tree found 3 children (including settings) of this object
[Thread-4923] 2022-07-05T17:35:47 - INFO | grab_tree found 3 children (including settings) of this object
[Thread-4923] 2022-07-05T17:35:47 - INFO | grab_tree found 3 children (including settings) of this object
[Thread-4923] 2022-07-05T17:35:47 - INFO | grab_tree found 3 children (including settings) of this object
[Thread-4923] 2022-07-05T17:35:47 - INFO | grab_tree found 3 children (including settings) of this object
[Thread-4923] 2022-07-05T17:35:47 - INFO | grab_tree found 3 children (including settings) of this object
[Thread-4923] 2022-07-05T17:35:47 - INFO | grab_tree found 4 children (including settings) of this object
[Thread-4923] 2022-07-05T17:35:47 - INFO | grab_tree found 4 children (including settings) of this object
[Thread-4923] 2022-07-05T17:35:47 - INFO | grab_tree found 4 children (including settings) of this object
[Thread-4923] 2022-07-05T17:35:47 - INFO | generating: /var/lib/tftpboot/pxelinux.cfg/01-3c-ec-ef-70-61-cb
[Thread-4923] 2022-07-05T17:35:47 - INFO | grab_tree found 4 children (including settings) of this object
[Thread-4923] 2022-07-05T17:35:47 - INFO | grab_tree found 4 children (including settings) of this object
[Thread-4923] 2022-07-05T17:35:47 - INFO | grab_tree found 4 children (including settings) of this object
[Thread-4923] 2022-07-05T17:35:47 - INFO | generating: /var/lib/tftpboot/grub/system/3c:ec:ef:70:61:cb
[Thread-4923] 2022-07-05T17:35:47 - INFO | Writing template files for mc1-35
```




Discussion / hints:
I've gotten things working, but nearly identical configurations are something like 100x slower than 3.2.x.

Would it be helpful to profile 3.2.2 vs 3.4.0?  Even simple things like setting netboot to on takes 34 seconds instead of 0.4 seconds.
@bill-broadley If you would do that, that would be a massive help! If you can't do it, I will do it as part of my work for the next SUSE Manager version 4.4 probably but it is not yet set in stone.
@bill-broadley Can you try: #3180 please? I wanted to do this more proper (at least one of the 2 commits), but this is intrusive and I do not see that this can happen any time soon.
One of the last commits to `main` (85d4877108fc04308b5d422af40dc311a948938d) just reintroduced caching. With the merge of #3363 this should get better even more.

Do you have the capacity to verify if the performance has increased in a level that you would expect @bill-broadley after the merge of the mentioned PR? Independant if that is in your capacity or not, could you please communicate your expectations in #3341?

Fix patch:
diff --git a/.benchmarks/Linux-CPython-3.11-64bit/0001_fa663b82919798d9eb623bdd9e021a747b186ddb_20240528_151313_uncommited-changes.json b/.benchmarks/Linux-CPython-3.11-64bit/0001_fa663b82919798d9eb623bdd9e021a747b186ddb_20240528_151313_uncommited-changes.json
new file mode 100644
index 0000000000..5bcad49cab
--- /dev/null
+++ b/.benchmarks/Linux-CPython-3.11-64bit/0001_fa663b82919798d9eb623bdd9e021a747b186ddb_20240528_151313_uncommited-changes.json
@@ -0,0 +1,6426 @@
+{
+    "machine_info": {
+        "node": "511198d88100",
+        "processor": "x86_64",
+        "machine": "x86_64",
+        "python_compiler": "GCC",
+        "python_implementation": "CPython",
+        "python_implementation_version": "3.11.7",
+        "python_version": "3.11.7",
+        "python_build": [
+            "main",
+            "Dec 15 2023 10:49:17"
+        ],
+        "release": "5.15.0-1064-azure",
+        "system": "Linux",
+        "cpu": {
+            "python_version": "3.11.7.final.0 (64 bit)",
+            "cpuinfo_version": [
+                9,
+                0,
+                0
+            ],
+            "cpuinfo_version_string": "9.0.0",
+            "arch": "X86_64",
+            "bits": 64,
+            "count": 4,
+            "arch_string_raw": "x86_64",
+            "vendor_id_raw": "AuthenticAMD",
+            "brand_raw": "AMD EPYC 7763 64-Core Processor",
+            "hz_advertised_friendly": "2.4454 GHz",
+            "hz_actual_friendly": "2.4454 GHz",
+            "hz_advertised": [
+                2445431000,
+                0
+            ],
+            "hz_actual": [
+                2445431000,
+                0
+            ],
+            "stepping": 1,
+            "model": 1,
+            "family": 25,
+            "flags": [
+                "3dnowext",
+                "3dnowprefetch",
+                "abm",
+                "adx",
+                "aes",
+                "aperfmperf",
+                "apic",
+                "arat",
+                "avx",
+                "avx2",
+                "bmi1",
+                "bmi2",
+                "clflush",
+                "clflushopt",
+                "clwb",
+                "clzero",
+                "cmov",
+                "cmp_legacy",
+                "constant_tsc",
+                "cpuid",
+                "cr8_legacy",
+                "cx16",
+                "cx8",
+                "de",
+                "decodeassists",
+                "erms",
+                "extd_apicid",
+                "f16c",
+                "flushbyasid",
+                "fma",
+                "fpu",
+                "fsgsbase",
+                "fsrm",
+                "fxsr",
+                "fxsr_opt",
+                "ht",
+                "hypervisor",
+                "invpcid",
+                "invpcid_single",
+                "lahf_lm",
+                "lm",
+                "mca",
+                "mce",
+                "misalignsse",
+                "mmx",
+                "mmxext",
+                "movbe",
+                "msr",
+                "mtrr",
+                "nonstop_tsc",
+                "nopl",
+                "npt",
+                "nrip_save",
+                "nx",
+                "osvw",
+                "osxsave",
+                "pae",
+                "pat",
+                "pausefilter",
+                "pcid",
+                "pclmulqdq",
+                "pdpe1gb",
+                "pfthreshold",
+                "pge",
+                "pni",
+                "popcnt",
+                "pse",
+                "pse36",
+                "rdpid",
+                "rdpru",
+                "rdrand",
+                "rdrnd",
+                "rdseed",
+                "rdtscp",
+                "rep_good",
+                "sep",
+                "sha",
+                "sha_ni",
+                "smap",
+                "smep",
+                "sse",
+                "sse2",
+                "sse4_1",
+                "sse4_2",
+                "sse4a",
+                "ssse3",
+                "svm",
+                "syscall",
+                "topoext",
+                "tsc",
+                "tsc_reliable",
+                "tsc_scale",
+                "umip",
+                "v_vmsave_vmload",
+                "vaes",
+                "vmcb_clean",
+                "vme",
+                "vmmcall",
+                "vpclmulqdq",
+                "xgetbv1",
+                "xsave",
+                "xsavec",
+                "xsaveerptr",
+                "xsaveopt",
+                "xsaves"
+            ],
+            "l3_cache_size": 524288,
+            "l2_cache_size": 1048576,
+            "l1_data_cache_size": 65536,
+            "l1_instruction_cache_size": 65536,
+            "l2_cache_line_size": 512,
+            "l2_cache_associativity": 6
+        }
+    },
+    "commit_info": {
+        "id": "fa663b82919798d9eb623bdd9e021a747b186ddb",
+        "time": "2024-05-28T11:00:15+02:00",
+        "author_time": "2024-05-28T11:00:15+02:00",
+        "dirty": true,
+        "project": "cobbler",
+        "branch": "main"
+    },
+    "benchmarks": [
+        {
+            "group": null,
+            "name": "test_deserialize[False-False]",
+            "fullname": "tests/performance/deserialize_test.py::test_deserialize[False-False]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": false
+            },
+            "param": "False-False",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.0044043709999925795,
+                "max": 0.004728536000015993,
+                "mean": 0.004508843800000051,
+                "stddev": 6.593586757369362e-05,
+                "rounds": 40,
+                "median": 0.004490137499999491,
+                "iqr": 6.752450001101806e-05,
+                "q1": 0.004469406499993056,
+                "q3": 0.004536931000004074,
+                "iqr_outliers": 2,
+                "stddev_outliers": 12,
+                "outliers": "12;2",
+                "ld15iqr": 0.0044043709999925795,
+                "hd15iqr": 0.004663354000001618,
+                "ops": 221.7863479768336,
+                "total": 0.18035375200000203,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_deserialize[True-False]",
+            "fullname": "tests/performance/deserialize_test.py::test_deserialize[True-False]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": false
+            },
+            "param": "True-False",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.004459994000001188,
+                "max": 0.00671785499997668,
+                "mean": 0.004625529449999277,
+                "stddev": 0.0003601907307474914,
+                "rounds": 40,
+                "median": 0.004547230000014224,
+                "iqr": 7.77000000056205e-05,
+                "q1": 0.004517520999996805,
+                "q3": 0.004595221000002425,
+                "iqr_outliers": 2,
+                "stddev_outliers": 2,
+                "outliers": "2;2",
+                "ld15iqr": 0.004459994000001188,
+                "hd15iqr": 0.005239571999993586,
+                "ops": 216.19146755192668,
+                "total": 0.1850211779999711,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_deserialize[False-True]",
+            "fullname": "tests/performance/deserialize_test.py::test_deserialize[False-True]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": true
+            },
+            "param": "False-True",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.0044466819999797735,
+                "max": 0.004705588999968313,
+                "mean": 0.004549699375000671,
+                "stddev": 6.362897098691677e-05,
+                "rounds": 40,
+                "median": 0.004531242999973983,
+                "iqr": 9.488950001923513e-05,
+                "q1": 0.004501490999984981,
+                "q3": 0.004596380500004216,
+                "iqr_outliers": 0,
+                "stddev_outliers": 14,
+                "outliers": "14;0",
+                "ld15iqr": 0.0044466819999797735,
+                "hd15iqr": 0.004705588999968313,
+                "ops": 219.79474193277935,
+                "total": 0.18198797500002684,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_deserialize[True-True]",
+            "fullname": "tests/performance/deserialize_test.py::test_deserialize[True-True]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": true
+            },
+            "param": "True-True",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.004491588999940177,
+                "max": 0.004771269000002576,
+                "mean": 0.004602204850003488,
+                "stddev": 6.820822453085054e-05,
+                "rounds": 40,
+                "median": 0.00460137649997705,
+                "iqr": 8.137699995813819e-05,
+                "q1": 0.0045517015000200445,
+                "q3": 0.004633078499978183,
+                "iqr_outliers": 1,
+                "stddev_outliers": 12,
+                "outliers": "12;1",
+                "ld15iqr": 0.004491588999940177,
+                "hd15iqr": 0.004771269000002576,
+                "ops": 217.28715530757873,
+                "total": 0.18408819400013954,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_get_autoinstall[False-profile]",
+            "fullname": "tests/performance/get_autoinstall_test.py::test_get_autoinstall[False-profile]",
+            "params": {
+                "cache_enabled": false,
+                "what": "profile"
+            },
+            "param": "False-profile",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.03661516499994377,
+                "max": 0.10300194599994938,
+                "mean": 0.03907013627499793,
+                "stddev": 0.010382102357076296,
+                "rounds": 40,
+                "median": 0.03737310449997722,
+                "iqr": 0.0009614154999439961,
+                "q1": 0.03694652950002819,
+                "q3": 0.03790794499997219,
+                "iqr_outliers": 1,
+                "stddev_outliers": 1,
+                "outliers": "1;1",
+                "ld15iqr": 0.03661516499994377,
+                "hd15iqr": 0.10300194599994938,
+                "ops": 25.594996468950832,
+                "total": 1.5628054509999174,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_get_autoinstall[False-system]",
+            "fullname": "tests/performance/get_autoinstall_test.py::test_get_autoinstall[False-system]",
+            "params": {
+                "cache_enabled": false,
+                "what": "system"
+            },
+            "param": "False-system",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.007792173000098046,
+                "max": 0.008188019000044733,
+                "mean": 0.007974061050018123,
+                "stddev": 0.00011322556842602312,
+                "rounds": 40,
+                "median": 0.007978058000048804,
+                "iqr": 0.00016458850001299652,
+                "q1": 0.007893320999983189,
+                "q3": 0.008057909499996185,
+                "iqr_outliers": 0,
+                "stddev_outliers": 15,
+                "outliers": "15;0",
+                "ld15iqr": 0.007792173000098046,
+                "hd15iqr": 0.008188019000044733,
+                "ops": 125.40661448757373,
+                "total": 0.3189624420007249,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_get_autoinstall[True-profile]",
+            "fullname": "tests/performance/get_autoinstall_test.py::test_get_autoinstall[True-profile]",
+            "params": {
+                "cache_enabled": true,
+                "what": "profile"
+            },
+            "param": "True-profile",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.03534841300006519,
+                "max": 0.06579347699994287,
+                "mean": 0.036603367549994915,
+                "stddev": 0.0047530851456828995,
+                "rounds": 40,
+                "median": 0.03575795849997121,
+                "iqr": 0.0005118650000213165,
+                "q1": 0.035553594500015606,
+                "q3": 0.03606545950003692,
+                "iqr_outliers": 2,
+                "stddev_outliers": 1,
+                "outliers": "1;2",
+                "ld15iqr": 0.03534841300006519,
+                "hd15iqr": 0.03726548399993135,
+                "ops": 27.319890680390113,
+                "total": 1.4641347019997966,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_get_autoinstall[True-system]",
+            "fullname": "tests/performance/get_autoinstall_test.py::test_get_autoinstall[True-system]",
+            "params": {
+                "cache_enabled": true,
+                "what": "system"
+            },
+            "param": "True-system",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.00745695299997351,
+                "max": 0.008539863000009973,
+                "mean": 0.00768313852500171,
+                "stddev": 0.000188894085082563,
+                "rounds": 40,
+                "median": 0.007633983000005173,
+                "iqr": 0.00019305799997937356,
+                "q1": 0.007558984500008137,
+                "q3": 0.00775204249998751,
+                "iqr_outliers": 2,
+                "stddev_outliers": 6,
+                "outliers": "6;2",
+                "ld15iqr": 0.00745695299997351,
+                "hd15iqr": 0.008046962999969764,
+                "ops": 130.1551438576695,
+                "total": 0.30732554100006837,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_repos_create[cache_enabled0]",
+            "fullname": "tests/performance/item_add_test.py::test_repos_create[cache_enabled0]",
+            "params": {
+                "cache_enabled": [
+                    false
+                ]
+            },
+            "param": "cache_enabled0",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.0006512589999374541,
+                "max": 0.0023189419999880556,
+                "mean": 0.0007370463000000882,
+                "stddev": 0.0002634985801591932,
+                "rounds": 40,
+                "median": 0.00066805099999101,
+                "iqr": 6.604900005413583e-05,
+                "q1": 0.0006588339999780146,
+                "q3": 0.0007248830000321504,
+                "iqr_outliers": 4,
+                "stddev_outliers": 1,
+                "outliers": "1;4",
+                "ld15iqr": 0.0006512589999374541,
+                "hd15iqr": 0.0008502519999638025,
+                "ops": 1356.7668679700046,
+                "total": 0.029481852000003528,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_repos_create[cache_enabled1]",
+            "fullname": "tests/performance/item_add_test.py::test_repos_create[cache_enabled1]",
+            "params": {
+                "cache_enabled": [
+                    true
+                ]
+            },
+            "param": "cache_enabled1",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.0006565390000332627,
+                "max": 0.0011686279999594262,
+                "mean": 0.0007434061499964173,
+                "stddev": 0.00013644911577132457,
+                "rounds": 40,
+                "median": 0.0006833150000034038,
+                "iqr": 7.529549992568718e-05,
+                "q1": 0.0006630265000353575,
+                "q3": 0.0007383219999610446,
+                "iqr_outliers": 5,
+                "stddev_outliers": 5,
+                "outliers": "5;5",
+                "ld15iqr": 0.0006565390000332627,
+                "hd15iqr": 0.0009649669999589605,
+                "ops": 1345.1597084646385,
+                "total": 0.029736245999856692,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_distros_create[cache_enabled0]",
+            "fullname": "tests/performance/item_add_test.py::test_distros_create[cache_enabled0]",
+            "params": {
+                "cache_enabled": [
+                    false
+                ]
+            },
+            "param": "cache_enabled0",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.006546709999952327,
+                "max": 0.011546763999945142,
+                "mean": 0.007141192324999679,
+                "stddev": 0.0011907126742252963,
+                "rounds": 40,
+                "median": 0.006747235500029092,
+                "iqr": 0.0002543920001016886,
+                "q1": 0.006695132999936959,
+                "q3": 0.006949525000038648,
+                "iqr_outliers": 4,
+                "stddev_outliers": 3,
+                "outliers": "3;4",
+                "ld15iqr": 0.006546709999952327,
+                "hd15iqr": 0.007991194999931395,
+                "ops": 140.03263803710047,
+                "total": 0.28564769299998716,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_distros_create[cache_enabled1]",
+            "fullname": "tests/performance/item_add_test.py::test_distros_create[cache_enabled1]",
+            "params": {
+                "cache_enabled": [
+                    true
+                ]
+            },
+            "param": "cache_enabled1",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.0066304370000125346,
+                "max": 0.007984312999951726,
+                "mean": 0.006900424099993074,
+                "stddev": 0.00021004640863120193,
+                "rounds": 40,
+                "median": 0.00686279699999659,
+                "iqr": 0.00012824350005757879,
+                "q1": 0.006793914999946082,
+                "q3": 0.006922158500003661,
+                "iqr_outliers": 3,
+                "stddev_outliers": 4,
+                "outliers": "4;3",
+                "ld15iqr": 0.0066304370000125346,
+                "hd15iqr": 0.007165278999991642,
+                "ops": 144.91862898702178,
+                "total": 0.276016963999723,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_menus_create[cache_enabled0]",
+            "fullname": "tests/performance/item_add_test.py::test_menus_create[cache_enabled0]",
+            "params": {
+                "cache_enabled": [
+                    false
+                ]
+            },
+            "param": "cache_enabled0",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.0018900189999158101,
+                "max": 0.0036863940000557704,
+                "mean": 0.0021549175250157758,
+                "stddev": 0.0004123693366451083,
+                "rounds": 40,
+                "median": 0.0020438975000729442,
+                "iqr": 0.0001824705000785798,
+                "q1": 0.001947045999997954,
+                "q3": 0.0021295165000765337,
+                "iqr_outliers": 4,
+                "stddev_outliers": 3,
+                "outliers": "3;4",
+                "ld15iqr": 0.0018900189999158101,
+                "hd15iqr": 0.0025625389999959225,
+                "ops": 464.05488302513066,
+                "total": 0.08619670100063104,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_menus_create[cache_enabled1]",
+            "fullname": "tests/performance/item_add_test.py::test_menus_create[cache_enabled1]",
+            "params": {
+                "cache_enabled": [
+                    true
+                ]
+            },
+            "param": "cache_enabled1",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.0018775969999751396,
+                "max": 0.004795330999968428,
+                "mean": 0.0022545181250052337,
+                "stddev": 0.0005323184394493255,
+                "rounds": 40,
+                "median": 0.002044053500071641,
+                "iqr": 0.0004322194999417661,
+                "q1": 0.001961688500045966,
+                "q3": 0.002393907999987732,
+                "iqr_outliers": 2,
+                "stddev_outliers": 2,
+                "outliers": "2;2",
+                "ld15iqr": 0.0018775969999751396,
+                "hd15iqr": 0.003729744999986906,
+                "ops": 443.5537638437387,
+                "total": 0.09018072500020935,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_profiles_create[False-False]",
+            "fullname": "tests/performance/item_add_test.py::test_profiles_create[False-False]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": false
+            },
+            "param": "False-False",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.1340083700000605,
+                "max": 0.13876262700000552,
+                "mean": 0.1355277757250036,
+                "stddev": 0.0009129937990646612,
+                "rounds": 40,
+                "median": 0.13535089200001948,
+                "iqr": 0.0010246984999753295,
+                "q1": 0.13494897050003374,
+                "q3": 0.13597366900000907,
+                "iqr_outliers": 1,
+                "stddev_outliers": 7,
+                "outliers": "7;1",
+                "ld15iqr": 0.1340083700000605,
+                "hd15iqr": 0.13876262700000552,
+                "ops": 7.378561292329314,
+                "total": 5.421111029000144,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_profiles_create[True-False]",
+            "fullname": "tests/performance/item_add_test.py::test_profiles_create[True-False]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": false
+            },
+            "param": "True-False",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.0650250319999941,
+                "max": 0.06615990800003146,
+                "mean": 0.0655800842499957,
+                "stddev": 0.000280089272707499,
+                "rounds": 40,
+                "median": 0.06559097149994386,
+                "iqr": 0.0004705355000282907,
+                "q1": 0.0653358154999637,
+                "q3": 0.06580635099999199,
+                "iqr_outliers": 0,
+                "stddev_outliers": 15,
+                "outliers": "15;0",
+                "ld15iqr": 0.0650250319999941,
+                "hd15iqr": 0.06615990800003146,
+                "ops": 15.24853179797593,
+                "total": 2.6232033699998283,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_profiles_create[False-True]",
+            "fullname": "tests/performance/item_add_test.py::test_profiles_create[False-True]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": true
+            },
+            "param": "False-True",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.29792683400000897,
+                "max": 0.30727569600003335,
+                "mean": 0.3009009434500001,
+                "stddev": 0.0018583943138205962,
+                "rounds": 40,
+                "median": 0.30066869649999717,
+                "iqr": 0.001371816000016679,
+                "q1": 0.29993266200000335,
+                "q3": 0.30130447800002,
+                "iqr_outliers": 2,
+                "stddev_outliers": 9,
+                "outliers": "9;2",
+                "ld15iqr": 0.29792683400000897,
+                "hd15iqr": 0.3071762250000347,
+                "ops": 3.323352823472178,
+                "total": 12.036037738000005,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_profiles_create[True-True]",
+            "fullname": "tests/performance/item_add_test.py::test_profiles_create[True-True]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": true
+            },
+            "param": "True-True",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.188539000999981,
+                "max": 0.19239197799993235,
+                "mean": 0.18987496775000637,
+                "stddev": 0.0010106454580981732,
+                "rounds": 40,
+                "median": 0.18977863250006521,
+                "iqr": 0.0012986985001361973,
+                "q1": 0.1890357374999212,
+                "q3": 0.1903344360000574,
+                "iqr_outliers": 1,
+                "stddev_outliers": 12,
+                "outliers": "12;1",
+                "ld15iqr": 0.188539000999981,
+                "hd15iqr": 0.19239197799993235,
+                "ops": 5.266623672671916,
+                "total": 7.5949987100002545,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_images_create[cache_enabled0]",
+            "fullname": "tests/performance/item_add_test.py::test_images_create[cache_enabled0]",
+            "params": {
+                "cache_enabled": [
+                    false
+                ]
+            },
+            "param": "cache_enabled0",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.01891908099992179,
+                "max": 0.02016479700000673,
+                "mean": 0.019348565149994102,
+                "stddev": 0.0002908760970920447,
+                "rounds": 40,
+                "median": 0.01931436250004026,
+                "iqr": 0.0003801815000770148,
+                "q1": 0.0191231295000307,
+                "q3": 0.019503311000107715,
+                "iqr_outliers": 1,
+                "stddev_outliers": 13,
+                "outliers": "13;1",
+                "ld15iqr": 0.01891908099992179,
+                "hd15iqr": 0.02016479700000673,
+                "ops": 51.683419015714705,
+                "total": 0.773942605999764,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_images_create[cache_enabled1]",
+            "fullname": "tests/performance/item_add_test.py::test_images_create[cache_enabled1]",
+            "params": {
+                "cache_enabled": [
+                    true
+                ]
+            },
+            "param": "cache_enabled1",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.01885575100004644,
+                "max": 0.019976124000095297,
+                "mean": 0.019308312124985606,
+                "stddev": 0.00029147041022599114,
+                "rounds": 40,
+                "median": 0.019277632500006803,
+                "iqr": 0.00039738849989134906,
+                "q1": 0.019092152000098395,
+                "q3": 0.019489540499989744,
+                "iqr_outliers": 0,
+                "stddev_outliers": 11,
+                "outliers": "11;0",
+                "ld15iqr": 0.01885575100004644,
+                "hd15iqr": 0.019976124000095297,
+                "ops": 51.791166080538254,
+                "total": 0.7723324849994242,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_systems_create[False-False]",
+            "fullname": "tests/performance/item_add_test.py::test_systems_create[False-False]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": false
+            },
+            "param": "False-False",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 2.192642391999925,
+                "max": 2.2662926339999103,
+                "mean": 2.217370828675013,
+                "stddev": 0.015620059139034151,
+                "rounds": 40,
+                "median": 2.2145848540001225,
+                "iqr": 0.019479061999959413,
+                "q1": 2.205485868999972,
+                "q3": 2.2249649309999313,
+                "iqr_outliers": 1,
+                "stddev_outliers": 10,
+                "outliers": "10;1",
+                "ld15iqr": 2.192642391999925,
+                "hd15iqr": 2.2662926339999103,
+                "ops": 0.45098455660551323,
+                "total": 88.69483314700051,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_systems_create[True-False]",
+            "fullname": "tests/performance/item_add_test.py::test_systems_create[True-False]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": false
+            },
+            "param": "True-False",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 2.1353913400000692,
+                "max": 2.1928437270000813,
+                "mean": 2.157454659375014,
+                "stddev": 0.012563562933909825,
+                "rounds": 40,
+                "median": 2.1555896939999,
+                "iqr": 0.01501025150002988,
+                "q1": 2.1479100349999953,
+                "q3": 2.162920286500025,
+                "iqr_outliers": 1,
+                "stddev_outliers": 11,
+                "outliers": "11;1",
+                "ld15iqr": 2.1353913400000692,
+                "hd15iqr": 2.1928437270000813,
+                "ops": 0.46350916143456133,
+                "total": 86.29818637500057,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_systems_create[False-True]",
+            "fullname": "tests/performance/item_add_test.py::test_systems_create[False-True]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": true
+            },
+            "param": "False-True",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 2.4046442569999726,
+                "max": 2.465379748999794,
+                "mean": 2.4238531703749686,
+                "stddev": 0.013585142928795946,
+                "rounds": 40,
+                "median": 2.4222493165000287,
+                "iqr": 0.015908228500052246,
+                "q1": 2.4143718474999787,
+                "q3": 2.430280076000031,
+                "iqr_outliers": 2,
+                "stddev_outliers": 11,
+                "outliers": "11;2",
+                "ld15iqr": 2.4046442569999726,
+                "hd15iqr": 2.4553196949998437,
+                "ops": 0.41256624461509794,
+                "total": 96.95412681499874,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_systems_create[True-True]",
+            "fullname": "tests/performance/item_add_test.py::test_systems_create[True-True]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": true
+            },
+            "param": "True-True",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 2.289642196000159,
+                "max": 2.338661560999981,
+                "mean": 2.3177279685999737,
+                "stddev": 0.013517034404017443,
+                "rounds": 40,
+                "median": 2.3180545215000166,
+                "iqr": 0.01961770500008697,
+                "q1": 2.30951705699988,
+                "q3": 2.329134761999967,
+                "iqr_outliers": 0,
+                "stddev_outliers": 14,
+                "outliers": "14;0",
+                "ld15iqr": 2.289642196000159,
+                "hd15iqr": 2.338661560999981,
+                "ops": 0.43145701892015015,
+                "total": 92.70911874399894,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_all_items_create[False-False]",
+            "fullname": "tests/performance/item_add_test.py::test_all_items_create[False-False]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": false
+            },
+            "param": "False-False",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 2.4063657969998076,
+                "max": 2.4589184790002037,
+                "mean": 2.429250539149996,
+                "stddev": 0.01380388138835729,
+                "rounds": 40,
+                "median": 2.427605244999995,
+                "iqr": 0.01688325749989872,
+                "q1": 2.4201667860000953,
+                "q3": 2.437050043499994,
+                "iqr_outliers": 0,
+                "stddev_outliers": 14,
+                "outliers": "14;0",
+                "ld15iqr": 2.4063657969998076,
+                "hd15iqr": 2.4589184790002037,
+                "ops": 0.4116495947552219,
+                "total": 97.17002156599983,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_all_items_create[True-False]",
+            "fullname": "tests/performance/item_add_test.py::test_all_items_create[True-False]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": false
+            },
+            "param": "True-False",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 2.2323185430000194,
+                "max": 2.285091100000045,
+                "mean": 2.25778784957501,
+                "stddev": 0.011454023325247113,
+                "rounds": 40,
+                "median": 2.256657697000037,
+                "iqr": 0.01321482050002487,
+                "q1": 2.2510430695000423,
+                "q3": 2.264257890000067,
+                "iqr_outliers": 2,
+                "stddev_outliers": 11,
+                "outliers": "11;2",
+                "ld15iqr": 2.2323185430000194,
+                "hd15iqr": 2.284340931000088,
+                "ops": 0.4429114100282863,
+                "total": 90.3115139830004,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_all_items_create[False-True]",
+            "fullname": "tests/performance/item_add_test.py::test_all_items_create[False-True]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": true
+            },
+            "param": "False-True",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 2.8789311259999977,
+                "max": 2.9499692770000365,
+                "mean": 2.9131717705250137,
+                "stddev": 0.015850943426146805,
+                "rounds": 40,
+                "median": 2.9123357094999847,
+                "iqr": 0.017596686999922895,
+                "q1": 2.904381002500031,
+                "q3": 2.921977689499954,
+                "iqr_outliers": 1,
+                "stddev_outliers": 14,
+                "outliers": "14;1",
+                "ld15iqr": 2.8789311259999977,
+                "hd15iqr": 2.9499692770000365,
+                "ops": 0.343268464330814,
+                "total": 116.52687082100056,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_all_items_create[True-True]",
+            "fullname": "tests/performance/item_add_test.py::test_all_items_create[True-True]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": true
+            },
+            "param": "True-True",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 2.598222554000131,
+                "max": 2.663099864999822,
+                "mean": 2.619014157425016,
+                "stddev": 0.01335939504883669,
+                "rounds": 40,
+                "median": 2.6181601045001344,
+                "iqr": 0.014925548999940474,
+                "q1": 2.6113105309999582,
+                "q3": 2.6262360799998987,
+                "iqr_outliers": 2,
+                "stddev_outliers": 9,
+                "outliers": "9;2",
+                "ld15iqr": 2.598222554000131,
+                "hd15iqr": 2.6512902600002235,
+                "ops": 0.3818230600873071,
+                "total": 104.76056629700065,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_copy[False-False-repo]",
+            "fullname": "tests/performance/item_copy_test.py::test_item_copy[False-False-repo]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": false,
+                "what": "repo"
+            },
+            "param": "False-False-repo",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.00132933600002616,
+                "max": 0.0033979259999341593,
+                "mean": 0.0014605151499949899,
+                "stddev": 0.0003254530456452667,
+                "rounds": 40,
+                "median": 0.0013943369999651622,
+                "iqr": 7.715100002769759e-05,
+                "q1": 0.0013609220000034838,
+                "q3": 0.0014380730000311814,
+                "iqr_outliers": 2,
+                "stddev_outliers": 2,
+                "outliers": "2;2",
+                "ld15iqr": 0.00132933600002616,
+                "hd15iqr": 0.0018495909998819116,
+                "ops": 684.6899191723074,
+                "total": 0.05842060599979959,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_copy[False-False-distro]",
+            "fullname": "tests/performance/item_copy_test.py::test_item_copy[False-False-distro]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": false,
+                "what": "distro"
+            },
+            "param": "False-False-distro",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.07365249300028154,
+                "max": 0.07699043799993888,
+                "mean": 0.07478085410000972,
+                "stddev": 0.0005309832953051117,
+                "rounds": 40,
+                "median": 0.07474943649992838,
+                "iqr": 0.000409171499995864,
+                "q1": 0.07452751599998919,
+                "q3": 0.07493668749998506,
+                "iqr_outliers": 4,
+                "stddev_outliers": 8,
+                "outliers": "8;4",
+                "ld15iqr": 0.07411741299983987,
+                "hd15iqr": 0.07559437999998408,
+                "ops": 13.372406774902963,
+                "total": 2.9912341640003888,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_copy[False-False-menu]",
+            "fullname": "tests/performance/item_copy_test.py::test_item_copy[False-False-menu]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": false,
+                "what": "menu"
+            },
+            "param": "False-False-menu",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.0028857629999947676,
+                "max": 0.030331348999879992,
+                "mean": 0.003761521274964252,
+                "stddev": 0.004311606766204593,
+                "rounds": 40,
+                "median": 0.0030401275000713213,
+                "iqr": 0.00021628900003634044,
+                "q1": 0.002982956499863576,
+                "q3": 0.0031992454998999165,
+                "iqr_outliers": 1,
+                "stddev_outliers": 1,
+                "outliers": "1;1",
+                "ld15iqr": 0.0028857629999947676,
+                "hd15iqr": 0.030331348999879992,
+                "ops": 265.8498854321922,
+                "total": 0.1504608509985701,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_copy[False-False-profile]",
+            "fullname": "tests/performance/item_copy_test.py::test_item_copy[False-False-profile]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": false,
+                "what": "profile"
+            },
+            "param": "False-False-profile",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.27073548199996367,
+                "max": 0.2884960299998056,
+                "mean": 0.27827629910002544,
+                "stddev": 0.003212095134754492,
+                "rounds": 40,
+                "median": 0.2787140430002637,
+                "iqr": 0.002564099500204975,
+                "q1": 0.2773387995000576,
+                "q3": 0.27990289900026255,
+                "iqr_outliers": 5,
+                "stddev_outliers": 8,
+                "outliers": "8;5",
+                "ld15iqr": 0.27350189399976443,
+                "hd15iqr": 0.2884960299998056,
+                "ops": 3.5935507380042937,
+                "total": 11.131051964001017,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_copy[False-False-image]",
+            "fullname": "tests/performance/item_copy_test.py::test_item_copy[False-False-image]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": false,
+                "what": "image"
+            },
+            "param": "False-False-image",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.07671659300012834,
+                "max": 0.09585707299993373,
+                "mean": 0.07874343617502291,
+                "stddev": 0.0034741951965443917,
+                "rounds": 40,
+                "median": 0.0776308544998301,
+                "iqr": 0.000799814499941931,
+                "q1": 0.07732545000021673,
+                "q3": 0.07812526450015866,
+                "iqr_outliers": 7,
+                "stddev_outliers": 4,
+                "outliers": "4;7",
+                "ld15iqr": 0.07671659300012834,
+                "hd15iqr": 0.07936032399993564,
+                "ops": 12.699471201349425,
+                "total": 3.1497374470009163,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_copy[False-False-system]",
+            "fullname": "tests/performance/item_copy_test.py::test_item_copy[False-False-system]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": false,
+                "what": "system"
+            },
+            "param": "False-False-system",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 2.191890959000375,
+                "max": 2.2519794180002464,
+                "mean": 2.2101458604750635,
+                "stddev": 0.012811984524751876,
+                "rounds": 40,
+                "median": 2.2080086565001693,
+                "iqr": 0.02007020999985798,
+                "q1": 2.200019288500016,
+                "q3": 2.220089498499874,
+                "iqr_outliers": 1,
+                "stddev_outliers": 16,
+                "outliers": "16;1",
+                "ld15iqr": 2.191890959000375,
+                "hd15iqr": 2.2519794180002464,
+                "ops": 0.4524588254030679,
+                "total": 88.40583441900253,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_copy[True-False-repo]",
+            "fullname": "tests/performance/item_copy_test.py::test_item_copy[True-False-repo]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": false,
+                "what": "repo"
+            },
+            "param": "True-False-repo",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.0012300470002628572,
+                "max": 0.003229219999866473,
+                "mean": 0.001346048825030266,
+                "stddev": 0.00031250723643032156,
+                "rounds": 40,
+                "median": 0.0012913779999053077,
+                "iqr": 6.895749993418576e-05,
+                "q1": 0.001252975500165121,
+                "q3": 0.0013219330000993068,
+                "iqr_outliers": 2,
+                "stddev_outliers": 1,
+                "outliers": "1;2",
+                "ld15iqr": 0.0012300470002628572,
+                "hd15iqr": 0.0016029430003072775,
+                "ops": 742.9151018927674,
+                "total": 0.05384195300121064,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_copy[True-False-distro]",
+            "fullname": "tests/performance/item_copy_test.py::test_item_copy[True-False-distro]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": false,
+                "what": "distro"
+            },
+            "param": "True-False-distro",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.026314564000131213,
+                "max": 0.027267776999906346,
+                "mean": 0.026587765149997722,
+                "stddev": 0.00019286097291271114,
+                "rounds": 40,
+                "median": 0.026589543999989473,
+                "iqr": 0.0002113309999458579,
+                "q1": 0.026449753499946382,
+                "q3": 0.02666108449989224,
+                "iqr_outliers": 1,
+                "stddev_outliers": 12,
+                "outliers": "12;1",
+                "ld15iqr": 0.026314564000131213,
+                "hd15iqr": 0.027267776999906346,
+                "ops": 37.611284527239995,
+                "total": 1.0635106059999089,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_copy[True-False-menu]",
+            "fullname": "tests/performance/item_copy_test.py::test_item_copy[True-False-menu]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": false,
+                "what": "menu"
+            },
+            "param": "True-False-menu",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.002753209000275092,
+                "max": 0.0035977909997200186,
+                "mean": 0.0029500758500375923,
+                "stddev": 0.0001625736584039531,
+                "rounds": 40,
+                "median": 0.002912302500135411,
+                "iqr": 0.0001738125001793378,
+                "q1": 0.0028365449998091208,
+                "q3": 0.0030103574999884586,
+                "iqr_outliers": 2,
+                "stddev_outliers": 8,
+                "outliers": "8;2",
+                "ld15iqr": 0.002753209000275092,
+                "hd15iqr": 0.003274988000157464,
+                "ops": 338.97433518099444,
+                "total": 0.11800303400150369,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_copy[True-False-profile]",
+            "fullname": "tests/performance/item_copy_test.py::test_item_copy[True-False-profile]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": false,
+                "what": "profile"
+            },
+            "param": "True-False-profile",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.07849081899985322,
+                "max": 0.08397363899985066,
+                "mean": 0.07972767004998786,
+                "stddev": 0.0009294957632583274,
+                "rounds": 40,
+                "median": 0.07953867950004678,
+                "iqr": 0.0008300500001041655,
+                "q1": 0.07920591650008646,
+                "q3": 0.08003596650019063,
+                "iqr_outliers": 2,
+                "stddev_outliers": 4,
+                "outliers": "4;2",
+                "ld15iqr": 0.07849081899985322,
+                "hd15iqr": 0.08223417099998187,
+                "ops": 12.542696900248275,
+                "total": 3.1891068019995146,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_copy[True-False-image]",
+            "fullname": "tests/performance/item_copy_test.py::test_item_copy[True-False-image]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": false,
+                "what": "image"
+            },
+            "param": "True-False-image",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.024298154000007344,
+                "max": 0.025928691999979492,
+                "mean": 0.02466876189996583,
+                "stddev": 0.0002759981021772304,
+                "rounds": 40,
+                "median": 0.02462142300009873,
+                "iqr": 0.0002496105000773241,
+                "q1": 0.024489336499755154,
+                "q3": 0.02473894699983248,
+                "iqr_outliers": 1,
+                "stddev_outliers": 6,
+                "outliers": "6;1",
+                "ld15iqr": 0.024298154000007344,
+                "hd15iqr": 0.025928691999979492,
+                "ops": 40.53709724286508,
+                "total": 0.9867504759986332,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_copy[True-False-system]",
+            "fullname": "tests/performance/item_copy_test.py::test_item_copy[True-False-system]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": false,
+                "what": "system"
+            },
+            "param": "True-False-system",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 2.1319590009998137,
+                "max": 2.1880591359999926,
+                "mean": 2.1562100452250093,
+                "stddev": 0.014459814763722472,
+                "rounds": 40,
+                "median": 2.1558794069999294,
+                "iqr": 0.023912660000405594,
+                "q1": 2.144045518499752,
+                "q3": 2.1679581785001574,
+                "iqr_outliers": 0,
+                "stddev_outliers": 12,
+                "outliers": "12;0",
+                "ld15iqr": 2.1319590009998137,
+                "hd15iqr": 2.1880591359999926,
+                "ops": 0.4637767096088479,
+                "total": 86.24840180900037,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_copy[False-True-repo]",
+            "fullname": "tests/performance/item_copy_test.py::test_item_copy[False-True-repo]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": true,
+                "what": "repo"
+            },
+            "param": "False-True-repo",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.0012766480003847391,
+                "max": 0.0014417669999602367,
+                "mean": 0.001356245575016146,
+                "stddev": 4.477170198413359e-05,
+                "rounds": 40,
+                "median": 0.0013482654999279475,
+                "iqr": 7.368199953816656e-05,
+                "q1": 0.0013199075001466554,
+                "q3": 0.001393589499684822,
+                "iqr_outliers": 0,
+                "stddev_outliers": 14,
+                "outliers": "14;0",
+                "ld15iqr": 0.0012766480003847391,
+                "hd15iqr": 0.0014417669999602367,
+                "ops": 737.3295945965353,
+                "total": 0.05424982300064585,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_copy[False-True-distro]",
+            "fullname": "tests/performance/item_copy_test.py::test_item_copy[False-True-distro]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": true,
+                "what": "distro"
+            },
+            "param": "False-True-distro",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.17398882899988166,
+                "max": 0.17738597900006425,
+                "mean": 0.17550713484997688,
+                "stddev": 0.0008554593088332043,
+                "rounds": 40,
+                "median": 0.17530221300012272,
+                "iqr": 0.0010467955003150564,
+                "q1": 0.17491368949981734,
+                "q3": 0.1759604850001324,
+                "iqr_outliers": 0,
+                "stddev_outliers": 12,
+                "outliers": "12;0",
+                "ld15iqr": 0.17398882899988166,
+                "hd15iqr": 0.17738597900006425,
+                "ops": 5.697774058329867,
+                "total": 7.020285393999075,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_copy[False-True-menu]",
+            "fullname": "tests/performance/item_copy_test.py::test_item_copy[False-True-menu]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": true,
+                "what": "menu"
+            },
+            "param": "False-True-menu",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.0028624659998968127,
+                "max": 0.006018992999997863,
+                "mean": 0.003079257999991114,
+                "stddev": 0.0004882171886106542,
+                "rounds": 40,
+                "median": 0.002995250999902055,
+                "iqr": 0.0001166720001037902,
+                "q1": 0.0029291094999734923,
+                "q3": 0.0030457815000772825,
+                "iqr_outliers": 3,
+                "stddev_outliers": 1,
+                "outliers": "1;3",
+                "ld15iqr": 0.0028624659998968127,
+                "hd15iqr": 0.0033210999999937485,
+                "ops": 324.7535607613541,
+                "total": 0.12317031999964456,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_copy[False-True-profile]",
+            "fullname": "tests/performance/item_copy_test.py::test_item_copy[False-True-profile]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": true,
+                "what": "profile"
+            },
+            "param": "False-True-profile",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.717960456000128,
+                "max": 0.7469743189999463,
+                "mean": 0.7230299826749956,
+                "stddev": 0.005114101516405638,
+                "rounds": 40,
+                "median": 0.7219980105001014,
+                "iqr": 0.0034488405001411593,
+                "q1": 0.7203854985000362,
+                "q3": 0.7238343390001774,
+                "iqr_outliers": 3,
+                "stddev_outliers": 3,
+                "outliers": "3;3",
+                "ld15iqr": 0.717960456000128,
+                "hd15iqr": 0.7309883199995966,
+                "ops": 1.3830685088608605,
+                "total": 28.921199306999824,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_copy[False-True-image]",
+            "fullname": "tests/performance/item_copy_test.py::test_item_copy[False-True-image]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": true,
+                "what": "image"
+            },
+            "param": "False-True-image",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.17908743599991794,
+                "max": 0.18541929599996365,
+                "mean": 0.18097203392500205,
+                "stddev": 0.0011462097731780073,
+                "rounds": 40,
+                "median": 0.1808186385001136,
+                "iqr": 0.0010096770001837285,
+                "q1": 0.18027696299986928,
+                "q3": 0.181286640000053,
+                "iqr_outliers": 3,
+                "stddev_outliers": 8,
+                "outliers": "8;3",
+                "ld15iqr": 0.17908743599991794,
+                "hd15iqr": 0.18333382900027573,
+                "ops": 5.5257156496037245,
+                "total": 7.238881357000082,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_copy[False-True-system]",
+            "fullname": "tests/performance/item_copy_test.py::test_item_copy[False-True-system]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": true,
+                "what": "system"
+            },
+            "param": "False-True-system",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 2.3999460579998413,
+                "max": 2.460153361999801,
+                "mean": 2.423303510249866,
+                "stddev": 0.01458996501309447,
+                "rounds": 40,
+                "median": 2.4239383169999655,
+                "iqr": 0.020042554500378174,
+                "q1": 2.411933739499773,
+                "q3": 2.431976294000151,
+                "iqr_outliers": 0,
+                "stddev_outliers": 15,
+                "outliers": "15;0",
+                "ld15iqr": 2.3999460579998413,
+                "hd15iqr": 2.460153361999801,
+                "ops": 0.4126598239841984,
+                "total": 96.93214040999464,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_copy[True-True-repo]",
+            "fullname": "tests/performance/item_copy_test.py::test_item_copy[True-True-repo]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": true,
+                "what": "repo"
+            },
+            "param": "True-True-repo",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.0012337970001681242,
+                "max": 0.002316242999768292,
+                "mean": 0.0013242179499911798,
+                "stddev": 0.00016652040770910652,
+                "rounds": 40,
+                "median": 0.001298809999752848,
+                "iqr": 6.12195003668603e-05,
+                "q1": 0.0012711724998553109,
+                "q3": 0.0013323920002221712,
+                "iqr_outliers": 1,
+                "stddev_outliers": 1,
+                "outliers": "1;1",
+                "ld15iqr": 0.0012337970001681242,
+                "hd15iqr": 0.002316242999768292,
+                "ops": 755.1626981092203,
+                "total": 0.0529687179996472,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_copy[True-True-distro]",
+            "fullname": "tests/performance/item_copy_test.py::test_item_copy[True-True-distro]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": true,
+                "what": "distro"
+            },
+            "param": "True-True-distro",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.10285702999954083,
+                "max": 0.110755077000249,
+                "mean": 0.10457589252491743,
+                "stddev": 0.0012560777551328523,
+                "rounds": 40,
+                "median": 0.10438667799962786,
+                "iqr": 0.0009092335003515473,
+                "q1": 0.10392233599986866,
+                "q3": 0.10483156950022021,
+                "iqr_outliers": 2,
+                "stddev_outliers": 3,
+                "outliers": "3;2",
+                "ld15iqr": 0.10285702999954083,
+                "hd15iqr": 0.1069019369997477,
+                "ops": 9.56243332813754,
+                "total": 4.183035700996697,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_copy[True-True-menu]",
+            "fullname": "tests/performance/item_copy_test.py::test_item_copy[True-True-menu]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": true,
+                "what": "menu"
+            },
+            "param": "True-True-menu",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.002756260000751354,
+                "max": 0.007611189999806811,
+                "mean": 0.003274508999902537,
+                "stddev": 0.0009718178362323812,
+                "rounds": 40,
+                "median": 0.0029351615003179177,
+                "iqr": 0.0001475245003348391,
+                "q1": 0.0028526339997370087,
+                "q3": 0.003000158500071848,
+                "iqr_outliers": 7,
+                "stddev_outliers": 6,
+                "outliers": "6;7",
+                "ld15iqr": 0.002756260000751354,
+                "hd15iqr": 0.0036294969995651627,
+                "ops": 305.3892965417912,
+                "total": 0.13098035999610147,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_copy[True-True-profile]",
+            "fullname": "tests/performance/item_copy_test.py::test_item_copy[True-True-profile]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": true,
+                "what": "profile"
+            },
+            "param": "True-True-profile",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.40929637600038404,
+                "max": 0.41789464999965276,
+                "mean": 0.4126630192500443,
+                "stddev": 0.0018747536278624674,
+                "rounds": 40,
+                "median": 0.41216447550004887,
+                "iqr": 0.0030177040002854483,
+                "q1": 0.41132299049968424,
+                "q3": 0.4143406944999697,
+                "iqr_outliers": 0,
+                "stddev_outliers": 14,
+                "outliers": "14;0",
+                "ld15iqr": 0.40929637600038404,
+                "hd15iqr": 0.41789464999965276,
+                "ops": 2.423284746516313,
+                "total": 16.50652077000177,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_copy[True-True-image]",
+            "fullname": "tests/performance/item_copy_test.py::test_item_copy[True-True-image]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": true,
+                "what": "image"
+            },
+            "param": "True-True-image",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.10137088600004063,
+                "max": 0.10463272299966775,
+                "mean": 0.10252480422498138,
+                "stddev": 0.0007027428626081007,
+                "rounds": 40,
+                "median": 0.10239360450032109,
+                "iqr": 0.0006894620000821305,
+                "q1": 0.10214102200006892,
+                "q3": 0.10283048400015105,
+                "iqr_outliers": 3,
+                "stddev_outliers": 10,
+                "outliers": "10;3",
+                "ld15iqr": 0.10137088600004063,
+                "hd15iqr": 0.10401628100044036,
+                "ops": 9.753737230315414,
+                "total": 4.100992168999255,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_copy[True-True-system]",
+            "fullname": "tests/performance/item_copy_test.py::test_item_copy[True-True-system]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": true,
+                "what": "system"
+            },
+            "param": "True-True-system",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 2.288062143999923,
+                "max": 2.348031909000383,
+                "mean": 2.312769253574902,
+                "stddev": 0.013068919103742303,
+                "rounds": 40,
+                "median": 2.311931789499795,
+                "iqr": 0.017974467999920307,
+                "q1": 2.304021566999836,
+                "q3": 2.3219960349997564,
+                "iqr_outliers": 0,
+                "stddev_outliers": 11,
+                "outliers": "11;0",
+                "ld15iqr": 2.288062143999923,
+                "hd15iqr": 2.348031909000383,
+                "ops": 0.43238208846571113,
+                "total": 92.51077014299608,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_edit[False-False-repo-False]",
+            "fullname": "tests/performance/item_edit_test.py::test_item_edit[False-False-repo-False]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": false,
+                "what": "repo",
+                "inherit_property": false
+            },
+            "param": "False-False-repo-False",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 2.1439999727590475e-05,
+                "max": 3.306199960206868e-05,
+                "mean": 2.509524999823043e-05,
+                "stddev": 3.3497252346846963e-06,
+                "rounds": 40,
+                "median": 2.400499988652882e-05,
+                "iqr": 4.0469994928571396e-06,
+                "q1": 2.2703000468027312e-05,
+                "q3": 2.6749999960884452e-05,
+                "iqr_outliers": 1,
+                "stddev_outliers": 9,
+                "outliers": "9;1",
+                "ld15iqr": 2.1439999727590475e-05,
+                "hd15iqr": 3.306199960206868e-05,
+                "ops": 39848.178442952914,
+                "total": 0.0010038099999292172,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_edit[False-False-repo-True]",
+            "fullname": "tests/performance/item_edit_test.py::test_item_edit[False-False-repo-True]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": false,
+                "what": "repo",
+                "inherit_property": true
+            },
+            "param": "False-False-repo-True",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 5.422200047178194e-05,
+                "max": 8.252499992522644e-05,
+                "mean": 6.440264996854239e-05,
+                "stddev": 6.1159097009348595e-06,
+                "rounds": 40,
+                "median": 6.352450054691872e-05,
+                "iqr": 6.151000434329035e-06,
+                "q1": 6.175599992275238e-05,
+                "q3": 6.790700035708142e-05,
+                "iqr_outliers": 2,
+                "stddev_outliers": 12,
+                "outliers": "12;2",
+                "ld15iqr": 5.422200047178194e-05,
+                "hd15iqr": 8.040000011533266e-05,
+                "ops": 15527.311383746664,
+                "total": 0.0025761059987416957,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_edit[False-False-distro-False]",
+            "fullname": "tests/performance/item_edit_test.py::test_item_edit[False-False-distro-False]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": false,
+                "what": "distro",
+                "inherit_property": false
+            },
+            "param": "False-False-distro-False",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 2.0847999621764757e-05,
+                "max": 3.600699983508093e-05,
+                "mean": 2.5245374945370714e-05,
+                "stddev": 3.854253139177033e-06,
+                "rounds": 40,
+                "median": 2.4049999865383143e-05,
+                "iqr": 2.3239999791258015e-06,
+                "q1": 2.289299982294324e-05,
+                "q3": 2.521699980206904e-05,
+                "iqr_outliers": 7,
+                "stddev_outliers": 8,
+                "outliers": "8;7",
+                "ld15iqr": 2.0847999621764757e-05,
+                "hd15iqr": 3.002599987667054e-05,
+                "ops": 39611.21600150255,
+                "total": 0.0010098149978148285,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_edit[False-False-distro-True]",
+            "fullname": "tests/performance/item_edit_test.py::test_item_edit[False-False-distro-True]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": false,
+                "what": "distro",
+                "inherit_property": true
+            },
+            "param": "False-False-distro-True",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 5.38909998795134e-05,
+                "max": 7.249600002978696e-05,
+                "mean": 6.218642504336458e-05,
+                "stddev": 4.708083277612078e-06,
+                "rounds": 40,
+                "median": 6.205100044098799e-05,
+                "iqr": 4.097500095667783e-06,
+                "q1": 6.0257999848545296e-05,
+                "q3": 6.435549994421308e-05,
+                "iqr_outliers": 4,
+                "stddev_outliers": 16,
+                "outliers": "16;4",
+                "ld15iqr": 5.416099975263933e-05,
+                "hd15iqr": 7.097300021996489e-05,
+                "ops": 16080.679976420386,
+                "total": 0.002487457001734583,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_edit[False-False-menu-False]",
+            "fullname": "tests/performance/item_edit_test.py::test_item_edit[False-False-menu-False]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": false,
+                "what": "menu",
+                "inherit_property": false
+            },
+            "param": "False-False-menu-False",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 2.6509999770496506e-05,
+                "max": 3.896199996233918e-05,
+                "mean": 3.1217300056596285e-05,
+                "stddev": 3.004562735864092e-06,
+                "rounds": 40,
+                "median": 3.0767499993089586e-05,
+                "iqr": 3.4109998523490503e-06,
+                "q1": 2.900950039474992e-05,
+                "q3": 3.242050024709897e-05,
+                "iqr_outliers": 3,
+                "stddev_outliers": 11,
+                "outliers": "11;3",
+                "ld15iqr": 2.6509999770496506e-05,
+                "hd15iqr": 3.832099991996074e-05,
+                "ops": 32033.51981712133,
+                "total": 0.0012486920022638515,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_edit[False-False-menu-True]",
+            "fullname": "tests/performance/item_edit_test.py::test_item_edit[False-False-menu-True]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": false,
+                "what": "menu",
+                "inherit_property": true
+            },
+            "param": "False-False-menu-True",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 8.976900062407367e-05,
+                "max": 0.00012830099967686692,
+                "mean": 0.00010934517504210817,
+                "stddev": 9.0507561280389e-06,
+                "rounds": 40,
+                "median": 0.00011008700039383257,
+                "iqr": 6.835000021965243e-06,
+                "q1": 0.00010757599966382259,
+                "q3": 0.00011441099968578783,
+                "iqr_outliers": 8,
+                "stddev_outliers": 11,
+                "outliers": "11;8",
+                "ld15iqr": 9.759300064615672e-05,
+                "hd15iqr": 0.00012791099925379967,
+                "ops": 9145.350945891358,
+                "total": 0.004373807001684327,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_edit[False-False-profile-False]",
+            "fullname": "tests/performance/item_edit_test.py::test_item_edit[False-False-profile-False]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": false,
+                "what": "profile",
+                "inherit_property": false
+            },
+            "param": "False-False-profile-False",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 2.7150999812874943e-05,
+                "max": 4.347200047050137e-05,
+                "mean": 3.3047800047825146e-05,
+                "stddev": 4.64450624466709e-06,
+                "rounds": 40,
+                "median": 3.217550010958803e-05,
+                "iqr": 6.822999239375349e-06,
+                "q1": 2.9435500437102746e-05,
+                "q3": 3.6258499676478095e-05,
+                "iqr_outliers": 0,
+                "stddev_outliers": 15,
+                "outliers": "15;0",
+                "ld15iqr": 2.7150999812874943e-05,
+                "hd15iqr": 4.347200047050137e-05,
+                "ops": 30259.200266064585,
+                "total": 0.001321912001913006,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_edit[False-False-profile-True]",
+            "fullname": "tests/performance/item_edit_test.py::test_item_edit[False-False-profile-True]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": false,
+                "what": "profile",
+                "inherit_property": true
+            },
+            "param": "False-False-profile-True",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 8.973900003184099e-05,
+                "max": 0.00011974500012001954,
+                "mean": 0.00010628914990320481,
+                "stddev": 9.975536119072073e-06,
+                "rounds": 40,
+                "median": 0.0001098819998333056,
+                "iqr": 1.9687000076373806e-05,
+                "q1": 9.47234998420754e-05,
+                "q3": 0.0001144104999184492,
+                "iqr_outliers": 0,
+                "stddev_outliers": 19,
+                "outliers": "19;0",
+                "ld15iqr": 8.973900003184099e-05,
+                "hd15iqr": 0.00011974500012001954,
+                "ops": 9408.2980333428,
+                "total": 0.004251565996128193,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_edit[False-False-image-False]",
+            "fullname": "tests/performance/item_edit_test.py::test_item_edit[False-False-image-False]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": false,
+                "what": "image",
+                "inherit_property": false
+            },
+            "param": "False-False-image-False",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 2.089000008709263e-05,
+                "max": 3.289200049039209e-05,
+                "mean": 2.4202350095947624e-05,
+                "stddev": 2.5602734728646993e-06,
+                "rounds": 40,
+                "median": 2.3725000573904254e-05,
+                "iqr": 2.520499492675299e-06,
+                "q1": 2.2587000330531737e-05,
+                "q3": 2.5107499823207036e-05,
+                "iqr_outliers": 2,
+                "stddev_outliers": 14,
+                "outliers": "14;2",
+                "ld15iqr": 2.089000008709263e-05,
+                "hd15iqr": 2.943600065918872e-05,
+                "ops": 41318.301571360105,
+                "total": 0.0009680940038379049,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_edit[False-False-image-True]",
+            "fullname": "tests/performance/item_edit_test.py::test_item_edit[False-False-image-True]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": false,
+                "what": "image",
+                "inherit_property": true
+            },
+            "param": "False-False-image-True",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 5.297900042933179e-05,
+                "max": 7.180499960668385e-05,
+                "mean": 6.171570000788052e-05,
+                "stddev": 5.4401779654926314e-06,
+                "rounds": 40,
+                "median": 6.117449947851128e-05,
+                "iqr": 8.630500815343112e-06,
+                "q1": 5.702199950974318e-05,
+                "q3": 6.56525003250863e-05,
+                "iqr_outliers": 0,
+                "stddev_outliers": 17,
+                "outliers": "17;0",
+                "ld15iqr": 5.297900042933179e-05,
+                "hd15iqr": 7.180499960668385e-05,
+                "ops": 16203.33237526771,
+                "total": 0.0024686280003152206,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_edit[False-False-system-False]",
+            "fullname": "tests/performance/item_edit_test.py::test_item_edit[False-False-system-False]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": false,
+                "what": "system",
+                "inherit_property": false
+            },
+            "param": "False-False-system-False",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 2.0267000763851684e-05,
+                "max": 3.216099958081031e-05,
+                "mean": 2.4035624937823742e-05,
+                "stddev": 3.1106215541733927e-06,
+                "rounds": 40,
+                "median": 2.3349000457528746e-05,
+                "iqr": 3.1009999474918004e-06,
+                "q1": 2.2196499685378512e-05,
+                "q3": 2.5297499632870313e-05,
+                "iqr_outliers": 3,
+                "stddev_outliers": 16,
+                "outliers": "16;3",
+                "ld15iqr": 2.0267000763851684e-05,
+                "hd15iqr": 3.0066000363149215e-05,
+                "ops": 41604.9094869319,
+                "total": 0.0009614249975129496,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_edit[False-False-system-True]",
+            "fullname": "tests/performance/item_edit_test.py::test_item_edit[False-False-system-True]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": false,
+                "what": "system",
+                "inherit_property": true
+            },
+            "param": "False-False-system-True",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 5.292900004860712e-05,
+                "max": 7.350700070674066e-05,
+                "mean": 6.145555009879899e-05,
+                "stddev": 6.355567345203707e-06,
+                "rounds": 40,
+                "median": 6.171550057842978e-05,
+                "iqr": 1.2508999589044834e-05,
+                "q1": 5.538850018638186e-05,
+                "q3": 6.78974997754267e-05,
+                "iqr_outliers": 0,
+                "stddev_outliers": 19,
+                "outliers": "19;0",
+                "ld15iqr": 5.292900004860712e-05,
+                "hd15iqr": 7.350700070674066e-05,
+                "ops": 16271.923339590165,
+                "total": 0.0024582220039519598,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_edit[True-False-repo-False]",
+            "fullname": "tests/performance/item_edit_test.py::test_item_edit[True-False-repo-False]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": false,
+                "what": "repo",
+                "inherit_property": false
+            },
+            "param": "True-False-repo-False",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 3.274200025771279e-05,
+                "max": 4.5554999815067276e-05,
+                "mean": 3.7624899960064795e-05,
+                "stddev": 3.061892540260507e-06,
+                "rounds": 40,
+                "median": 3.7084500036144163e-05,
+                "iqr": 2.529499397496693e-06,
+                "q1": 3.613800026869285e-05,
+                "q3": 3.866749966618954e-05,
+                "iqr_outliers": 4,
+                "stddev_outliers": 11,
+                "outliers": "11;4",
+                "ld15iqr": 3.274200025771279e-05,
+                "hd15iqr": 4.2499999835854396e-05,
+                "ops": 26578.143757495796,
+                "total": 0.0015049959984025918,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_edit[True-False-repo-True]",
+            "fullname": "tests/performance/item_edit_test.py::test_item_edit[True-False-repo-True]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": false,
+                "what": "repo",
+                "inherit_property": true
+            },
+            "param": "True-False-repo-True",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.00023879599939391483,
+                "max": 0.0003197389996785205,
+                "mean": 0.00027065599992965873,
+                "stddev": 2.210208185732782e-05,
+                "rounds": 40,
+                "median": 0.0002797229999487172,
+                "iqr": 4.144749937040615e-05,
+                "q1": 0.0002466760001880175,
+                "q3": 0.00028812349955842365,
+                "iqr_outliers": 0,
+                "stddev_outliers": 18,
+                "outliers": "18;0",
+                "ld15iqr": 0.00023879599939391483,
+                "hd15iqr": 0.0003197389996785205,
+                "ops": 3694.726886748832,
+                "total": 0.010826239997186349,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_edit[True-False-distro-False]",
+            "fullname": "tests/performance/item_edit_test.py::test_item_edit[True-False-distro-False]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": false,
+                "what": "distro",
+                "inherit_property": false
+            },
+            "param": "True-False-distro-False",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 3.2611000278848223e-05,
+                "max": 4.726799943455262e-05,
+                "mean": 3.784805005579983e-05,
+                "stddev": 4.054505097795607e-06,
+                "rounds": 40,
+                "median": 3.671300009955303e-05,
+                "iqr": 4.51300002168864e-06,
+                "q1": 3.5376499909034465e-05,
+                "q3": 3.9889499930723105e-05,
+                "iqr_outliers": 2,
+                "stddev_outliers": 14,
+                "outliers": "14;2",
+                "ld15iqr": 3.2611000278848223e-05,
+                "hd15iqr": 4.672800059779547e-05,
+                "ops": 26421.440431559568,
+                "total": 0.0015139220022319932,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_edit[True-False-distro-True]",
+            "fullname": "tests/performance/item_edit_test.py::test_item_edit[True-False-distro-True]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": false,
+                "what": "distro",
+                "inherit_property": true
+            },
+            "param": "True-False-distro-True",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.0005201210005907342,
+                "max": 0.0007139649997043307,
+                "mean": 0.0005735088750498107,
+                "stddev": 4.8799402739019886e-05,
+                "rounds": 40,
+                "median": 0.000556118999611499,
+                "iqr": 7.717400012552389e-05,
+                "q1": 0.0005337005000001227,
+                "q3": 0.0006108745001256466,
+                "iqr_outliers": 0,
+                "stddev_outliers": 10,
+                "outliers": "10;0",
+                "ld15iqr": 0.0005201210005907342,
+                "hd15iqr": 0.0007139649997043307,
+                "ops": 1743.652179599047,
+                "total": 0.02294035500199243,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_edit[True-False-menu-False]",
+            "fullname": "tests/performance/item_edit_test.py::test_item_edit[True-False-menu-False]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": false,
+                "what": "menu",
+                "inherit_property": false
+            },
+            "param": "True-False-menu-False",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 4.779899973073043e-05,
+                "max": 6.41209999230341e-05,
+                "mean": 5.480497495682357e-05,
+                "stddev": 4.987463625151608e-06,
+                "rounds": 40,
+                "median": 5.495849973158329e-05,
+                "iqr": 8.941999567468883e-06,
+                "q1": 4.958299996360438e-05,
+                "q3": 5.852499953107326e-05,
+                "iqr_outliers": 0,
+                "stddev_outliers": 20,
+                "outliers": "20;0",
+                "ld15iqr": 4.779899973073043e-05,
+                "hd15iqr": 6.41209999230341e-05,
+                "ops": 18246.51869265189,
+                "total": 0.002192198998272943,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_edit[True-False-menu-True]",
+            "fullname": "tests/performance/item_edit_test.py::test_item_edit[True-False-menu-True]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": false,
+                "what": "menu",
+                "inherit_property": true
+            },
+            "param": "True-False-menu-True",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.002498267000191845,
+                "max": 0.0028799379997508368,
+                "mean": 0.0025910418999956163,
+                "stddev": 6.982048283321517e-05,
+                "rounds": 40,
+                "median": 0.0025698690001263458,
+                "iqr": 6.044249994374695e-05,
+                "q1": 0.0025493240000287187,
+                "q3": 0.0026097664999724657,
+                "iqr_outliers": 2,
+                "stddev_outliers": 9,
+                "outliers": "9;2",
+                "ld15iqr": 0.002498267000191845,
+                "hd15iqr": 0.0027107320001960034,
+                "ops": 385.94512886946825,
+                "total": 0.10364167599982466,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_edit[True-False-profile-False]",
+            "fullname": "tests/performance/item_edit_test.py::test_item_edit[True-False-profile-False]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": false,
+                "what": "profile",
+                "inherit_property": false
+            },
+            "param": "True-False-profile-False",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 5.315999987942632e-05,
+                "max": 7.463999918400077e-05,
+                "mean": 6.0681950049001895e-05,
+                "stddev": 4.8990095516286455e-06,
+                "rounds": 40,
+                "median": 6.0824499996670056e-05,
+                "iqr": 7.509500392188784e-06,
+                "q1": 5.606500008070725e-05,
+                "q3": 6.357450047289603e-05,
+                "iqr_outliers": 0,
+                "stddev_outliers": 15,
+                "outliers": "15;0",
+                "ld15iqr": 5.315999987942632e-05,
+                "hd15iqr": 7.463999918400077e-05,
+                "ops": 16479.36493788482,
+                "total": 0.002427278001960076,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_edit[True-False-profile-True]",
+            "fullname": "tests/performance/item_edit_test.py::test_item_edit[True-False-profile-True]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": false,
+                "what": "profile",
+                "inherit_property": true
+            },
+            "param": "True-False-profile-True",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.0009839220001595095,
+                "max": 0.0011532530006661545,
+                "mean": 0.0010485447750170351,
+                "stddev": 5.364750484874222e-05,
+                "rounds": 40,
+                "median": 0.0010337100002288935,
+                "iqr": 9.015050000016345e-05,
+                "q1": 0.0010008314998231072,
+                "q3": 0.0010909819998232706,
+                "iqr_outliers": 0,
+                "stddev_outliers": 15,
+                "outliers": "15;0",
+                "ld15iqr": 0.0009839220001595095,
+                "hd15iqr": 0.0011532530006661545,
+                "ops": 953.702716208522,
+                "total": 0.041941791000681405,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_edit[True-False-image-False]",
+            "fullname": "tests/performance/item_edit_test.py::test_item_edit[True-False-image-False]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": false,
+                "what": "image",
+                "inherit_property": false
+            },
+            "param": "True-False-image-False",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 3.328200000396464e-05,
+                "max": 4.677800006902544e-05,
+                "mean": 3.7615225005538376e-05,
+                "stddev": 3.5315182881977676e-06,
+                "rounds": 40,
+                "median": 3.69089998457639e-05,
+                "iqr": 3.7980003071425017e-06,
+                "q1": 3.510050009936094e-05,
+                "q3": 3.8898500406503445e-05,
+                "iqr_outliers": 3,
+                "stddev_outliers": 13,
+                "outliers": "13;3",
+                "ld15iqr": 3.328200000396464e-05,
+                "hd15iqr": 4.463400000531692e-05,
+                "ops": 26584.979881225285,
+                "total": 0.001504609000221535,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_edit[True-False-image-True]",
+            "fullname": "tests/performance/item_edit_test.py::test_item_edit[True-False-image-True]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": false,
+                "what": "image",
+                "inherit_property": true
+            },
+            "param": "True-False-image-True",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.00013171599948691437,
+                "max": 0.0001616629997442942,
+                "mean": 0.00014991392499723587,
+                "stddev": 8.868775696352014e-06,
+                "rounds": 40,
+                "median": 0.00015160900011323974,
+                "iqr": 1.4507000287267147e-05,
+                "q1": 0.0001424224997208512,
+                "q3": 0.00015692950000811834,
+                "iqr_outliers": 0,
+                "stddev_outliers": 15,
+                "outliers": "15;0",
+                "ld15iqr": 0.00013171599948691437,
+                "hd15iqr": 0.0001616629997442942,
+                "ops": 6670.494418836929,
+                "total": 0.005996556999889435,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_edit[True-False-system-False]",
+            "fullname": "tests/performance/item_edit_test.py::test_item_edit[True-False-system-False]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": false,
+                "what": "system",
+                "inherit_property": false
+            },
+            "param": "True-False-system-False",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 3.483599994069664e-05,
+                "max": 5.0283999371458776e-05,
+                "mean": 4.113927495836833e-05,
+                "stddev": 4.432193308547456e-06,
+                "rounds": 40,
+                "median": 3.9708999793219846e-05,
+                "iqr": 4.298000021663029e-06,
+                "q1": 3.8136500279506436e-05,
+                "q3": 4.2434500301169464e-05,
+                "iqr_outliers": 4,
+                "stddev_outliers": 13,
+                "outliers": "13;4",
+                "ld15iqr": 3.483599994069664e-05,
+                "hd15iqr": 4.9543000386620406e-05,
+                "ops": 24307.671951242915,
+                "total": 0.0016455709983347333,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_edit[True-False-system-True]",
+            "fullname": "tests/performance/item_edit_test.py::test_item_edit[True-False-system-True]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": false,
+                "what": "system",
+                "inherit_property": true
+            },
+            "param": "True-False-system-True",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 8.867599990480812e-05,
+                "max": 0.0001224589996127179,
+                "mean": 0.00010455377503149066,
+                "stddev": 8.594319788406245e-06,
+                "rounds": 40,
+                "median": 0.00010519699981159647,
+                "iqr": 1.1391000043659005e-05,
+                "q1": 9.910049993777648e-05,
+                "q3": 0.00011049149998143548,
+                "iqr_outliers": 0,
+                "stddev_outliers": 14,
+                "outliers": "14;0",
+                "ld15iqr": 8.867599990480812e-05,
+                "hd15iqr": 0.0001224589996127179,
+                "ops": 9564.456182465043,
+                "total": 0.004182151001259626,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_edit[False-True-repo-False]",
+            "fullname": "tests/performance/item_edit_test.py::test_item_edit[False-True-repo-False]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": true,
+                "what": "repo",
+                "inherit_property": false
+            },
+            "param": "False-True-repo-False",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 2.1248999473755248e-05,
+                "max": 3.361300059623318e-05,
+                "mean": 2.5590074824322073e-05,
+                "stddev": 2.954938489592707e-06,
+                "rounds": 40,
+                "median": 2.500199980204343e-05,
+                "iqr": 2.1034998098912183e-06,
+                "q1": 2.3860000055719865e-05,
+                "q3": 2.5963499865611084e-05,
+                "iqr_outliers": 4,
+                "stddev_outliers": 9,
+                "outliers": "9;4",
+                "ld15iqr": 2.1248999473755248e-05,
+                "hd15iqr": 3.180999920004979e-05,
+                "ops": 39077.65049008573,
+                "total": 0.001023602992972883,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_edit[False-True-repo-True]",
+            "fullname": "tests/performance/item_edit_test.py::test_item_edit[False-True-repo-True]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": true,
+                "what": "repo",
+                "inherit_property": true
+            },
+            "param": "False-True-repo-True",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 5.408100059867138e-05,
+                "max": 7.481900047423551e-05,
+                "mean": 6.421065013455518e-05,
+                "stddev": 6.653556522369316e-06,
+                "rounds": 40,
+                "median": 6.402000008165487e-05,
+                "iqr": 1.4552500488207443e-05,
+                "q1": 5.6715499795245705e-05,
+                "q3": 7.126800028345315e-05,
+                "iqr_outliers": 0,
+                "stddev_outliers": 22,
+                "outliers": "22;0",
+                "ld15iqr": 5.408100059867138e-05,
+                "hd15iqr": 7.481900047423551e-05,
+                "ops": 15573.740460569587,
+                "total": 0.0025684260053822072,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_edit[False-True-distro-False]",
+            "fullname": "tests/performance/item_edit_test.py::test_item_edit[False-True-distro-False]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": true,
+                "what": "distro",
+                "inherit_property": false
+            },
+            "param": "False-True-distro-False",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 2.2041999727662187e-05,
+                "max": 4.162799996265676e-05,
+                "mean": 2.5421999930586024e-05,
+                "stddev": 3.666536585344072e-06,
+                "rounds": 40,
+                "median": 2.4331000076927012e-05,
+                "iqr": 1.9384997358429246e-06,
+                "q1": 2.3694999981671572e-05,
+                "q3": 2.5633499717514496e-05,
+                "iqr_outliers": 7,
+                "stddev_outliers": 6,
+                "outliers": "6;7",
+                "ld15iqr": 2.2041999727662187e-05,
+                "hd15iqr": 2.881399996113032e-05,
+                "ops": 39336.00828929544,
+                "total": 0.001016879997223441,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_edit[False-True-distro-True]",
+            "fullname": "tests/performance/item_edit_test.py::test_item_edit[False-True-distro-True]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": true,
+                "what": "distro",
+                "inherit_property": true
+            },
+            "param": "False-True-distro-True",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 5.4551999710383825e-05,
+                "max": 7.79269994382048e-05,
+                "mean": 6.702367500110995e-05,
+                "stddev": 4.978229449987034e-06,
+                "rounds": 40,
+                "median": 6.656999948972953e-05,
+                "iqr": 7.82449978942168e-06,
+                "q1": 6.335900025078445e-05,
+                "q3": 7.118350004020613e-05,
+                "iqr_outliers": 0,
+                "stddev_outliers": 10,
+                "outliers": "10;0",
+                "ld15iqr": 5.4551999710383825e-05,
+                "hd15iqr": 7.79269994382048e-05,
+                "ops": 14920.100993916543,
+                "total": 0.002680947000044398,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_edit[False-True-menu-False]",
+            "fullname": "tests/performance/item_edit_test.py::test_item_edit[False-True-menu-False]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": true,
+                "what": "menu",
+                "inherit_property": false
+            },
+            "param": "False-True-menu-False",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 2.785200013022404e-05,
+                "max": 4.5524999222834595e-05,
+                "mean": 3.3615649931562076e-05,
+                "stddev": 4.0124707777752955e-06,
+                "rounds": 40,
+                "median": 3.283649994045845e-05,
+                "iqr": 4.007500137959141e-06,
+                "q1": 3.1007999496068805e-05,
+                "q3": 3.501549963402795e-05,
+                "iqr_outliers": 1,
+                "stddev_outliers": 14,
+                "outliers": "14;1",
+                "ld15iqr": 2.785200013022404e-05,
+                "hd15iqr": 4.5524999222834595e-05,
+                "ops": 29748.04896040668,
+                "total": 0.001344625997262483,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_edit[False-True-menu-True]",
+            "fullname": "tests/performance/item_edit_test.py::test_item_edit[False-True-menu-True]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": true,
+                "what": "menu",
+                "inherit_property": true
+            },
+            "param": "False-True-menu-True",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 9.354499979963293e-05,
+                "max": 0.00015548600003967294,
+                "mean": 0.00010909182501563918,
+                "stddev": 1.246369173589812e-05,
+                "rounds": 40,
+                "median": 0.00010972550035148743,
+                "iqr": 1.691799980108044e-05,
+                "q1": 9.818850003284751e-05,
+                "q3": 0.00011510649983392796,
+                "iqr_outliers": 2,
+                "stddev_outliers": 11,
+                "outliers": "11;2",
+                "ld15iqr": 9.354499979963293e-05,
+                "hd15iqr": 0.0001418960000592051,
+                "ops": 9166.58970419316,
+                "total": 0.0043636730006255675,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_edit[False-True-profile-False]",
+            "fullname": "tests/performance/item_edit_test.py::test_item_edit[False-True-profile-False]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": true,
+                "what": "profile",
+                "inherit_property": false
+            },
+            "param": "False-True-profile-False",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 2.8263000785955228e-05,
+                "max": 4.204900142212864e-05,
+                "mean": 3.349702492414508e-05,
+                "stddev": 3.588045434904706e-06,
+                "rounds": 40,
+                "median": 3.269099943281617e-05,
+                "iqr": 2.204499651270453e-06,
+                "q1": 3.1554000088362955e-05,
+                "q3": 3.375849973963341e-05,
+                "iqr_outliers": 7,
+                "stddev_outliers": 11,
+                "outliers": "11;7",
+                "ld15iqr": 2.8263000785955228e-05,
+                "hd15iqr": 3.862300036416855e-05,
+                "ops": 29853.39749618144,
+                "total": 0.0013398809969658032,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_edit[False-True-profile-True]",
+            "fullname": "tests/performance/item_edit_test.py::test_item_edit[False-True-profile-True]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": true,
+                "what": "profile",
+                "inherit_property": true
+            },
+            "param": "False-True-profile-True",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 9.42269998631673e-05,
+                "max": 0.0001474959990446223,
+                "mean": 0.0001089814248643961,
+                "stddev": 1.0978921615272964e-05,
+                "rounds": 40,
+                "median": 0.00011162350074300775,
+                "iqr": 1.773249914549524e-05,
+                "q1": 9.816900001169415e-05,
+                "q3": 0.00011590149915718939,
+                "iqr_outliers": 1,
+                "stddev_outliers": 13,
+                "outliers": "13;1",
+                "ld15iqr": 9.42269998631673e-05,
+                "hd15iqr": 0.0001474959990446223,
+                "ops": 9175.875625082756,
+                "total": 0.004359256994575844,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_edit[False-True-image-False]",
+            "fullname": "tests/performance/item_edit_test.py::test_item_edit[False-True-image-False]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": true,
+                "what": "image",
+                "inherit_property": false
+            },
+            "param": "False-True-image-False",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 2.2331998479785398e-05,
+                "max": 3.562699930625968e-05,
+                "mean": 2.6137924987779115e-05,
+                "stddev": 2.8038639612289094e-06,
+                "rounds": 40,
+                "median": 2.564349961176049e-05,
+                "iqr": 1.8079990695696324e-06,
+                "q1": 2.452100034133764e-05,
+                "q3": 2.6328999410907272e-05,
+                "iqr_outliers": 6,
+                "stddev_outliers": 9,
+                "outliers": "9;6",
+                "ld15iqr": 2.2331998479785398e-05,
+                "hd15iqr": 2.9334998544072732e-05,
+                "ops": 38258.58404856368,
+                "total": 0.0010455169995111646,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_edit[False-True-image-True]",
+            "fullname": "tests/performance/item_edit_test.py::test_item_edit[False-True-image-True]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": true,
+                "what": "image",
+                "inherit_property": true
+            },
+            "param": "False-True-image-True",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 5.378099922381807e-05,
+                "max": 7.439000000886153e-05,
+                "mean": 6.344300009004655e-05,
+                "stddev": 5.5059424112285345e-06,
+                "rounds": 40,
+                "median": 6.305750048340997e-05,
+                "iqr": 8.942000022216234e-06,
+                "q1": 5.83889996050857e-05,
+                "q3": 6.733099962730194e-05,
+                "iqr_outliers": 0,
+                "stddev_outliers": 17,
+                "outliers": "17;0",
+                "ld15iqr": 5.378099922381807e-05,
+                "hd15iqr": 7.439000000886153e-05,
+                "ops": 15762.180202396954,
+                "total": 0.002537720003601862,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_edit[False-True-system-False]",
+            "fullname": "tests/performance/item_edit_test.py::test_item_edit[False-True-system-False]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": true,
+                "what": "system",
+                "inherit_property": false
+            },
+            "param": "False-True-system-False",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 2.1150000975467265e-05,
+                "max": 3.3982998502324335e-05,
+                "mean": 2.577904992904223e-05,
+                "stddev": 3.61760941090896e-06,
+                "rounds": 40,
+                "median": 2.4611000299046282e-05,
+                "iqr": 6.077000762161333e-06,
+                "q1": 2.2947999241296202e-05,
+                "q3": 2.9025000003457535e-05,
+                "iqr_outliers": 0,
+                "stddev_outliers": 13,
+                "outliers": "13;0",
+                "ld15iqr": 2.1150000975467265e-05,
+                "hd15iqr": 3.3982998502324335e-05,
+                "ops": 38791.18907611166,
+                "total": 0.0010311619971616892,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_edit[False-True-system-True]",
+            "fullname": "tests/performance/item_edit_test.py::test_item_edit[False-True-system-True]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": true,
+                "what": "system",
+                "inherit_property": true
+            },
+            "param": "False-True-system-True",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 5.376200169848744e-05,
+                "max": 7.299699973373208e-05,
+                "mean": 6.243917496249197e-05,
+                "stddev": 4.825360170407495e-06,
+                "rounds": 40,
+                "median": 6.285800009209197e-05,
+                "iqr": 5.740999768022448e-06,
+                "q1": 5.9336500271456316e-05,
+                "q3": 6.507750003947876e-05,
+                "iqr_outliers": 0,
+                "stddev_outliers": 14,
+                "outliers": "14;0",
+                "ld15iqr": 5.376200169848744e-05,
+                "hd15iqr": 7.299699973373208e-05,
+                "ops": 16015.58637827475,
+                "total": 0.0024975669984996784,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_edit[True-True-repo-False]",
+            "fullname": "tests/performance/item_edit_test.py::test_item_edit[True-True-repo-False]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": true,
+                "what": "repo",
+                "inherit_property": false
+            },
+            "param": "True-True-repo-False",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 3.409300006751437e-05,
+                "max": 4.969300061929971e-05,
+                "mean": 4.0226025021183887e-05,
+                "stddev": 4.6331341541225874e-06,
+                "rounds": 40,
+                "median": 3.9169000956462696e-05,
+                "iqr": 6.732499969075434e-06,
+                "q1": 3.646850018412806e-05,
+                "q3": 4.3201000153203495e-05,
+                "iqr_outliers": 0,
+                "stddev_outliers": 12,
+                "outliers": "12;0",
+                "ld15iqr": 3.409300006751437e-05,
+                "hd15iqr": 4.969300061929971e-05,
+                "ops": 24859.52811577526,
+                "total": 0.0016090410008473555,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_edit[True-True-repo-True]",
+            "fullname": "tests/performance/item_edit_test.py::test_item_edit[True-True-repo-True]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": true,
+                "what": "repo",
+                "inherit_property": true
+            },
+            "param": "True-True-repo-True",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.00023899699954199605,
+                "max": 0.00030086300102993846,
+                "mean": 0.00027365297514734264,
+                "stddev": 2.1782966466475005e-05,
+                "rounds": 40,
+                "median": 0.00028384700090100523,
+                "iqr": 4.426499981491361e-05,
+                "q1": 0.00024747400038904743,
+                "q3": 0.00029173900020396104,
+                "iqr_outliers": 0,
+                "stddev_outliers": 17,
+                "outliers": "17;0",
+                "ld15iqr": 0.00023899699954199605,
+                "hd15iqr": 0.00030086300102993846,
+                "ops": 3654.263212236487,
+                "total": 0.010946119005893706,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_edit[True-True-distro-False]",
+            "fullname": "tests/performance/item_edit_test.py::test_item_edit[True-True-distro-False]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": true,
+                "what": "distro",
+                "inherit_property": false
+            },
+            "param": "True-True-distro-False",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 3.336300142109394e-05,
+                "max": 5.473300006997306e-05,
+                "mean": 3.8237150238273895e-05,
+                "stddev": 4.632589117301349e-06,
+                "rounds": 40,
+                "median": 3.703400034282822e-05,
+                "iqr": 3.3615006032050587e-06,
+                "q1": 3.5166000088793226e-05,
+                "q3": 3.8527500691998284e-05,
+                "iqr_outliers": 6,
+                "stddev_outliers": 7,
+                "outliers": "7;6",
+                "ld15iqr": 3.336300142109394e-05,
+                "hd15iqr": 4.4193000576342456e-05,
+                "ops": 26152.576585036375,
+                "total": 0.001529486009530956,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_edit[True-True-distro-True]",
+            "fullname": "tests/performance/item_edit_test.py::test_item_edit[True-True-distro-True]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": true,
+                "what": "distro",
+                "inherit_property": true
+            },
+            "param": "True-True-distro-True",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.0005214560005697422,
+                "max": 0.0006798619997425703,
+                "mean": 0.0005839371749971178,
+                "stddev": 5.002085249206827e-05,
+                "rounds": 40,
+                "median": 0.000569706499845779,
+                "iqr": 9.737550135469064e-05,
+                "q1": 0.0005392299999584793,
+                "q3": 0.00063660550131317,
+                "iqr_outliers": 0,
+                "stddev_outliers": 18,
+                "outliers": "18;0",
+                "ld15iqr": 0.0005214560005697422,
+                "hd15iqr": 0.0006798619997425703,
+                "ops": 1712.5129942359565,
+                "total": 0.023357486999884713,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_edit[True-True-menu-False]",
+            "fullname": "tests/performance/item_edit_test.py::test_item_edit[True-True-menu-False]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": true,
+                "what": "menu",
+                "inherit_property": false
+            },
+            "param": "True-True-menu-False",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 4.828099918086082e-05,
+                "max": 6.796699926781002e-05,
+                "mean": 5.7641099692773425e-05,
+                "stddev": 5.727816674959833e-06,
+                "rounds": 40,
+                "median": 5.645100009132875e-05,
+                "iqr": 7.840499165467918e-06,
+                "q1": 5.479700030264212e-05,
+                "q3": 6.263749946811004e-05,
+                "iqr_outliers": 0,
+                "stddev_outliers": 16,
+                "outliers": "16;0",
+                "ld15iqr": 4.828099918086082e-05,
+                "hd15iqr": 6.796699926781002e-05,
+                "ops": 17348.73216038541,
+                "total": 0.002305643987710937,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_edit[True-True-menu-True]",
+            "fullname": "tests/performance/item_edit_test.py::test_item_edit[True-True-menu-True]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": true,
+                "what": "menu",
+                "inherit_property": true
+            },
+            "param": "True-True-menu-True",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.002502346000255784,
+                "max": 0.0028066729992133332,
+                "mean": 0.0026238479500989343,
+                "stddev": 6.530150267157592e-05,
+                "rounds": 40,
+                "median": 0.002610696500596532,
+                "iqr": 0.00010450049921928439,
+                "q1": 0.002571306000390905,
+                "q3": 0.0026758064996101893,
+                "iqr_outliers": 0,
+                "stddev_outliers": 10,
+                "outliers": "10;0",
+                "ld15iqr": 0.002502346000255784,
+                "hd15iqr": 0.0028066729992133332,
+                "ops": 381.11964527605124,
+                "total": 0.10495391800395737,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_edit[True-True-profile-False]",
+            "fullname": "tests/performance/item_edit_test.py::test_item_edit[True-True-profile-False]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": true,
+                "what": "profile",
+                "inherit_property": false
+            },
+            "param": "True-True-profile-False",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 5.4721998822060414e-05,
+                "max": 7.51429997762898e-05,
+                "mean": 6.405000012819074e-05,
+                "stddev": 5.42438729309678e-06,
+                "rounds": 40,
+                "median": 6.353899971145438e-05,
+                "iqr": 8.506000085617416e-06,
+                "q1": 6.0522999774548225e-05,
+                "q3": 6.902899986016564e-05,
+                "iqr_outliers": 0,
+                "stddev_outliers": 15,
+                "outliers": "15;0",
+                "ld15iqr": 5.4721998822060414e-05,
+                "hd15iqr": 7.51429997762898e-05,
+                "ops": 15612.802466800678,
+                "total": 0.0025620000051276293,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_edit[True-True-profile-True]",
+            "fullname": "tests/performance/item_edit_test.py::test_item_edit[True-True-profile-True]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": true,
+                "what": "profile",
+                "inherit_property": true
+            },
+            "param": "True-True-profile-True",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.0009980670001823455,
+                "max": 0.001172094000139623,
+                "mean": 0.001071476925017123,
+                "stddev": 4.7117289914214614e-05,
+                "rounds": 40,
+                "median": 0.0010657729999365984,
+                "iqr": 7.605550035805209e-05,
+                "q1": 0.0010321870004190714,
+                "q3": 0.0011082425007771235,
+                "iqr_outliers": 0,
+                "stddev_outliers": 17,
+                "outliers": "17;0",
+                "ld15iqr": 0.0009980670001823455,
+                "hd15iqr": 0.001172094000139623,
+                "ops": 933.2912138859353,
+                "total": 0.04285907700068492,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_edit[True-True-image-False]",
+            "fullname": "tests/performance/item_edit_test.py::test_item_edit[True-True-image-False]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": true,
+                "what": "image",
+                "inherit_property": false
+            },
+            "param": "True-True-image-False",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 3.354299951752182e-05,
+                "max": 4.689799970947206e-05,
+                "mean": 3.841245011244609e-05,
+                "stddev": 4.025600818499904e-06,
+                "rounds": 40,
+                "median": 3.746049969777232e-05,
+                "iqr": 4.974001058144495e-06,
+                "q1": 3.537649899953976e-05,
+                "q3": 4.035050005768426e-05,
+                "iqr_outliers": 0,
+                "stddev_outliers": 12,
+                "outliers": "12;0",
+                "ld15iqr": 3.354299951752182e-05,
+                "hd15iqr": 4.689799970947206e-05,
+                "ops": 26033.22613039953,
+                "total": 0.0015364980044978438,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_edit[True-True-image-True]",
+            "fullname": "tests/performance/item_edit_test.py::test_item_edit[True-True-image-True]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": true,
+                "what": "image",
+                "inherit_property": true
+            },
+            "param": "True-True-image-True",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.00013682600001629908,
+                "max": 0.00017748200116329826,
+                "mean": 0.00015667129987377847,
+                "stddev": 9.726962580724364e-06,
+                "rounds": 40,
+                "median": 0.0001590985011716839,
+                "iqr": 1.707699993858114e-05,
+                "q1": 0.00014635949992225505,
+                "q3": 0.0001634364998608362,
+                "iqr_outliers": 0,
+                "stddev_outliers": 18,
+                "outliers": "18;0",
+                "ld15iqr": 0.00013682600001629908,
+                "hd15iqr": 0.00017748200116329826,
+                "ops": 6382.78996092868,
+                "total": 0.006266851994951139,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_edit[True-True-system-False]",
+            "fullname": "tests/performance/item_edit_test.py::test_item_edit[True-True-system-False]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": true,
+                "what": "system",
+                "inherit_property": false
+            },
+            "param": "True-True-system-False",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 3.664900032163132e-05,
+                "max": 5.827899985888507e-05,
+                "mean": 4.378537510092428e-05,
+                "stddev": 5.452120653776253e-06,
+                "rounds": 40,
+                "median": 4.1938500544347335e-05,
+                "iqr": 8.565998541598674e-06,
+                "q1": 3.983950136898784e-05,
+                "q3": 4.8405499910586514e-05,
+                "iqr_outliers": 0,
+                "stddev_outliers": 15,
+                "outliers": "15;0",
+                "ld15iqr": 3.664900032163132e-05,
+                "hd15iqr": 5.827899985888507e-05,
+                "ops": 22838.676103493985,
+                "total": 0.0017514150040369714,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_edit[True-True-system-True]",
+            "fullname": "tests/performance/item_edit_test.py::test_item_edit[True-True-system-True]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": true,
+                "what": "system",
+                "inherit_property": true
+            },
+            "param": "True-True-system-True",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 9.255300028598867e-05,
+                "max": 0.00013017300079809502,
+                "mean": 0.00010523657520025153,
+                "stddev": 8.018796114767927e-06,
+                "rounds": 40,
+                "median": 0.00010474149985384429,
+                "iqr": 1.2148000678280368e-05,
+                "q1": 9.919099920807639e-05,
+                "q3": 0.00011133899988635676,
+                "iqr_outliers": 1,
+                "stddev_outliers": 13,
+                "outliers": "13;1",
+                "ld15iqr": 9.255300028598867e-05,
+                "hd15iqr": 0.00013017300079809502,
+                "ops": 9502.399694185504,
+                "total": 0.0042094630080100615,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_remove[False-False-repo]",
+            "fullname": "tests/performance/item_remove_test.py::test_item_remove[False-False-repo]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": false,
+                "what": "repo"
+            },
+            "param": "False-False-repo",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.0005775200006610248,
+                "max": 0.000930424999751267,
+                "mean": 0.0006852685000922065,
+                "stddev": 9.166090768939073e-05,
+                "rounds": 40,
+                "median": 0.0006601555005545379,
+                "iqr": 0.0001043760003085481,
+                "q1": 0.0006189830000948859,
+                "q3": 0.000723359000403434,
+                "iqr_outliers": 3,
+                "stddev_outliers": 10,
+                "outliers": "10;3",
+                "ld15iqr": 0.0005775200006610248,
+                "hd15iqr": 0.0008810580002318602,
+                "ops": 1459.2820184576478,
+                "total": 0.02741074000368826,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_remove[False-False-distro]",
+            "fullname": "tests/performance/item_remove_test.py::test_item_remove[False-False-distro]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": false,
+                "what": "distro"
+            },
+            "param": "False-False-distro",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.1534900890001154,
+                "max": 0.21358539900029427,
+                "mean": 0.15695375880004575,
+                "stddev": 0.009617057408501084,
+                "rounds": 40,
+                "median": 0.1550754784993842,
+                "iqr": 0.0011022844992112368,
+                "q1": 0.15463941150028404,
+                "q3": 0.15574169599949528,
+                "iqr_outliers": 2,
+                "stddev_outliers": 2,
+                "outliers": "2;2",
+                "ld15iqr": 0.1534900890001154,
+                "hd15iqr": 0.1725556889996369,
+                "ops": 6.3713032911430245,
+                "total": 6.2781503520018305,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_remove[False-False-menu]",
+            "fullname": "tests/performance/item_remove_test.py::test_item_remove[False-False-menu]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": false,
+                "what": "menu"
+            },
+            "param": "False-False-menu",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.1821249610002269,
+                "max": 0.18911872699936794,
+                "mean": 0.18573477837499014,
+                "stddev": 0.0016365582143188112,
+                "rounds": 40,
+                "median": 0.1855735264998657,
+                "iqr": 0.002633696000884811,
+                "q1": 0.1844650749999346,
+                "q3": 0.1870987710008194,
+                "iqr_outliers": 0,
+                "stddev_outliers": 10,
+                "outliers": "10;0",
+                "ld15iqr": 0.1821249610002269,
+                "hd15iqr": 0.18911872699936794,
+                "ops": 5.384021284269363,
+                "total": 7.429391134999605,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_remove[False-False-profile]",
+            "fullname": "tests/performance/item_remove_test.py::test_item_remove[False-False-profile]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": false,
+                "what": "profile"
+            },
+            "param": "False-False-profile",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.15155968500039307,
+                "max": 0.165039348999926,
+                "mean": 0.15437529100017855,
+                "stddev": 0.0026996729008903803,
+                "rounds": 40,
+                "median": 0.15389364400016348,
+                "iqr": 0.002076376498735044,
+                "q1": 0.15257893500165665,
+                "q3": 0.1546553115003917,
+                "iqr_outliers": 3,
+                "stddev_outliers": 4,
+                "outliers": "4;3",
+                "ld15iqr": 0.15155968500039307,
+                "hd15iqr": 0.1596803339998587,
+                "ops": 6.477720582880348,
+                "total": 6.175011640007142,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_remove[False-False-image]",
+            "fullname": "tests/performance/item_remove_test.py::test_item_remove[False-False-image]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": false,
+                "what": "image"
+            },
+            "param": "False-False-image",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.002302033999512787,
+                "max": 0.004185816000244813,
+                "mean": 0.002471693075131043,
+                "stddev": 0.00032475080504782073,
+                "rounds": 40,
+                "median": 0.0023854179999034386,
+                "iqr": 0.00011793050089181634,
+                "q1": 0.002352532999793766,
+                "q3": 0.0024704635006855824,
+                "iqr_outliers": 2,
+                "stddev_outliers": 2,
+                "outliers": "2;2",
+                "ld15iqr": 0.002302033999512787,
+                "hd15iqr": 0.0033681300010357518,
+                "ops": 404.5809773314927,
+                "total": 0.09886772300524171,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_remove[False-False-system]",
+            "fullname": "tests/performance/item_remove_test.py::test_item_remove[False-False-system]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": false,
+                "what": "system"
+            },
+            "param": "False-False-system",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.0016411610013165046,
+                "max": 0.0027986590012005763,
+                "mean": 0.0017857242998161383,
+                "stddev": 0.00018673565906836818,
+                "rounds": 40,
+                "median": 0.001745815499816672,
+                "iqr": 0.00011400100083847065,
+                "q1": 0.0016936084994085832,
+                "q3": 0.0018076095002470538,
+                "iqr_outliers": 2,
+                "stddev_outliers": 2,
+                "outliers": "2;2",
+                "ld15iqr": 0.0016411610013165046,
+                "hd15iqr": 0.002096685999276815,
+                "ops": 559.9968595952702,
+                "total": 0.07142897199264553,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_remove[True-False-repo]",
+            "fullname": "tests/performance/item_remove_test.py::test_item_remove[True-False-repo]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": false,
+                "what": "repo"
+            },
+            "param": "True-False-repo",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.0005701909994968446,
+                "max": 0.0009658340004534693,
+                "mean": 0.0006634880498495477,
+                "stddev": 8.985511359014625e-05,
+                "rounds": 40,
+                "median": 0.0006544975003635045,
+                "iqr": 9.567350025463384e-05,
+                "q1": 0.0005945909997535637,
+                "q3": 0.0006902645000081975,
+                "iqr_outliers": 3,
+                "stddev_outliers": 8,
+                "outliers": "8;3",
+                "ld15iqr": 0.0005701909994968446,
+                "hd15iqr": 0.0008388839996769093,
+                "ops": 1507.1861508685192,
+                "total": 0.026539521993981907,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_remove[True-False-distro]",
+            "fullname": "tests/performance/item_remove_test.py::test_item_remove[True-False-distro]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": false,
+                "what": "distro"
+            },
+            "param": "True-False-distro",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.06741180100107158,
+                "max": 0.07173115499972482,
+                "mean": 0.06859572807506993,
+                "stddev": 0.0011231144407516018,
+                "rounds": 40,
+                "median": 0.0682213434993173,
+                "iqr": 0.000822766500277794,
+                "q1": 0.06786663999992015,
+                "q3": 0.06868940650019795,
+                "iqr_outliers": 5,
+                "stddev_outliers": 8,
+                "outliers": "8;5",
+                "ld15iqr": 0.06741180100107158,
+                "hd15iqr": 0.07030552800097212,
+                "ops": 14.578167300821095,
+                "total": 2.743829123002797,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_remove[True-False-menu]",
+            "fullname": "tests/performance/item_remove_test.py::test_item_remove[True-False-menu]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": false,
+                "what": "menu"
+            },
+            "param": "True-False-menu",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.07772967900018557,
+                "max": 0.09534059900033753,
+                "mean": 0.0798139504500341,
+                "stddev": 0.0026859783918779176,
+                "rounds": 40,
+                "median": 0.07923923350062978,
+                "iqr": 0.00126163299955806,
+                "q1": 0.0787984750004398,
+                "q3": 0.08006010799999785,
+                "iqr_outliers": 2,
+                "stddev_outliers": 1,
+                "outliers": "1;2",
+                "ld15iqr": 0.07772967900018557,
+                "hd15iqr": 0.08217938899906585,
+                "ops": 12.52913800609368,
+                "total": 3.192558018001364,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_remove[True-False-profile]",
+            "fullname": "tests/performance/item_remove_test.py::test_item_remove[True-False-profile]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": false,
+                "what": "profile"
+            },
+            "param": "True-False-profile",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.06552975499835156,
+                "max": 0.07045142200149712,
+                "mean": 0.06693339262510563,
+                "stddev": 0.0009728735411003871,
+                "rounds": 40,
+                "median": 0.06671583450042817,
+                "iqr": 0.0010854945012397366,
+                "q1": 0.06631524799922772,
+                "q3": 0.06740074250046746,
+                "iqr_outliers": 1,
+                "stddev_outliers": 9,
+                "outliers": "9;1",
+                "ld15iqr": 0.06552975499835156,
+                "hd15iqr": 0.07045142200149712,
+                "ops": 14.940225809275896,
+                "total": 2.677335705004225,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_remove[True-False-image]",
+            "fullname": "tests/performance/item_remove_test.py::test_item_remove[True-False-image]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": false,
+                "what": "image"
+            },
+            "param": "True-False-image",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.0020273150003049523,
+                "max": 0.00249055399945064,
+                "mean": 0.0021456472999034303,
+                "stddev": 8.321109400772181e-05,
+                "rounds": 40,
+                "median": 0.002125365000210877,
+                "iqr": 8.625299960840493e-05,
+                "q1": 0.0020945229998687864,
+                "q3": 0.0021807759994771914,
+                "iqr_outliers": 1,
+                "stddev_outliers": 6,
+                "outliers": "6;1",
+                "ld15iqr": 0.0020273150003049523,
+                "hd15iqr": 0.00249055399945064,
+                "ops": 466.0598226208973,
+                "total": 0.08582589199613722,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_remove[True-False-system]",
+            "fullname": "tests/performance/item_remove_test.py::test_item_remove[True-False-system]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": false,
+                "what": "system"
+            },
+            "param": "True-False-system",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.0016535530012333766,
+                "max": 0.001980633000130183,
+                "mean": 0.0017673160752110562,
+                "stddev": 8.076191601241668e-05,
+                "rounds": 40,
+                "median": 0.001752723000208789,
+                "iqr": 0.00012764500024786685,
+                "q1": 0.0017033985004673013,
+                "q3": 0.0018310435007151682,
+                "iqr_outliers": 0,
+                "stddev_outliers": 15,
+                "outliers": "15;0",
+                "ld15iqr": 0.0016535530012333766,
+                "hd15iqr": 0.001980633000130183,
+                "ops": 565.829742639883,
+                "total": 0.07069264300844225,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_remove[False-True-repo]",
+            "fullname": "tests/performance/item_remove_test.py::test_item_remove[False-True-repo]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": true,
+                "what": "repo"
+            },
+            "param": "False-True-repo",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.0005777899987151613,
+                "max": 0.002429386999210692,
+                "mean": 0.0007535612499850686,
+                "stddev": 0.00036196032250046805,
+                "rounds": 40,
+                "median": 0.0006600429996979074,
+                "iqr": 8.286449974548304e-05,
+                "q1": 0.0006213460001163185,
+                "q3": 0.0007042104998618015,
+                "iqr_outliers": 5,
+                "stddev_outliers": 2,
+                "outliers": "2;5",
+                "ld15iqr": 0.0005777899987151613,
+                "hd15iqr": 0.0008413819996349048,
+                "ops": 1327.032142403573,
+                "total": 0.030142449999402743,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_remove[False-True-distro]",
+            "fullname": "tests/performance/item_remove_test.py::test_item_remove[False-True-distro]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": true,
+                "what": "distro"
+            },
+            "param": "False-True-distro",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.3150261340015277,
+                "max": 0.35102974499932316,
+                "mean": 0.31985295907497857,
+                "stddev": 0.005437543738862137,
+                "rounds": 40,
+                "median": 0.318817405000118,
+                "iqr": 0.0023345769996012677,
+                "q1": 0.31771607300015603,
+                "q3": 0.3200506499997573,
+                "iqr_outliers": 4,
+                "stddev_outliers": 1,
+                "outliers": "1;4",
+                "ld15iqr": 0.3150261340015277,
+                "hd15iqr": 0.3236507259989594,
+                "ops": 3.1264366066583245,
+                "total": 12.794118362999143,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_remove[False-True-menu]",
+            "fullname": "tests/performance/item_remove_test.py::test_item_remove[False-True-menu]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": true,
+                "what": "menu"
+            },
+            "param": "False-True-menu",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.5080200649990729,
+                "max": 0.5568913130009605,
+                "mean": 0.5227280456499557,
+                "stddev": 0.009861925625133964,
+                "rounds": 40,
+                "median": 0.5214257269999507,
+                "iqr": 0.008184965999134874,
+                "q1": 0.5177258610001445,
+                "q3": 0.5259108269992794,
+                "iqr_outliers": 3,
+                "stddev_outliers": 10,
+                "outliers": "10;3",
+                "ld15iqr": 0.5080200649990729,
+                "hd15iqr": 0.5408009849998052,
+                "ops": 1.9130406495725867,
+                "total": 20.909121825998227,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_remove[False-True-profile]",
+            "fullname": "tests/performance/item_remove_test.py::test_item_remove[False-True-profile]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": true,
+                "what": "profile"
+            },
+            "param": "False-True-profile",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.31333414999971865,
+                "max": 0.3298285159999068,
+                "mean": 0.31754870695021964,
+                "stddev": 0.003306587391256409,
+                "rounds": 40,
+                "median": 0.3168050945005234,
+                "iqr": 0.0029963589995531947,
+                "q1": 0.31565005100037524,
+                "q3": 0.31864640999992844,
+                "iqr_outliers": 3,
+                "stddev_outliers": 8,
+                "outliers": "8;3",
+                "ld15iqr": 0.31333414999971865,
+                "hd15iqr": 0.3244298860008712,
+                "ops": 3.1491231994113096,
+                "total": 12.701948278008786,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_remove[False-True-image]",
+            "fullname": "tests/performance/item_remove_test.py::test_item_remove[False-True-image]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": true,
+                "what": "image"
+            },
+            "param": "False-True-image",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.0022907720012881327,
+                "max": 0.0028784570004063426,
+                "mean": 0.0024209014001371544,
+                "stddev": 0.00011651881962925955,
+                "rounds": 40,
+                "median": 0.0023992925007405574,
+                "iqr": 6.577349995495752e-05,
+                "q1": 0.0023675265001656953,
+                "q3": 0.002433300000120653,
+                "iqr_outliers": 4,
+                "stddev_outliers": 8,
+                "outliers": "8;4",
+                "ld15iqr": 0.0022907720012881327,
+                "hd15iqr": 0.0025497930000710767,
+                "ops": 413.0692806998855,
+                "total": 0.09683605600548617,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_remove[False-True-system]",
+            "fullname": "tests/performance/item_remove_test.py::test_item_remove[False-True-system]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": true,
+                "what": "system"
+            },
+            "param": "False-True-system",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.0016696759994374588,
+                "max": 0.0042438650016265456,
+                "mean": 0.0018937428498247756,
+                "stddev": 0.00044364269829688956,
+                "rounds": 40,
+                "median": 0.001784224999937578,
+                "iqr": 0.00010001850023400038,
+                "q1": 0.001749486499647901,
+                "q3": 0.0018495049998819013,
+                "iqr_outliers": 3,
+                "stddev_outliers": 2,
+                "outliers": "2;3",
+                "ld15iqr": 0.0016696759994374588,
+                "hd15iqr": 0.002219639000031748,
+                "ops": 528.0547990412364,
+                "total": 0.07574971399299102,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_remove[True-True-repo]",
+            "fullname": "tests/performance/item_remove_test.py::test_item_remove[True-True-repo]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": true,
+                "what": "repo"
+            },
+            "param": "True-True-repo",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.0005910359996050829,
+                "max": 0.0008730059998924844,
+                "mean": 0.0006886684501751006,
+                "stddev": 7.19878478636255e-05,
+                "rounds": 40,
+                "median": 0.0006735300012223888,
+                "iqr": 0.00011463950067991391,
+                "q1": 0.0006314060001386679,
+                "q3": 0.0007460455008185818,
+                "iqr_outliers": 0,
+                "stddev_outliers": 13,
+                "outliers": "13;0",
+                "ld15iqr": 0.0005910359996050829,
+                "hd15iqr": 0.0008730059998924844,
+                "ops": 1452.0775559643257,
+                "total": 0.027546738007004024,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_remove[True-True-distro]",
+            "fullname": "tests/performance/item_remove_test.py::test_item_remove[True-True-distro]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": true,
+                "what": "distro"
+            },
+            "param": "True-True-distro",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.20028127400109952,
+                "max": 0.21772915300061868,
+                "mean": 0.20430796830009967,
+                "stddev": 0.002905578341643562,
+                "rounds": 40,
+                "median": 0.20342359300047974,
+                "iqr": 0.0032420424995507346,
+                "q1": 0.202424226000403,
+                "q3": 0.20566626849995373,
+                "iqr_outliers": 1,
+                "stddev_outliers": 6,
+                "outliers": "6;1",
+                "ld15iqr": 0.20028127400109952,
+                "hd15iqr": 0.21772915300061868,
+                "ops": 4.894571701340305,
+                "total": 8.172318732003987,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_remove[True-True-menu]",
+            "fullname": "tests/performance/item_remove_test.py::test_item_remove[True-True-menu]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": true,
+                "what": "menu"
+            },
+            "param": "True-True-menu",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.34644802100046945,
+                "max": 0.36939631999848643,
+                "mean": 0.35816661404978734,
+                "stddev": 0.006739460871087542,
+                "rounds": 40,
+                "median": 0.35788072850027675,
+                "iqr": 0.008203100499486027,
+                "q1": 0.35481219699977373,
+                "q3": 0.36301529749925976,
+                "iqr_outliers": 0,
+                "stddev_outliers": 15,
+                "outliers": "15;0",
+                "ld15iqr": 0.34644802100046945,
+                "hd15iqr": 0.36939631999848643,
+                "ops": 2.791996687499729,
+                "total": 14.326664561991493,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_remove[True-True-profile]",
+            "fullname": "tests/performance/item_remove_test.py::test_item_remove[True-True-profile]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": true,
+                "what": "profile"
+            },
+            "param": "True-True-profile",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.19992161099980876,
+                "max": 0.21689117700043425,
+                "mean": 0.20232337354987068,
+                "stddev": 0.0027944291867150065,
+                "rounds": 40,
+                "median": 0.2018433269995512,
+                "iqr": 0.0021003790006943746,
+                "q1": 0.2007229679993543,
+                "q3": 0.20282334700004867,
+                "iqr_outliers": 1,
+                "stddev_outliers": 3,
+                "outliers": "3;1",
+                "ld15iqr": 0.19992161099980876,
+                "hd15iqr": 0.21689117700043425,
+                "ops": 4.94258267077338,
+                "total": 8.092934941994827,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_remove[True-True-image]",
+            "fullname": "tests/performance/item_remove_test.py::test_item_remove[True-True-image]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": true,
+                "what": "image"
+            },
+            "param": "True-True-image",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.0020183540000289213,
+                "max": 0.004274265998901683,
+                "mean": 0.0022707413749685655,
+                "stddev": 0.00042547017375332185,
+                "rounds": 40,
+                "median": 0.0021249460005492438,
+                "iqr": 0.00011490050201246049,
+                "q1": 0.002098741499139578,
+                "q3": 0.0022136420011520386,
+                "iqr_outliers": 5,
+                "stddev_outliers": 4,
+                "outliers": "4;5",
+                "ld15iqr": 0.0020183540000289213,
+                "hd15iqr": 0.002483419999407488,
+                "ops": 440.3848060476914,
+                "total": 0.09082965499874263,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_remove[True-True-system]",
+            "fullname": "tests/performance/item_remove_test.py::test_item_remove[True-True-system]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": true,
+                "what": "system"
+            },
+            "param": "True-True-system",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.0016668009993736632,
+                "max": 0.0019175159995938884,
+                "mean": 0.001791247224991821,
+                "stddev": 7.393869962493742e-05,
+                "rounds": 40,
+                "median": 0.0017994859999816981,
+                "iqr": 0.0001071954993676627,
+                "q1": 0.0017358110007990035,
+                "q3": 0.0018430065001666662,
+                "iqr_outliers": 0,
+                "stddev_outliers": 14,
+                "outliers": "14;0",
+                "ld15iqr": 0.0016668009993736632,
+                "hd15iqr": 0.0019175159995938884,
+                "ops": 558.270229841984,
+                "total": 0.07164988899967284,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_rename[False-False-repo]",
+            "fullname": "tests/performance/item_rename_test.py::test_item_rename[False-False-repo]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": false,
+                "what": "repo"
+            },
+            "param": "False-False-repo",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.0015399829990201397,
+                "max": 0.00267526999959955,
+                "mean": 0.0017650617498929932,
+                "stddev": 0.00021304039087104596,
+                "rounds": 40,
+                "median": 0.001717174500299734,
+                "iqr": 0.00014442199972108938,
+                "q1": 0.0016514600001755753,
+                "q3": 0.0017958819998966646,
+                "iqr_outliers": 4,
+                "stddev_outliers": 5,
+                "outliers": "5;4",
+                "ld15iqr": 0.0015399829990201397,
+                "hd15iqr": 0.0020796129992959322,
+                "ops": 566.5524166849261,
+                "total": 0.07060246999571973,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_rename[False-False-distro]",
+            "fullname": "tests/performance/item_rename_test.py::test_item_rename[False-False-distro]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": false,
+                "what": "distro"
+            },
+            "param": "False-False-distro",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.07783336799911922,
+                "max": 0.07982490200083703,
+                "mean": 0.07867832310007543,
+                "stddev": 0.00047939401745433915,
+                "rounds": 40,
+                "median": 0.07865742850026436,
+                "iqr": 0.0006884424992676941,
+                "q1": 0.07833186150037363,
+                "q3": 0.07902030399964133,
+                "iqr_outliers": 0,
+                "stddev_outliers": 13,
+                "outliers": "13;0",
+                "ld15iqr": 0.07783336799911922,
+                "hd15iqr": 0.07982490200083703,
+                "ops": 12.709981105317194,
+                "total": 3.1471329240030173,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_rename[False-False-menu]",
+            "fullname": "tests/performance/item_rename_test.py::test_item_rename[False-False-menu]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": false,
+                "what": "menu"
+            },
+            "param": "False-False-menu",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.30349840500093705,
+                "max": 0.31324387499989825,
+                "mean": 0.30763528220004444,
+                "stddev": 0.0021297024333835454,
+                "rounds": 40,
+                "median": 0.30748843050059804,
+                "iqr": 0.0028980590013816254,
+                "q1": 0.30613711399928434,
+                "q3": 0.30903517300066596,
+                "iqr_outliers": 0,
+                "stddev_outliers": 13,
+                "outliers": "13;0",
+                "ld15iqr": 0.30349840500093705,
+                "hd15iqr": 0.31324387499989825,
+                "ops": 3.2506024434145853,
+                "total": 12.305411288001778,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_rename[False-False-profile]",
+            "fullname": "tests/performance/item_rename_test.py::test_item_rename[False-False-profile]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": false,
+                "what": "profile"
+            },
+            "param": "False-False-profile",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 1.2528077859988116,
+                "max": 1.289197765998324,
+                "mean": 1.264435078024826,
+                "stddev": 0.009185710068422996,
+                "rounds": 40,
+                "median": 1.261363397000423,
+                "iqr": 0.015920938999443024,
+                "q1": 1.2569606330007446,
+                "q3": 1.2728815720001876,
+                "iqr_outliers": 0,
+                "stddev_outliers": 12,
+                "outliers": "12;0",
+                "ld15iqr": 1.2528077859988116,
+                "hd15iqr": 1.289197765998324,
+                "ops": 0.7908670183067841,
+                "total": 50.57740312099304,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_rename[False-False-image]",
+            "fullname": "tests/performance/item_rename_test.py::test_item_rename[False-False-image]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": false,
+                "what": "image"
+            },
+            "param": "False-False-image",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 1.09213939700021,
+                "max": 1.1281970979998732,
+                "mean": 1.1096006181500342,
+                "stddev": 0.008052029650664694,
+                "rounds": 40,
+                "median": 1.1080259499995009,
+                "iqr": 0.008147608001308981,
+                "q1": 1.1039815239992095,
+                "q3": 1.1121291320005184,
+                "iqr_outliers": 3,
+                "stddev_outliers": 10,
+                "outliers": "10;3",
+                "ld15iqr": 1.09213939700021,
+                "hd15iqr": 1.1279855290013074,
+                "ops": 0.901225164841054,
+                "total": 44.38402472600137,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_rename[False-False-system]",
+            "fullname": "tests/performance/item_rename_test.py::test_item_rename[False-False-system]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": false,
+                "what": "system"
+            },
+            "param": "False-False-system",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.0010486009996384382,
+                "max": 0.0015629899990017293,
+                "mean": 0.0012123948501539417,
+                "stddev": 0.00011160390072943278,
+                "rounds": 40,
+                "median": 0.0011845290000565,
+                "iqr": 0.000137524500132713,
+                "q1": 0.0011283940002613235,
+                "q3": 0.0012659185003940365,
+                "iqr_outliers": 1,
+                "stddev_outliers": 8,
+                "outliers": "8;1",
+                "ld15iqr": 0.0010486009996384382,
+                "hd15iqr": 0.0015629899990017293,
+                "ops": 824.8137971495233,
+                "total": 0.048495794006157666,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_rename[True-False-repo]",
+            "fullname": "tests/performance/item_rename_test.py::test_item_rename[True-False-repo]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": false,
+                "what": "repo"
+            },
+            "param": "True-False-repo",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.0011257779988227412,
+                "max": 0.0038841750010760734,
+                "mean": 0.0013977701497424277,
+                "stddev": 0.0004806979623587052,
+                "rounds": 40,
+                "median": 0.0012538744995254092,
+                "iqr": 0.00019124249956803396,
+                "q1": 0.0011863604995596688,
+                "q3": 0.0013776029991277028,
+                "iqr_outliers": 4,
+                "stddev_outliers": 3,
+                "outliers": "3;4",
+                "ld15iqr": 0.0011257779988227412,
+                "hd15iqr": 0.0018477739995432785,
+                "ops": 715.4252079172485,
+                "total": 0.05591080598969711,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_rename[True-False-distro]",
+            "fullname": "tests/performance/item_rename_test.py::test_item_rename[True-False-distro]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": false,
+                "what": "distro"
+            },
+            "param": "True-False-distro",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.02819558400005917,
+                "max": 0.02959771399946476,
+                "mean": 0.02866954754986182,
+                "stddev": 0.0003386419411907198,
+                "rounds": 40,
+                "median": 0.02862816050037509,
+                "iqr": 0.00044756499846698716,
+                "q1": 0.02838601550047315,
+                "q3": 0.028833580498940137,
+                "iqr_outliers": 1,
+                "stddev_outliers": 13,
+                "outliers": "13;1",
+                "ld15iqr": 0.02819558400005917,
+                "hd15iqr": 0.02959771399946476,
+                "ops": 34.880215610686186,
+                "total": 1.1467819019944727,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_rename[True-False-menu]",
+            "fullname": "tests/performance/item_rename_test.py::test_item_rename[True-False-menu]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": false,
+                "what": "menu"
+            },
+            "param": "True-False-menu",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.10703246400044009,
+                "max": 0.11154507600076613,
+                "mean": 0.10890874049982813,
+                "stddev": 0.0009536743556750333,
+                "rounds": 40,
+                "median": 0.10888830950079864,
+                "iqr": 0.0010920115000772057,
+                "q1": 0.10836470249978447,
+                "q3": 0.10945671399986168,
+                "iqr_outliers": 1,
+                "stddev_outliers": 11,
+                "outliers": "11;1",
+                "ld15iqr": 0.10703246400044009,
+                "hd15iqr": 0.11154507600076613,
+                "ops": 9.181999492516196,
+                "total": 4.356349619993125,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_rename[True-False-profile]",
+            "fullname": "tests/performance/item_rename_test.py::test_item_rename[True-False-profile]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": false,
+                "what": "profile"
+            },
+            "param": "True-False-profile",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 1.120576945000721,
+                "max": 1.1488514780012338,
+                "mean": 1.134169100500094,
+                "stddev": 0.007497839811447143,
+                "rounds": 40,
+                "median": 1.1327215355004228,
+                "iqr": 0.0120001154991769,
+                "q1": 1.1286479430000327,
+                "q3": 1.1406480584992096,
+                "iqr_outliers": 0,
+                "stddev_outliers": 12,
+                "outliers": "12;0",
+                "ld15iqr": 1.120576945000721,
+                "hd15iqr": 1.1488514780012338,
+                "ops": 0.881702736883826,
+                "total": 45.36676402000376,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_rename[True-False-image]",
+            "fullname": "tests/performance/item_rename_test.py::test_item_rename[True-False-image]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": false,
+                "what": "image"
+            },
+            "param": "True-False-image",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 1.0680979940007091,
+                "max": 1.1038885890011443,
+                "mean": 1.079813658574949,
+                "stddev": 0.008968346672975523,
+                "rounds": 40,
+                "median": 1.0779313984994587,
+                "iqr": 0.010127252499842143,
+                "q1": 1.0720962740006144,
+                "q3": 1.0822235265004565,
+                "iqr_outliers": 2,
+                "stddev_outliers": 8,
+                "outliers": "8;2",
+                "ld15iqr": 1.0680979940007091,
+                "hd15iqr": 1.1036685669987492,
+                "ops": 0.9260857112325468,
+                "total": 43.19254634299796,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_rename[True-False-system]",
+            "fullname": "tests/performance/item_rename_test.py::test_item_rename[True-False-system]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": false,
+                "what": "system"
+            },
+            "param": "True-False-system",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.001072287999704713,
+                "max": 0.0015623849994881311,
+                "mean": 0.0012325871500252106,
+                "stddev": 0.0001275008873858454,
+                "rounds": 40,
+                "median": 0.0011901885000042967,
+                "iqr": 0.0001611560001038015,
+                "q1": 0.0011349734995746985,
+                "q3": 0.0012961294996785,
+                "iqr_outliers": 2,
+                "stddev_outliers": 12,
+                "outliers": "12;2",
+                "ld15iqr": 0.001072287999704713,
+                "hd15iqr": 0.0015599100006511435,
+                "ops": 811.3016592616162,
+                "total": 0.04930348600100842,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_rename[False-True-repo]",
+            "fullname": "tests/performance/item_rename_test.py::test_item_rename[False-True-repo]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": true,
+                "what": "repo"
+            },
+            "param": "False-True-repo",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.00155188300050213,
+                "max": 0.003935885000828421,
+                "mean": 0.0017614642250919133,
+                "stddev": 0.0003730597133078201,
+                "rounds": 40,
+                "median": 0.001670147999902838,
+                "iqr": 0.00011221649947401602,
+                "q1": 0.0016427660002591438,
+                "q3": 0.0017549824997331598,
+                "iqr_outliers": 4,
+                "stddev_outliers": 1,
+                "outliers": "1;4",
+                "ld15iqr": 0.00155188300050213,
+                "hd15iqr": 0.001987789000850171,
+                "ops": 567.7095144795347,
+                "total": 0.07045856900367653,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_rename[False-True-distro]",
+            "fullname": "tests/performance/item_rename_test.py::test_item_rename[False-True-distro]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": true,
+                "what": "distro"
+            },
+            "param": "False-True-distro",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.24453949900089356,
+                "max": 0.25553810599922144,
+                "mean": 0.24726803862504312,
+                "stddev": 0.002093733716666119,
+                "rounds": 40,
+                "median": 0.2467996175000735,
+                "iqr": 0.002046461499958241,
+                "q1": 0.24600086549980915,
+                "q3": 0.2480473269997674,
+                "iqr_outliers": 3,
+                "stddev_outliers": 7,
+                "outliers": "7;3",
+                "ld15iqr": 0.24453949900089356,
+                "hd15iqr": 0.25117867200060573,
+                "ops": 4.0441943308184625,
+                "total": 9.890721545001725,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_rename[False-True-menu]",
+            "fullname": "tests/performance/item_rename_test.py::test_item_rename[False-True-menu]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": true,
+                "what": "menu"
+            },
+            "param": "False-True-menu",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.9421607050007879,
+                "max": 0.9704546520006261,
+                "mean": 0.9486988211501284,
+                "stddev": 0.005578192988874785,
+                "rounds": 40,
+                "median": 0.9478492585003551,
+                "iqr": 0.004882791498857841,
+                "q1": 0.9451849695005876,
+                "q3": 0.9500677609994455,
+                "iqr_outliers": 3,
+                "stddev_outliers": 10,
+                "outliers": "10;3",
+                "ld15iqr": 0.9421607050007879,
+                "hd15iqr": 0.9575009650016,
+                "ops": 1.054075305783218,
+                "total": 37.94795284600514,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_rename[False-True-profile]",
+            "fullname": "tests/performance/item_rename_test.py::test_item_rename[False-True-profile]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": true,
+                "what": "profile"
+            },
+            "param": "False-True-profile",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 1.7169643830002315,
+                "max": 1.7570545300004596,
+                "mean": 1.7334617497998805,
+                "stddev": 0.010791833975828594,
+                "rounds": 40,
+                "median": 1.7328665905006346,
+                "iqr": 0.016089476499473676,
+                "q1": 1.725016822500038,
+                "q3": 1.7411062989995116,
+                "iqr_outliers": 0,
+                "stddev_outliers": 13,
+                "outliers": "13;0",
+                "ld15iqr": 1.7169643830002315,
+                "hd15iqr": 1.7570545300004596,
+                "ops": 0.5768803379223366,
+                "total": 69.33846999199523,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_rename[False-True-image]",
+            "fullname": "tests/performance/item_rename_test.py::test_item_rename[False-True-image]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": true,
+                "what": "image"
+            },
+            "param": "False-True-image",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 1.2318534870009898,
+                "max": 1.2639376189999894,
+                "mean": 1.2411830678749538,
+                "stddev": 0.007794030341198062,
+                "rounds": 40,
+                "median": 1.240001018500152,
+                "iqr": 0.00814940549844323,
+                "q1": 1.2359061775005102,
+                "q3": 1.2440555829989535,
+                "iqr_outliers": 2,
+                "stddev_outliers": 14,
+                "outliers": "14;2",
+                "ld15iqr": 1.2318534870009898,
+                "hd15iqr": 1.259803725999518,
+                "ops": 0.8056829213051653,
+                "total": 49.647322714998154,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_rename[False-True-system]",
+            "fullname": "tests/performance/item_rename_test.py::test_item_rename[False-True-system]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": true,
+                "what": "system"
+            },
+            "param": "False-True-system",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.0009774209993338445,
+                "max": 0.0016877399993973086,
+                "mean": 0.001202964774938664,
+                "stddev": 0.00014746373130239816,
+                "rounds": 40,
+                "median": 0.0011544325006980216,
+                "iqr": 0.00019647600038297242,
+                "q1": 0.001110130999222747,
+                "q3": 0.0013066069996057195,
+                "iqr_outliers": 1,
+                "stddev_outliers": 11,
+                "outliers": "11;1",
+                "ld15iqr": 0.0009774209993338445,
+                "hd15iqr": 0.0016877399993973086,
+                "ops": 831.2795360537364,
+                "total": 0.04811859099754656,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_rename[True-True-repo]",
+            "fullname": "tests/performance/item_rename_test.py::test_item_rename[True-True-repo]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": true,
+                "what": "repo"
+            },
+            "param": "True-True-repo",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.001132018000134849,
+                "max": 0.0022227850004128413,
+                "mean": 0.001297203599870045,
+                "stddev": 0.00020280100042218696,
+                "rounds": 40,
+                "median": 0.0012610855001184973,
+                "iqr": 0.0001695634991847328,
+                "q1": 0.0011734219997379114,
+                "q3": 0.0013429854989226442,
+                "iqr_outliers": 2,
+                "stddev_outliers": 3,
+                "outliers": "3;2",
+                "ld15iqr": 0.001132018000134849,
+                "hd15iqr": 0.0018990640000993153,
+                "ops": 770.8890108693662,
+                "total": 0.051888143994801794,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_rename[True-True-distro]",
+            "fullname": "tests/performance/item_rename_test.py::test_item_rename[True-True-distro]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": true,
+                "what": "distro"
+            },
+            "param": "True-True-distro",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.16115543600062665,
+                "max": 0.1665505260007194,
+                "mean": 0.16412375095010248,
+                "stddev": 0.0014209412953914346,
+                "rounds": 40,
+                "median": 0.16412410000066302,
+                "iqr": 0.0021876089995203074,
+                "q1": 0.16297143750034593,
+                "q3": 0.16515904649986624,
+                "iqr_outliers": 0,
+                "stddev_outliers": 15,
+                "outliers": "15;0",
+                "ld15iqr": 0.16115543600062665,
+                "hd15iqr": 0.1665505260007194,
+                "ops": 6.09296335363444,
+                "total": 6.564950038004099,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_rename[True-True-menu]",
+            "fullname": "tests/performance/item_rename_test.py::test_item_rename[True-True-menu]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": true,
+                "what": "menu"
+            },
+            "param": "True-True-menu",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.6077215969999088,
+                "max": 0.6541364980002982,
+                "mean": 0.6135883183998431,
+                "stddev": 0.008501546025623542,
+                "rounds": 40,
+                "median": 0.6118351724999229,
+                "iqr": 0.002978497500407684,
+                "q1": 0.6101441154996792,
+                "q3": 0.6131226130000869,
+                "iqr_outliers": 3,
+                "stddev_outliers": 2,
+                "outliers": "2;3",
+                "ld15iqr": 0.6077215969999088,
+                "hd15iqr": 0.6176658360000147,
+                "ops": 1.6297572330057837,
+                "total": 24.543532735993722,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_rename[True-True-profile]",
+            "fullname": "tests/performance/item_rename_test.py::test_item_rename[True-True-profile]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": true,
+                "what": "profile"
+            },
+            "param": "True-True-profile",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 1.4849614310005563,
+                "max": 1.5445703510013118,
+                "mean": 1.5032335541251087,
+                "stddev": 0.012317183321088722,
+                "rounds": 40,
+                "median": 1.5005851960004293,
+                "iqr": 0.01459686899852386,
+                "q1": 1.4948728825002036,
+                "q3": 1.5094697514987274,
+                "iqr_outliers": 1,
+                "stddev_outliers": 11,
+                "outliers": "11;1",
+                "ld15iqr": 1.4849614310005563,
+                "hd15iqr": 1.5445703510013118,
+                "ops": 0.6652326228721034,
+                "total": 60.129342165004346,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_rename[True-True-image]",
+            "fullname": "tests/performance/item_rename_test.py::test_item_rename[True-True-image]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": true,
+                "what": "image"
+            },
+            "param": "True-True-image",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 1.1798704550001275,
+                "max": 1.2080348710005637,
+                "mean": 1.1912309638251373,
+                "stddev": 0.007243004203663177,
+                "rounds": 40,
+                "median": 1.1919620600001508,
+                "iqr": 0.0103402515005655,
+                "q1": 1.1856664699998873,
+                "q3": 1.1960067215004528,
+                "iqr_outliers": 0,
+                "stddev_outliers": 14,
+                "outliers": "14;0",
+                "ld15iqr": 1.1798704550001275,
+                "hd15iqr": 1.2080348710005637,
+                "ops": 0.8394677693643225,
+                "total": 47.64923855300549,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_item_rename[True-True-system]",
+            "fullname": "tests/performance/item_rename_test.py::test_item_rename[True-True-system]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": true,
+                "what": "system"
+            },
+            "param": "True-True-system",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.0010761350004031556,
+                "max": 0.0018713860008574557,
+                "mean": 0.0012360516498574725,
+                "stddev": 0.00017867933553585323,
+                "rounds": 40,
+                "median": 0.0011793959993156022,
+                "iqr": 0.00014174150055623613,
+                "q1": 0.0011328544997013523,
+                "q3": 0.0012745960002575885,
+                "iqr_outliers": 3,
+                "stddev_outliers": 5,
+                "outliers": "5;3",
+                "ld15iqr": 0.0010761350004031556,
+                "hd15iqr": 0.0016331110000464832,
+                "ops": 809.0276810967476,
+                "total": 0.0494420659942989,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_make_pxe_menu[False-False]",
+            "fullname": "tests/performance/make_pxe_menu_test.py::test_make_pxe_menu[False-False]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": false
+            },
+            "param": "False-False",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.03423458399993251,
+                "max": 0.0355749040027149,
+                "mean": 0.034681574000114776,
+                "stddev": 0.000298111862223138,
+                "rounds": 40,
+                "median": 0.03461333400264266,
+                "iqr": 0.0002615289977256907,
+                "q1": 0.034522662001108984,
+                "q3": 0.034784190998834674,
+                "iqr_outliers": 3,
+                "stddev_outliers": 11,
+                "outliers": "11;3",
+                "ld15iqr": 0.03423458399993251,
+                "hd15iqr": 0.035302396998304175,
+                "ops": 28.83375477700898,
+                "total": 1.3872629600045912,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_make_pxe_menu[True-False]",
+            "fullname": "tests/performance/make_pxe_menu_test.py::test_make_pxe_menu[True-False]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": false
+            },
+            "param": "True-False",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.011501442000735551,
+                "max": 0.012029149002046324,
+                "mean": 0.011742406625126022,
+                "stddev": 0.00010615564106023693,
+                "rounds": 40,
+                "median": 0.011754970500987838,
+                "iqr": 0.00013133349966665264,
+                "q1": 0.011671956999634858,
+                "q3": 0.01180329049930151,
+                "iqr_outliers": 1,
+                "stddev_outliers": 12,
+                "outliers": "12;1",
+                "ld15iqr": 0.011501442000735551,
+                "hd15iqr": 0.012029149002046324,
+                "ops": 85.16141809126523,
+                "total": 0.4696962650050409,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_make_pxe_menu[False-True]",
+            "fullname": "tests/performance/make_pxe_menu_test.py::test_make_pxe_menu[False-True]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": true
+            },
+            "param": "False-True",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.09932667900284287,
+                "max": 0.10529330300050788,
+                "mean": 0.10140994517532817,
+                "stddev": 0.0013570629320602257,
+                "rounds": 40,
+                "median": 0.10116337900035433,
+                "iqr": 0.0018549445012467913,
+                "q1": 0.10035719850020541,
+                "q3": 0.1022121430014522,
+                "iqr_outliers": 1,
+                "stddev_outliers": 12,
+                "outliers": "12;1",
+                "ld15iqr": 0.09932667900284287,
+                "hd15iqr": 0.10529330300050788,
+                "ops": 9.860965788622554,
+                "total": 4.056397807013127,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_make_pxe_menu[True-True]",
+            "fullname": "tests/performance/make_pxe_menu_test.py::test_make_pxe_menu[True-True]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": true
+            },
+            "param": "True-True",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 0.06500985300226603,
+                "max": 0.0677260539996496,
+                "mean": 0.06592017724997276,
+                "stddev": 0.0006925609099808084,
+                "rounds": 40,
+                "median": 0.06571142699976917,
+                "iqr": 0.000800027997684083,
+                "q1": 0.06540013050107518,
+                "q3": 0.06620015849875927,
+                "iqr_outliers": 2,
+                "stddev_outliers": 12,
+                "outliers": "12;2",
+                "ld15iqr": 0.06500985300226603,
+                "hd15iqr": 0.06742585400206735,
+                "ops": 15.16986212291189,
+                "total": 2.6368070899989107,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_start[False-False]",
+            "fullname": "tests/performance/start_test.py::test_start[False-False]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": false
+            },
+            "param": "False-False",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 7.03300247550942e-06,
+                "max": 1.701200017123483e-05,
+                "mean": 8.703099683771143e-06,
+                "stddev": 1.968863768891647e-06,
+                "rounds": 40,
+                "median": 7.959999493323267e-06,
+                "iqr": 8.970000635599717e-07,
+                "q1": 7.728998753009364e-06,
+                "q3": 8.625998816569336e-06,
+                "iqr_outliers": 5,
+                "stddev_outliers": 4,
+                "outliers": "4;5",
+                "ld15iqr": 7.03300247550942e-06,
+                "hd15iqr": 1.0088999260915443e-05,
+                "ops": 114901.59096588558,
+                "total": 0.0003481239873508457,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_start[True-False]",
+            "fullname": "tests/performance/start_test.py::test_start[True-False]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": false
+            },
+            "param": "True-False",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 6.891998054925352e-06,
+                "max": 1.663200237089768e-05,
+                "mean": 8.398950012633576e-06,
+                "stddev": 1.690144846855839e-06,
+                "rounds": 40,
+                "median": 7.92500031820964e-06,
+                "iqr": 6.26499968348071e-07,
+                "q1": 7.678998372284696e-06,
+                "q3": 8.305498340632766e-06,
+                "iqr_outliers": 6,
+                "stddev_outliers": 4,
+                "outliers": "4;6",
+                "ld15iqr": 6.891998054925352e-06,
+                "hd15iqr": 9.6180010586977e-06,
+                "ops": 119062.50168125953,
+                "total": 0.0003359580005053431,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_start[False-True]",
+            "fullname": "tests/performance/start_test.py::test_start[False-True]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": true
+            },
+            "param": "False-True",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 7.624999852851033e-06,
+                "max": 1.4687997463624924e-05,
+                "mean": 8.509549934387905e-06,
+                "stddev": 1.1382199959654873e-06,
+                "rounds": 40,
+                "median": 8.205499398172833e-06,
+                "iqr": 8.320021152030677e-07,
+                "q1": 7.909999112598598e-06,
+                "q3": 8.742001227801666e-06,
+                "iqr_outliers": 1,
+                "stddev_outliers": 2,
+                "outliers": "2;1",
+                "ld15iqr": 7.624999852851033e-06,
+                "hd15iqr": 1.4687997463624924e-05,
+                "ops": 117515.02814019627,
+                "total": 0.0003403819973755162,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_start[True-True]",
+            "fullname": "tests/performance/start_test.py::test_start[True-True]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": true
+            },
+            "param": "True-True",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 7.143000402720645e-06,
+                "max": 1.646100281504914e-05,
+                "mean": 8.631350283394568e-06,
+                "stddev": 1.6502033366088343e-06,
+                "rounds": 40,
+                "median": 8.215001798816957e-06,
+                "iqr": 7.210019248304889e-07,
+                "q1": 7.994998668436892e-06,
+                "q3": 8.716000593267381e-06,
+                "iqr_outliers": 3,
+                "stddev_outliers": 3,
+                "outliers": "3;3",
+                "ld15iqr": 7.143000402720645e-06,
+                "hd15iqr": 1.0409999958937988e-05,
+                "ops": 115856.72776180235,
+                "total": 0.0003452540113357827,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_sync[False-False]",
+            "fullname": "tests/performance/sync_test.py::test_sync[False-False]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": false
+            },
+            "param": "False-False",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 1.264033602001291,
+                "max": 1.295977440997376,
+                "mean": 1.2771163709997382,
+                "stddev": 0.008043528802248975,
+                "rounds": 40,
+                "median": 1.277901102499527,
+                "iqr": 0.010539220500504598,
+                "q1": 1.2713730949999444,
+                "q3": 1.281912315500449,
+                "iqr_outliers": 0,
+                "stddev_outliers": 15,
+                "outliers": "15;0",
+                "ld15iqr": 1.264033602001291,
+                "hd15iqr": 1.295977440997376,
+                "ops": 0.7830140014705089,
+                "total": 51.084654839989525,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_sync[True-False]",
+            "fullname": "tests/performance/sync_test.py::test_sync[True-False]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": false
+            },
+            "param": "True-False",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 1.236445045000437,
+                "max": 1.2679525390012714,
+                "mean": 1.2529084550249536,
+                "stddev": 0.0068226687538219056,
+                "rounds": 40,
+                "median": 1.2520332465010142,
+                "iqr": 0.00803059749705426,
+                "q1": 1.2479870675015263,
+                "q3": 1.2560176649985806,
+                "iqr_outliers": 0,
+                "stddev_outliers": 13,
+                "outliers": "13;0",
+                "ld15iqr": 1.236445045000437,
+                "hd15iqr": 1.2679525390012714,
+                "ops": 0.7981429097947013,
+                "total": 50.11633820099814,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_sync[False-True]",
+            "fullname": "tests/performance/sync_test.py::test_sync[False-True]",
+            "params": {
+                "cache_enabled": false,
+                "enable_menu": true
+            },
+            "param": "False-True",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 1.3638197100008256,
+                "max": 1.4078901400025643,
+                "mean": 1.3806590683752802,
+                "stddev": 0.010746424085742905,
+                "rounds": 40,
+                "median": 1.3760705750009947,
+                "iqr": 0.014028173502083519,
+                "q1": 1.373933634498826,
+                "q3": 1.3879618080009095,
+                "iqr_outliers": 0,
+                "stddev_outliers": 12,
+                "outliers": "12;0",
+                "ld15iqr": 1.3638197100008256,
+                "hd15iqr": 1.4078901400025643,
+                "ops": 0.7242917697102234,
+                "total": 55.22636273501121,
+                "iterations": 1
+            }
+        },
+        {
+            "group": null,
+            "name": "test_sync[True-True]",
+            "fullname": "tests/performance/sync_test.py::test_sync[True-True]",
+            "params": {
+                "cache_enabled": true,
+                "enable_menu": true
+            },
+            "param": "True-True",
+            "extra_info": {},
+            "options": {
+                "disable_gc": false,
+                "timer": "perf_counter",
+                "min_rounds": 5,
+                "max_time": 1.0,
+                "min_time": 5e-06,
+                "warmup": false
+            },
+            "stats": {
+                "min": 1.3197933099982038,
+                "max": 1.363845541000046,
+                "mean": 1.3341522281498328,
+                "stddev": 0.009518866680683389,
+                "rounds": 40,
+                "median": 1.33192920899819,
+                "iqr": 0.010112044497873285,
+                "q1": 1.3279666915004782,
+                "q3": 1.3380787359983515,
+                "iqr_outliers": 1,
+                "stddev_outliers": 15,
+                "outliers": "15;1",
+                "ld15iqr": 1.3197933099982038,
+                "hd15iqr": 1.363845541000046,
+                "ops": 0.7495396543966903,
+                "total": 53.36608912599331,
+                "iterations": 1
+            }
+        }
+    ],
+    "datetime": "2024-05-28T20:10:10.940761",
+    "version": "4.0.0"
+}
\ No newline at end of file
diff --git a/changelog.d/3671.added b/changelog.d/3671.added
new file mode 100644
index 0000000000..36c3b65801
--- /dev/null
+++ b/changelog.d/3671.added
@@ -0,0 +1,1 @@
+Adds indexing of collections by non-key properties
diff --git a/cobbler/cobbler_collections/collection.py b/cobbler/cobbler_collections/collection.py
index 4e05a42143..eac4c5f6a7 100644
--- a/cobbler/cobbler_collections/collection.py
+++ b/cobbler/cobbler_collections/collection.py
@@ -67,6 +67,10 @@ def __init__(self, collection_mgr: "CollectionManager"):
         self.lock: Lock = Lock()
         self._inmemory: bool = not self.api.settings().lazy_start
         self._deserialize_running: bool = False
+        # Secondary indexes for the collection.
+        # Only unique indexes on string values are supported.
+        # Empty strings are not indexed.
+        self.indexes: Dict[str, Dict[str, str]] = {"uid": {}}
         self.logger = logging.getLogger()
 
     def __iter__(self) -> Iterator[ITEM]:
@@ -220,9 +224,13 @@ def find(
             self._deserialize()
 
         with self.lock:
-            for obj in self:
-                if obj.inmemory and obj.find_match(kargs, no_errors=no_errors):
-                    matches.append(obj)
+            result = self.find_by_indexes(kargs)
+            if result is not None:
+                matches = result
+            if len(kargs) > 0:
+                for obj in self:
+                    if obj.inmemory and obj.find_match(kargs, no_errors=no_errors):
+                        matches.append(obj)
 
         if not return_list:
             if len(matches) == 0:
@@ -307,14 +315,6 @@ def copy(self, ref: ITEM, newname: str):
         copied_item: ITEM = ref.make_clone()
         copied_item.ctime = time.time()
         copied_item.name = newname
-        if copied_item.COLLECTION_TYPE == "system":  # type: ignore
-            # this should only happen for systems
-            for interface in copied_item.interfaces:  # type: ignore
-                # clear all these out to avoid DHCP/DNS conflicts
-                copied_item.interfaces[interface].dns_name = ""  # type: ignore
-                copied_item.interfaces[interface].mac_address = ""  # type: ignore
-                copied_item.interfaces[interface].ip_address = ""  # type: ignore
-
         self.add(
             copied_item,
             save=True,
@@ -348,12 +348,14 @@ def rename(
         with self.lock:
             # Delete the old item
             self.collection_mgr.serialize_delete_one_item(ref)
+            self.remove_from_indexes(ref)
             self.listing.pop(oldname)
             # Change the name of the object
             ref.name = newname
             # Save just this item
             self.collection_mgr.serialize_one_item(ref)
             self.listing[newname] = ref
+            self.add_to_indexes(ref)
 
         for dep_type in item_base.Item.TYPE_DEPENDENCIES[ref.COLLECTION_TYPE]:
             items = self.api.find_items(
@@ -485,6 +487,7 @@ def add(
 
         with self.lock:
             self.listing[ref.name] = ref
+            self.add_to_indexes(ref)
 
         # perform filesystem operations
         if save:
@@ -496,7 +499,6 @@ def add(
                     # we don't need openvz containers to be network bootable
                     if ref.virt_type == enums.VirtType.OPENVZ:
                         ref.netboot_enabled = False
-                    self.lite_sync.add_single_system(ref)
                     self.api.sync_systems(systems=[ref.name])
                 elif isinstance(ref, profile.Profile):
                     # we don't need openvz containers to be network bootable
@@ -556,6 +558,61 @@ def _deserialize(self) -> None:
         self.inmemory = True
         self.deserialize_running = False
 
+    def add_to_indexes(self, ref: ITEM) -> None:
+        """
+        Add indexes for the object.
+
+        :param ref: The reference to the object whose indexes are updated.
+        """
+        indx_dict = self.indexes["uid"]
+        indx_dict[ref.uid] = ref.name
+
+    def remove_from_indexes(self, ref: ITEM) -> None:
+        """
+        Remove index keys for the object.
+
+        :param ref: The reference to the object whose index keys are removed.
+        """
+        indx_dict = self.indexes["uid"]
+        indx_dict.pop(ref.uid, None)
+
+    def find_by_indexes(self, kargs: Dict[str, Any]) -> Optional[List[ITEM]]:
+        """
+        Searching for items in the collection by indexes.
+
+        :param kwargs: The dict to match for the items.
+        """
+        result: Optional[List[ITEM]] = None
+        found_keys: List[str] = []
+
+        for key, value in kargs.items():
+            # fnmatch and "~" are not supported
+            if (
+                key not in self.indexes
+                or value[:1] == "~"
+                or "?" in value
+                or "*" in value
+                or "[" in value
+            ):
+                continue
+
+            indx_dict = self.indexes[key]
+            if value in indx_dict:
+                if result is None:
+                    result = []
+                obj = self.listing.get(indx_dict[value])
+                if obj is not None:
+                    result.append(obj)
+                else:
+                    self.logger.error(
+                        'Internal error. The "%s" index is corrupted.', key
+                    )
+            found_keys.append(key)
+
+        for key in found_keys:
+            kargs.pop(key)
+        return result
+
     def to_string(self) -> str:
         """
         Creates a printable representation of the collection suitable for reading by humans or parsing from scripts.
diff --git a/cobbler/cobbler_collections/distros.py b/cobbler/cobbler_collections/distros.py
index 040c4fc75f..462a18d5fe 100644
--- a/cobbler/cobbler_collections/distros.py
+++ b/cobbler/cobbler_collections/distros.py
@@ -93,6 +93,7 @@ def remove(
                 lite_sync = self.api.get_sync()
                 lite_sync.remove_single_distro(obj)
         with self.lock:
+            self.remove_from_indexes(obj)
             del self.listing[name]
 
         self.collection_mgr.serialize_delete(self, obj)
diff --git a/cobbler/cobbler_collections/images.py b/cobbler/cobbler_collections/images.py
index eaa73d79a1..e7422ed283 100644
--- a/cobbler/cobbler_collections/images.py
+++ b/cobbler/cobbler_collections/images.py
@@ -85,6 +85,7 @@ def remove(
                 lite_sync.remove_single_image(obj)
 
         with self.lock:
+            self.remove_from_indexes(obj)
             del self.listing[name]
         self.collection_mgr.serialize_delete(self, obj)
 
diff --git a/cobbler/cobbler_collections/menus.py b/cobbler/cobbler_collections/menus.py
index 520d0a899a..8788aa0aca 100644
--- a/cobbler/cobbler_collections/menus.py
+++ b/cobbler/cobbler_collections/menus.py
@@ -89,6 +89,7 @@ def remove(
                     self.api, obj, "/var/lib/cobbler/triggers/delete/menu/pre/*", []
                 )
         with self.lock:
+            self.remove_from_indexes(obj)
             del self.listing[name]
         self.collection_mgr.serialize_delete(self, obj)
         if with_delete:
diff --git a/cobbler/cobbler_collections/profiles.py b/cobbler/cobbler_collections/profiles.py
index 25c04c4ea3..aa9345a0c3 100644
--- a/cobbler/cobbler_collections/profiles.py
+++ b/cobbler/cobbler_collections/profiles.py
@@ -82,6 +82,7 @@ def remove(
                 )
 
         with self.lock:
+            self.remove_from_indexes(obj)
             del self.listing[name]
         self.collection_mgr.serialize_delete(self, obj)
         if with_delete:
diff --git a/cobbler/cobbler_collections/repos.py b/cobbler/cobbler_collections/repos.py
index ff61156687..a7494540ab 100644
--- a/cobbler/cobbler_collections/repos.py
+++ b/cobbler/cobbler_collections/repos.py
@@ -75,6 +75,7 @@ def remove(
                 )
 
         with self.lock:
+            self.remove_from_indexes(obj)
             del self.listing[name]
         self.collection_mgr.serialize_delete(self, obj)
 
diff --git a/cobbler/cobbler_collections/systems.py b/cobbler/cobbler_collections/systems.py
index a174786b53..56972bdf0e 100644
--- a/cobbler/cobbler_collections/systems.py
+++ b/cobbler/cobbler_collections/systems.py
@@ -6,7 +6,7 @@
 # SPDX-FileCopyrightText: Copyright 2008-2009, Red Hat, Inc and Others
 # SPDX-FileCopyrightText: Michael DeHaan <michael.dehaan AT gmail>
 
-from typing import TYPE_CHECKING, Any, Dict
+from typing import TYPE_CHECKING, Any, Dict, Set
 
 from cobbler import utils
 from cobbler.cexceptions import CX
@@ -15,6 +15,7 @@
 
 if TYPE_CHECKING:
     from cobbler.api import CobblerAPI
+    from cobbler.cobbler_collections.manager import CollectionManager
 
 
 class Systems(collection.Collection[system.System]):
@@ -23,6 +24,28 @@ class Systems(collection.Collection[system.System]):
     they belong to.
     """
 
+    def __init__(self, collection_mgr: "CollectionManager"):
+        """
+        Constructor.
+
+        :param collection_mgr: The collection manager to resolve all information with.
+        """
+        super().__init__(collection_mgr)
+        self.indexes: Dict[str, Dict[str, str]] = {
+            "uid": {},
+            "mac_address": {},
+            "ip_address": {},
+            "ipv6_address": {},
+            "dns_name": {},
+        }
+        settings = self.api.settings()
+        self.disabled_indexes: Dict[str, bool] = {
+            "mac_address": settings.allow_duplicate_macs,
+            "ip_address": settings.allow_duplicate_ips,
+            "ipv6_address": settings.allow_duplicate_ips,
+            "dns_name": settings.allow_duplicate_hostnames,
+        }
+
     @staticmethod
     def collection_type() -> str:
         return "system"
@@ -35,7 +58,7 @@ def factory_produce(
         self, api: "CobblerAPI", seed_data: Dict[str, Any]
     ) -> system.System:
         """
-        Return a Distro forged from seed_data
+        Return a System forged from seed_data
 
         :param api: Parameter is skipped.
         :param seed_data: Data to seed the object with.
@@ -75,6 +98,7 @@ def remove(
                 lite_sync.remove_single_system(obj)
 
         with self.lock:
+            self.remove_from_indexes(obj)
             del self.listing[name]
         self.collection_mgr.serialize_delete(self, obj)
         if with_delete:
@@ -85,3 +109,130 @@ def remove(
                 utils.run_triggers(
                     self.api, obj, "/var/lib/cobbler/triggers/change/*", []
                 )
+
+    def add_to_indexes(self, ref: system.System) -> None:
+        """
+        Add indexes for the system.
+
+        :param ref: The reference to the system whose indexes are updated.
+        """
+        super().add_to_indexes(ref)
+        if not ref.inmemory:
+            return
+
+        for indx_key, indx_val in self.indexes.items():
+            if indx_key == "uid" or self.disabled_indexes[indx_key]:
+                continue
+
+            for interface in ref.interfaces.values():
+                if hasattr(interface, indx_key):
+                    secondary_key = getattr(interface, indx_key)
+                    if secondary_key is not None and secondary_key != "":
+                        indx_val[secondary_key] = ref.name
+
+    def update_interface_index_value(
+        self,
+        interface: system.NetworkInterface,
+        attribute_name: str,
+        old_value: str,
+        new_value: str,
+    ) -> None:
+        if (
+            interface.system_name in self.listing
+            and not self.disabled_indexes[attribute_name]
+            and interface in self.listing[interface.system_name].interfaces.values()
+        ):
+            indx_dict = self.indexes[attribute_name]
+            with self.lock:
+                if (
+                    old_value != ""
+                    and old_value in indx_dict
+                    and indx_dict[old_value] == interface.system_name
+                ):
+                    del indx_dict[old_value]
+                if new_value != "":
+                    indx_dict[new_value] = interface.system_name
+
+    def update_interfaces_indexes(
+        self, ref: system.System, new_ifaces: Dict[str, system.NetworkInterface]
+    ) -> None:
+        """
+        Update interfaces indexes for the system.
+
+        :param ref: The reference to the system whose interfaces indexes are updated.
+        :param new_ifaces: The new interfaces.
+        """
+        if ref.name not in self.listing:
+            return
+
+        for indx_key, indx_val in self.indexes.items():
+            if indx_key == "uid" or self.disabled_indexes[indx_key]:
+                continue
+
+            old_ifaces = ref.interfaces
+            old_values: Set[str] = {
+                getattr(x, indx_key)
+                for x in old_ifaces.values()
+                if hasattr(x, indx_key) and getattr(x, indx_key) != ""
+            }
+            new_values: Set[str] = {
+                getattr(x, indx_key)
+                for x in new_ifaces.values()
+                if hasattr(x, indx_key) and getattr(x, indx_key) != ""
+            }
+
+            with self.lock:
+                for value in old_values - new_values:
+                    del indx_val[value]
+                for value in new_values - old_values:
+                    indx_val[value] = ref.name
+
+    def update_interface_indexes(
+        self, ref: system.System, iface_name: str, new_iface: system.NetworkInterface
+    ) -> None:
+        """
+        Update interface indexes for the system.
+
+        :param ref: The reference to the system whose interfaces indexes are updated.
+        :param iface_name: The new interface name.
+        :param new_iface: The new interface.
+        """
+        self.update_interfaces_indexes(
+            ref, {**ref.interfaces, **{iface_name: new_iface}}
+        )
+
+    def remove_from_indexes(self, ref: system.System) -> None:
+        """
+        Remove index keys for the system.
+
+        :param ref: The reference to the system whose index keys are removed.
+        """
+        if not ref.inmemory:
+            return
+
+        super().remove_from_indexes(ref)
+        for indx_key, indx_val in self.indexes.items():
+            if indx_key == "uid" or self.disabled_indexes[indx_key]:
+                continue
+
+            for interface in ref.interfaces.values():
+                if hasattr(interface, indx_key):
+                    indx_val.pop(getattr(interface, indx_key), None)
+
+    def remove_interface_from_indexes(self, ref: system.System, name: str) -> None:
+        """
+        Remove index keys for the system interface.
+
+        :param ref: The reference to the system whose index keys are removed.
+        :param name: The reference to the system whose index keys are removed.
+        """
+        if not ref.inmemory or name not in ref.interfaces:
+            return
+
+        interface = ref.interfaces[name]
+        with self.lock:
+            for indx_key, indx_val in self.indexes.items():
+                if indx_key == "uid" or self.disabled_indexes[indx_key]:
+                    continue
+                if hasattr(interface, indx_key):
+                    indx_val.pop(getattr(interface, indx_key), None)
diff --git a/cobbler/items/item.py b/cobbler/items/item.py
index 05e35da9e1..f6f3770828 100644
--- a/cobbler/items/item.py
+++ b/cobbler/items/item.py
@@ -521,15 +521,14 @@ def uid(self, uid: str) -> None:
         :param uid: The new uid.
         """
         if self._uid != uid and self.COLLECTION_TYPE != Item.COLLECTION_TYPE:
-            name = self.name.lower()
             collection = self.api.get_items(self.COLLECTION_TYPE)
             with collection.lock:
-                if collection.get(name) is not None:
-                    # Changing the hash of an object requires special handling.
-                    collection.listing.pop(name)
-                    self._uid = uid
-                    collection.listing[name] = self  # type: ignore
-                    return
+                item = collection.get(self.name)
+                if item is not None and item.uid == self._uid:
+                    # Update uid index
+                    indx_dict = collection.indexes["uid"]
+                    del indx_dict[self._uid]
+                    indx_dict[uid] = self.name
         self._uid = uid
 
     @property
diff --git a/cobbler/items/system.py b/cobbler/items/system.py
index 80d2350fc4..9c2557b476 100644
--- a/cobbler/items/system.py
+++ b/cobbler/items/system.py
@@ -268,6 +268,7 @@
         * ``monit_enabled``: bool
 
 """
+
 # SPDX-License-Identifier: GPL-2.0-or-later
 # SPDX-FileCopyrightText: Copyright 2006-2008, Red Hat, Inc and Others
 # SPDX-FileCopyrightText: Michael DeHaan <michael.dehaan AT gmail>
@@ -293,7 +294,9 @@ class NetworkInterface:
     A subobject of a Cobbler System which represents the network interfaces
     """
 
-    def __init__(self, api: "CobblerAPI", *args: Any, **kwargs: Any) -> None:
+    def __init__(
+        self, api: "CobblerAPI", system_name: str, *args: Any, **kwargs: Any
+    ) -> None:
         """
         Constructor.
 
@@ -324,10 +327,23 @@ def __init__(self, api: "CobblerAPI", *args: Any, **kwargs: Any) -> None:
         self._static = False
         self._static_routes: List[str] = []
         self._virt_bridge = enums.VALUE_INHERITED
+        self.__system_name = system_name
 
         if len(kwargs) > 0:
             self.from_dict(kwargs)
 
+    def __hash__(self):
+        """
+        Hash table for NetworkInterfaces.
+        Requires special handling if the uid value changes and the Item
+        is present in set, frozenset, and dict types.
+
+        :return: hash(uid).
+        """
+        return hash(
+            (self._mac_address, self._ip_address, self._dns_name, self._ipv6_address)
+        )
+
     def from_dict(self, dictionary: Dict[str, Any]):
         """
         Initializes the object with attributes from the dictionary.
@@ -519,9 +535,11 @@ def dns_name(self, dns_name: str):
         :param dns_name: DNS Name of the system
         :raises ValueError: In case the DNS name is already existing inside Cobbler
         """
+        if self._dns_name == dns_name:
+            return
         dns_name = validate.hostname(dns_name)
         if dns_name != "" and not self.__api.settings().allow_duplicate_hostnames:
-            matched = self.__api.find_system(dns_name=dns_name)
+            matched = self.__api.find_system(return_list=True, dns_name=dns_name)
             if matched is None:
                 matched = []
             if not isinstance(matched, list):  # type: ignore
@@ -532,6 +550,9 @@ def dns_name(self, dns_name: str):
                 raise ValueError(
                     f'DNS name duplicate found "{dns_name}". Object with the conflict has the name "{match.name}"'
                 )
+        self.__api.systems().update_interface_index_value(
+            self, "dns_name", self._dns_name, dns_name
+        )
         self._dns_name = dns_name
 
     @property
@@ -552,6 +573,8 @@ def ip_address(self, address: str):
         :param address: IP address
         :raises ValueError: In case the IP address is already existing inside Cobbler.
         """
+        if self._ip_address == address:
+            return
         address = validate.ipv4_address(address)
         if address != "" and not self.__api.settings().allow_duplicate_ips:
             matched = self.__api.find_system(return_list=True, ip_address=address)
@@ -567,6 +590,9 @@ def ip_address(self, address: str):
                 raise ValueError(
                     f'IP address duplicate found "{address}". Object with the conflict has the name "{match.name}"'
                 )
+        self.__api.systems().update_interface_index_value(
+            self, "ip_address", self._ip_address, address
+        )
         self._ip_address = address
 
     @property
@@ -587,12 +613,14 @@ def mac_address(self, address: str):
         :param address: MAC address
         :raises CX: In case there a random mac can't be computed
         """
+        if self._mac_address == address:
+            return
         address = validate.mac_address(address)
         if address == "random":
             # FIXME: Pass virt_type of system
             address = utils.get_random_mac(self.__api)
         if address != "" and not self.__api.settings().allow_duplicate_macs:
-            matched = self.__api.find_system(mac_address=address)
+            matched = self.__api.find_system(return_list=True, mac_address=address)
             if matched is None:
                 matched = []
             if not isinstance(matched, list):
@@ -605,6 +633,9 @@ def mac_address(self, address: str):
                 raise ValueError(
                     f'MAC address duplicate found "{address}". Object with the conflict has the name "{match.name}"'
                 )
+        self.__api.systems().update_interface_index_value(
+            self, "mac_address", self._mac_address, address
+        )
         self._mac_address = address
 
     @property
@@ -804,9 +835,11 @@ def ipv6_address(self, address: str):
         :param address: IP address
         :raises ValueError: IN case the IP is duplicated
         """
+        if self._ipv6_address == address:
+            return
         address = validate.ipv6_address(address)
         if address != "" and not self.__api.settings().allow_duplicate_ips:
-            matched = self.__api.find_system(ipv6_address=address)
+            matched = self.__api.find_system(return_list=True, ipv6_address=address)
             if matched is None:
                 matched = []
             if not isinstance(matched, list):
@@ -820,6 +853,9 @@ def ipv6_address(self, address: str):
                     f'IPv6 address duplicate found "{address}". Object with the conflict has the name'
                     f'"{match.name}"'
                 )
+        self.__api.systems().update_interface_index_value(
+            self, "ipv6_address", self._ipv6_address, address
+        )
         self._ipv6_address = address
 
     @property
@@ -991,6 +1027,25 @@ def connected_mode(self, truthiness: bool):
             ) from error
         self._connected_mode = truthiness
 
+    @property
+    def system_name(self) -> str:
+        """
+        system_name property.
+
+        :getter: Returns the value for ``system_name``.
+        :setter: Sets the value for the property ``system_name``.
+        """
+        return self.__system_name
+
+    @system_name.setter
+    def system_name(self, system_name: str):
+        """
+        Setter for the system_name of the NetworkInterface class.
+
+        :param system_name: The new system_name.
+        """
+        self.__system_name = system_name
+
     def modify_interface(self, _dict: Dict[str, Any]):
         """
         Modify the interface
@@ -1135,6 +1190,17 @@ def __getattr__(self, name: str) -> Any:
     def make_clone(self):
         _dict = copy.deepcopy(self.to_dict())
         _dict.pop("uid", None)
+        collection = self.api.systems()
+        # clear all these out to avoid DHCP/DNS conflicts
+        for interface in _dict["interfaces"].values():
+            if not collection.disabled_indexes["mac_address"]:
+                interface.pop("mac_address", None)
+            if not collection.disabled_indexes["ip_address"]:
+                interface.pop("ip_address", None)
+            if not collection.disabled_indexes["ipv6_address"]:
+                interface.pop("ipv6_address", None)
+            if not collection.disabled_indexes["dns_name"]:
+                interface.pop("dns_name", None)
         return System(self.api, **_dict)
 
     def check_if_valid(self):
@@ -1154,6 +1220,17 @@ def check_if_valid(self):
                     f"Error with system {self.name} - profile or image is required"
                 )
 
+    @Item.name.setter
+    def name(self, name: str) -> None:
+        """
+        The systems name.
+
+        :param name: system name string
+        """
+        Item.name.fset(self, name)
+        for interface in self.interfaces.values():
+            interface.system_name = name
+
     #
     # specific methods for item.System
     #
@@ -1179,13 +1256,18 @@ def interfaces(self, value: Dict[str, Any]):
         if not isinstance(value, dict):  # type: ignore
             raise TypeError("interfaces must be of type dict")
         dict_values = list(value.values())
+        collection = self.api.systems()
         if all(isinstance(x, NetworkInterface) for x in dict_values):
+            for network_iface in value.values():
+                network_iface.system_name = self.name
+            collection.update_interfaces_indexes(self, value)
             self._interfaces = value
             return
         if all(isinstance(x, dict) for x in dict_values):
             for key in value:
-                network_iface = NetworkInterface(self.api)
+                network_iface = NetworkInterface(self.api, self.name)
                 network_iface.from_dict(value[key])
+                collection.update_interface_indexes(self, key, network_iface)
                 self._interfaces[key] = network_iface
             return
         raise ValueError(
@@ -1209,14 +1291,17 @@ def delete_interface(self, name: Union[str, Dict[Any, Any]]) -> None:
 
         :raises TypeError: If the name of the interface is not of type str or dict.
         """
+        collection = self.api.systems()
         if isinstance(name, str):
             if not name:
                 return
             if name in self.interfaces:
+                collection.remove_interface_from_indexes(self, name)
                 self.interfaces.pop(name)
                 return
         if isinstance(name, dict):
             interface_name = name.get("interface", "")
+            collection.remove_interface_from_indexes(self, interface_name)
             self.interfaces.pop(interface_name)
             return
         raise TypeError("The name of the interface must be of type str or dict")
@@ -1543,7 +1628,7 @@ def __create_interface(self, interface: str):
 
         :param interface: The name of the interface
         """
-        self.interfaces[interface] = NetworkInterface(self.api)
+        self.interfaces[interface] = NetworkInterface(self.api, self.name)
 
     def __get_interface(
         self, interface_name: Optional[str] = "default"
diff --git a/cobbler/remote.py b/cobbler/remote.py
index 92546a894c..32268432e9 100644
--- a/cobbler/remote.py
+++ b/cobbler/remote.py
@@ -2246,7 +2246,7 @@ def __interface_edits(
         interface = system_to_edit.interfaces.get(interface_name)
         if interface is None:
             # If the interface is not existing, create a new one.
-            interface = system.NetworkInterface(self.api)
+            interface = system.NetworkInterface(self.api, system_to_edit.name)
         for attribute_key in attributes:
             if self.__is_interface_field(attribute_key):
                 if hasattr(interface, attribute_key):


Test patch:
diff --git a/.github/workflows/performance_testing_automated.yml b/.github/workflows/performance_testing_automated.yml
index 30ceb2765d..c17262cbf0 100644
--- a/.github/workflows/performance_testing_automated.yml
+++ b/.github/workflows/performance_testing_automated.yml
@@ -8,12 +8,19 @@ on:
 
 jobs:
   run_performance_tests:
-    name: Run Performance Tests
-    runs-on: ubuntu-20.04
+    runs-on: ubuntu-latest
+    name: "Performance-Tests - ${{ matrix.test }}"
+    strategy:
+      fail-fast: false
+      matrix:
+        test: [deserialize, get_autoinstall, item_add, item_copy, item_edit, item_remove, item_rename, make_pxe_menu, start, sync]
     steps:
       - uses: actions/checkout@v4
       - name: Pull Docker Test Container
         run: docker pull registry.opensuse.org/systemsmanagement/cobbler/github-ci/containers/cobbler-test-github:main
+      - name: Replace number of rounds in the test setup class
+        # The number has to be equal to the number of rounds in the checked in benchmark "master" file.
+        run: sed -i '/[[:space:]]\{4\}test_rounds = 1/s/.$/50/g' tests/performance/__init__.py
       - name: Run previously built Docker Container
         run: docker run --privileged -t -d -v $PWD:/code --name cobbler registry.opensuse.org/systemsmanagement/cobbler/github-ci/containers/cobbler-test-github:main
       - name: Trust the git repository inside the container
@@ -27,6 +34,13 @@ jobs:
       - name: Run the Performance Tests inside the Docker Container
         shell: 'script -q -e -c "bash {0}"'
         run: |
-          docker exec -u 0 -it cobbler bash -c "pytest --benchmark-only --benchmark-autosave tests/performance"
+          docker exec -u 0 -it cobbler bash -c "pytest --benchmark-only --benchmark-autosave --benchmark-compare="0001" --benchmark-group-by=name --benchmark-compare-fail="mean:10%" tests/performance/${{ matrix.test }}_test.py"
       - name: Stop and remove the container
         run: docker stop cobbler && docker rm cobbler
+      # https://github.com/actions/upload-artifact
+      - name: Upload benchmark report to GH artifacts
+        uses: actions/upload-artifact@v4
+        with:
+          name: benchmark-report-pr-${{ matrix.test }}
+          path: .benchmarks/
+          if-no-files-found: error
diff --git a/tests/cobbler_collections/distro_collection_test.py b/tests/cobbler_collections/distro_collection_test.py
index 1b9c92361d..5c4394cb36 100644
--- a/tests/cobbler_collections/distro_collection_test.py
+++ b/tests/cobbler_collections/distro_collection_test.py
@@ -46,10 +46,12 @@ def test_get(
 
     # Act
     item = distro_collection.get(name)
+    fake_item = distro_collection.get("fake_name")
 
     # Assert
     assert isinstance(item, distro.Distro)
     assert item.name == name
+    assert fake_item is None
 
 
 def test_find(
@@ -105,6 +107,7 @@ def test_from_list(
 
     # Assert
     assert len(distro_collection.listing) == 1
+    assert len(distro_collection.indexes["uid"]) == 1
 
 
 def test_copy(
@@ -124,13 +127,17 @@ def test_copy(
     distro_collection.add(item1)
 
     # Act
-    new_item_name = "test_copy_successful"
+    new_item_name = "test_copy_new"
     distro_collection.copy(item1, new_item_name)
+    item2 = distro_collection.find(new_item_name, False)
 
     # Assert
     assert len(distro_collection.listing) == 2
     assert name in distro_collection.listing
     assert new_item_name in distro_collection.listing
+    assert len(distro_collection.indexes["uid"]) == 2
+    assert (distro_collection.indexes["uid"])[item1.uid] == name
+    assert (distro_collection.indexes["uid"])[item2.uid] == new_item_name
 
 
 @pytest.mark.parametrize(
@@ -156,6 +163,7 @@ def test_rename(
     # Assert
     assert input_new_name in distro_collection.listing
     assert distro_collection.listing[input_new_name].name == input_new_name
+    assert (distro_collection.indexes["uid"])[item1.uid] == input_new_name
 
 
 def test_collection_add(
@@ -172,6 +180,7 @@ def test_collection_add(
 
     # Assert
     assert name in distro_collection.listing
+    assert item1.uid in distro_collection.indexes["uid"]
 
 
 def test_duplicate_add(
@@ -200,12 +209,91 @@ def test_remove(
     item1 = create_distro(name)
     distro_collection.add(item1)
     assert name in distro_collection.listing
+    assert len(distro_collection.indexes["uid"]) == 1
+    assert (distro_collection.indexes["uid"])[item1.uid] == item1.name
 
     # Act
     distro_collection.remove(name)
 
     # Assert
     assert name not in distro_collection.listing
+    assert len(distro_collection.indexes["uid"]) == 0
+
+
+def test_indexes(
+    cobbler_api: CobblerAPI,
+    create_distro: Callable[[str], distro.Distro],
+    distro_collection: distros.Distros,
+):
+    # Arrange
+
+    # Assert
+    assert len(distro_collection.indexes) == 1
+    assert len(distro_collection.indexes["uid"]) == 0
+
+
+def test_add_to_indexes(
+    cobbler_api: CobblerAPI,
+    create_distro: Callable[[str], distro.Distro],
+    distro_collection: distros.Distros,
+):
+    # Arrange
+    name = "to_be_removed"
+    item1 = create_distro(name)
+    distro_collection.add(item1)
+
+    # Act
+    del (distro_collection.indexes["uid"])[item1.uid]
+    distro_collection.add_to_indexes(item1)
+
+    # Assert
+    assert item1.uid in distro_collection.indexes["uid"]
+
+
+def test_remove_from_indexes(
+    cobbler_api: CobblerAPI,
+    create_distro: Callable[[str], distro.Distro],
+    distro_collection: distros.Distros,
+):
+    # Arrange
+    name = "to_be_removed"
+    item1 = create_distro(name)
+    distro_collection.add(item1)
+
+    # Act
+    distro_collection.remove_from_indexes(item1)
+
+    # Assert
+    assert item1.uid not in distro_collection.indexes["uid"]
+
+
+def test_find_by_indexes(
+    cobbler_api: CobblerAPI,
+    create_distro: Callable[[str], distro.Distro],
+    distro_collection: distros.Distros,
+):
+    # Arrange
+    name = "to_be_removed"
+    item1 = create_distro(name)
+    distro_collection.add(item1)
+    kargs1 = {"uid": item1.uid}
+    kargs2 = {"uid": "fake_uid"}
+    kargs3 = {"fake_index": item1.uid}
+
+    # Act
+    result1 = distro_collection.find_by_indexes(kargs1)
+    result2 = distro_collection.find_by_indexes(kargs2)
+    result3 = distro_collection.find_by_indexes(kargs3)
+
+    # Assert
+    assert isinstance(result1, list)
+    assert len(result1) == 1
+    assert result1[0] == item1
+    assert len(kargs1) == 0
+    assert result2 is None
+    assert len(kargs2) == 0
+    assert result3 is None
+    assert len(kargs3) == 1
 
 
 @pytest.mark.skip("Method which is under test is broken!")
diff --git a/tests/cobbler_collections/system_collection_test.py b/tests/cobbler_collections/system_collection_test.py
new file mode 100644
index 0000000000..ddc8c29d55
--- /dev/null
+++ b/tests/cobbler_collections/system_collection_test.py
@@ -0,0 +1,774 @@
+"""
+TODO
+"""
+
+from typing import Callable
+
+import pytest
+
+from cobbler.api import CobblerAPI
+from cobbler.cexceptions import CX
+from cobbler.cobbler_collections import systems
+from cobbler.cobbler_collections.manager import CollectionManager
+from cobbler.items import distro, profile, system
+
+
+@pytest.fixture(name="system_collection")
+def fixture_system_collection(collection_mgr: CollectionManager):
+    """
+    Fixture to provide a concrete implementation (Systems) of a generic collection.
+    """
+    return systems.Systems(collection_mgr)
+
+
+def test_obj_create(collection_mgr: CollectionManager):
+    """
+    TODO
+    """
+    # Arrange & Act
+    test_system_collection = systems.Systems(collection_mgr)
+
+    # Assert
+    assert isinstance(test_system_collection, systems.Systems)
+
+
+def test_factory_produce(cobbler_api: CobblerAPI, system_collection: systems.Systems):
+    """
+    TODO
+    """
+    # Arrange & Act
+    result_system = system_collection.factory_produce(cobbler_api, {})
+
+    # Assert
+    assert isinstance(result_system, system.System)
+
+
+def test_get(
+    cobbler_api: CobblerAPI,
+    create_distro: Callable[[str], distro.Distro],
+    create_profile: Callable[[str], profile.Profile],
+    create_system: Callable[[str], system.System],
+):
+    """
+    TODO
+    """
+    # Arrange
+    name = "test_get"
+    distro1 = create_distro()
+    profile1 = create_profile(name)
+    system1 = create_system(name)
+    system_collection = cobbler_api.systems()
+
+    # Act
+    item = system_collection.get(name)
+    fake_item = system_collection.get("fake_name")
+
+    # Assert
+    assert item.name == name
+    assert fake_item is None
+
+
+def test_find(
+    cobbler_api: CobblerAPI,
+    create_distro: Callable[[str], distro.Distro],
+    create_profile: Callable[[str], profile.Profile],
+    create_system: Callable[[str], system.System],
+):
+    """
+    TODO
+    """
+    # Arrange
+    name = "test_find"
+    distro1 = create_distro()
+    profile1 = create_profile(name)
+    system1 = create_system(name)
+    system_collection = cobbler_api.systems()
+
+    # Act
+    result = system_collection.find(name, True, True)
+
+    # Assert
+    assert isinstance(result, list)
+    assert len(result) == 1
+    assert result[0].name == name
+
+
+def test_to_list(
+    cobbler_api: CobblerAPI,
+    create_distro: Callable[[str], distro.Distro],
+    create_profile: Callable[[str], profile.Profile],
+    create_system: Callable[[str], system.System],
+):
+    """
+    TODO
+    """
+    # Arrange
+    name = "test_to_list"
+    distro1 = create_distro()
+    profile1 = create_profile(name)
+    system1 = create_system(name)
+    system_collection = cobbler_api.systems()
+
+    # Act
+    result = system_collection.to_list()
+
+    # Assert
+    assert len(result) == 1
+    assert result[0].get("name") == name
+
+
+def test_from_list(
+    cobbler_api: CobblerAPI,
+    create_distro: Callable[[str], distro.Distro],
+    create_profile: Callable[[str], profile.Profile],
+):
+    """
+    TODO
+    """
+    # Arrange
+    name = "test_from_list"
+    distro1 = create_distro()
+    profile1 = create_profile(name)
+    system_collection = cobbler_api.systems()
+    item_list = [
+        {
+            "name": "test_from_list",
+            "profile": name,
+            "interfaces": {
+                "default": {
+                    "ip_address": "192.168.1.1",
+                    "ipv6_address": "::1",
+                    "dns_name": "example.org",
+                    "mac_address": "52:54:00:7d:81:f4",
+                }
+            },
+        }
+    ]
+
+    # Act
+    system_collection.from_list(item_list)
+
+    # Assert
+    assert len(system_collection.listing) == 1
+    for indx in system_collection.indexes.values():
+        assert len(indx) == 1
+
+
+def test_copy(
+    cobbler_api: CobblerAPI,
+    create_distro: Callable[[str], distro.Distro],
+    create_profile: Callable[[str], profile.Profile],
+    create_system: Callable[[str], system.System],
+):
+    """
+    TODO
+    """
+    # Arrange
+    name = "test_copy"
+    distro1 = create_distro()
+    profile1 = create_profile(name)
+    system1 = create_system(name)
+    system1.interfaces = {
+        "default": {
+            "ip_address": "192.168.1.1",
+            "ipv6_address": "::1",
+            "dns_name": "example.org",
+            "mac_address": "52:54:00:7d:81:f4",
+        }
+    }
+    system_collection = cobbler_api.systems()
+
+    # Act
+    test1 = {
+        x for y in system_collection.listing.values() for x in y.interfaces.values()
+    }
+    new_item_name = "test_copy_successful"
+    system_collection.copy(system1, new_item_name)
+    system2 = system_collection.find(new_item_name, False)
+
+    # Assert
+    assert len(system_collection.listing) == 2
+    assert name in system_collection.listing
+    assert new_item_name in system_collection.listing
+    for key, value in system_collection.indexes.items():
+        if key == "uid":
+            assert len(value) == 2
+            assert value[getattr(system1, key)] == name
+            assert value[getattr(system2, key)] == new_item_name
+        else:
+            assert len(value) == 1
+            assert value[getattr(system1.interfaces["default"], key)] == name
+
+
+@pytest.mark.parametrize(
+    "input_new_name",
+    [
+        ("to_be_renamed"),
+        ("UpperCase"),
+    ],
+)
+def test_rename(
+    cobbler_api: CobblerAPI,
+    create_distro: Callable[[str], distro.Distro],
+    create_profile: Callable[[str], profile.Profile],
+    create_system: Callable[[str], system.System],
+    input_new_name: str,
+):
+    """
+    TODO
+    """
+    # Arrange
+    name = "test_rename"
+    distro1 = create_distro()
+    profile1 = create_profile(name)
+    system1 = create_system(name)
+    system1.interfaces = {
+        "default": {
+            "ip_address": "192.168.1.1",
+            "ipv6_address": "::1",
+            "dns_name": "example.org",
+            "mac_address": "52:54:00:7d:81:f4",
+        }
+    }
+    system_collection = cobbler_api.systems()
+
+    # Act
+    system_collection.rename(system1, input_new_name)
+
+    # Assert
+    assert input_new_name in system_collection.listing
+    assert system_collection.listing[input_new_name].name == input_new_name
+    for interface in system1.interfaces.values():
+        assert interface.system_name == input_new_name
+    for key, value in system_collection.indexes.items():
+        if key == "uid":
+            assert value[getattr(system1, key)] == input_new_name
+        else:
+            assert value[getattr(system1.interfaces["default"], key)] == input_new_name
+
+
+def test_collection_add(
+    cobbler_api: CobblerAPI,
+    create_distro: Callable[[str], distro.Distro],
+    create_profile: Callable[[str], profile.Profile],
+    create_system: Callable[[str], system.System],
+):
+    """
+    TODO
+    """
+    # Arrange
+    name = "test_collection_add"
+    distro1 = create_distro()
+    profile1 = create_profile(name)
+    system1 = system.System(cobbler_api)
+    system1.name = name
+    system1.profile = profile1.name
+    system1.interfaces = {
+        "default": {
+            "ip_address": "192.168.1.1",
+            "ipv6_address": "::1",
+            "dns_name": "example.org",
+            "mac_address": "52:54:00:7d:81:f4",
+        }
+    }
+    system_collection = cobbler_api.systems()
+
+    # Act
+    system_collection.add(system1)
+
+    # Assert
+    assert name in system_collection.listing
+    assert system_collection.listing[name].name == name
+    for interface in system1.interfaces.values():
+        assert interface.system_name == name
+    for key, value in system_collection.indexes.items():
+        if key == "uid":
+            assert value[getattr(system1, key)] == name
+        else:
+            assert value[getattr(system1.interfaces["default"], key)] == name
+
+
+def test_duplicate_add(
+    cobbler_api: CobblerAPI,
+    create_distro: Callable[[str], distro.Distro],
+    create_profile: Callable[[str], profile.Profile],
+    create_system: Callable[[str], system.System],
+):
+    """
+    TODO
+    """
+    # Arrange
+    name = "test_duplicate_add"
+    distro1 = create_distro(name="duplicate_add")
+    profile1 = create_profile(distro1.name)
+    system1 = create_system(name)
+    system1.interfaces = {
+        "default": {
+            "ip_address": "192.168.1.1",
+            "ipv6_address": "::1",
+            "dns_name": "example.org",
+            "mac_address": "52:54:00:7d:81:f4",
+        }
+    }
+    system_collection = cobbler_api.systems()
+    system2 = system.System(cobbler_api)
+    system2.name = name
+    system2.profile = name
+
+    # Act & Assert
+    assert len(system_collection.indexes["uid"]) == 1
+    with pytest.raises(CX):
+        system_collection.add(system2, check_for_duplicate_names=True)
+    for key, value in system_collection.indexes.items():
+        assert len(system_collection.indexes[key]) == 1
+
+
+def test_remove(
+    cobbler_api: CobblerAPI,
+    create_distro: Callable[[str], distro.Distro],
+    create_profile: Callable[[str], profile.Profile],
+    create_system: Callable[[str], system.System],
+):
+    """
+    TODO
+    """
+    # Arrange
+    name = "test_remove"
+    distro1 = create_distro()
+    profile1 = create_profile(name)
+    system1 = create_system(name)
+    system1.interfaces = {
+        "default": {
+            "ip_address": "192.168.1.1",
+            "ipv6_address": "::1",
+            "dns_name": "example.org",
+            "mac_address": "52:54:00:7d:81:f4",
+        }
+    }
+    system_collection = cobbler_api.systems()
+    assert name in system_collection.listing
+
+    # Pre-Assert to validate if the index is in its correct state
+    for key, value in system_collection.indexes.items():
+        assert len(system_collection.indexes[key]) == 1
+
+    # Act
+    system_collection.remove(name)
+
+    # Assert
+    assert name not in system_collection.listing
+    for key, value in system_collection.indexes.items():
+        assert len(system_collection.indexes[key]) == 0
+
+
+def test_indexes(
+    cobbler_api: CobblerAPI,
+    create_system: Callable[[str], system.System],
+    system_collection: systems.Systems,
+):
+    """
+    TODO
+    """
+    # Arrange
+
+    # Assert
+    assert len(system_collection.indexes) == 5
+    assert len(system_collection.indexes["uid"]) == 0
+    assert len(system_collection.indexes["mac_address"]) == 0
+    assert len(system_collection.indexes["ip_address"]) == 0
+    assert len(system_collection.indexes["ipv6_address"]) == 0
+    assert len(system_collection.indexes["dns_name"]) == 0
+
+    assert len(system_collection.disabled_indexes) == 4
+    assert not system_collection.disabled_indexes["mac_address"]
+    assert not system_collection.disabled_indexes["ip_address"]
+    assert not system_collection.disabled_indexes["ipv6_address"]
+    assert not system_collection.disabled_indexes["dns_name"]
+
+
+def test_add_to_indexes(
+    cobbler_api: CobblerAPI,
+    create_distro: Callable[[str], distro.Distro],
+    create_profile: Callable[[str], profile.Profile],
+    create_system: Callable[[str], system.System],
+):
+    """
+    TODO
+    """
+    # Arrange
+    name = "test_add_to_indexes"
+    distro1 = create_distro()
+    profile1 = create_profile(name)
+    system1 = create_system(name)
+    system1.interfaces = {
+        "default": {
+            "ip_address": "192.168.1.1",
+            "ipv6_address": "::1",
+            "dns_name": "example.org",
+            "mac_address": "52:54:00:7d:81:f4",
+        }
+    }
+    system_collection = cobbler_api.systems()
+    for key, value in system_collection.indexes.items():
+        if key == "uid":
+            del value[getattr(system1, key)]
+        else:
+            del value[getattr(system1.interfaces["default"], key)]
+
+    # Act
+    system_collection.add_to_indexes(system1)
+
+    # Assert
+    for key, value in system_collection.indexes.items():
+        if key == "uid":
+            assert {getattr(system1, key): system1.name} == value
+        else:
+            assert {getattr(system1.interfaces["default"], key): system1.name} == value
+
+
+def test_update_interfaces_indexes(
+    cobbler_api: CobblerAPI,
+    create_distro: Callable[[str], distro.Distro],
+    create_profile: Callable[[str], profile.Profile],
+    create_system: Callable[[str], system.System],
+):
+    """
+    TODO
+    """
+    # Arrange
+    name = "test_update_interfaces_indexes"
+    distro1 = create_distro()
+    profile1 = create_profile(name)
+    system1 = create_system(name)
+    system1.interfaces = {
+        "test1": {
+            "ip_address": "192.168.1.1",
+            "ipv6_address": "::1",
+            "dns_name": "test1.example.org",
+            "mac_address": "52:54:00:7d:81:f4",
+        },
+        "test2": {
+            "ip_address": "192.168.1.2",
+            "ipv6_address": "::2",
+            "dns_name": "test2.example.org",
+            "mac_address": "52:54:00:7d:81:f5",
+        },
+    }
+    system_collection = cobbler_api.systems()
+    interface1 = system.NetworkInterface(cobbler_api, system1.name)
+    interface1.from_dict(
+        {
+            "ip_address": "192.168.1.3",
+            "ipv6_address": "::3",
+            "dns_name": "",
+            "mac_address": "52:54:00:7d:81:f6",
+        }
+    )
+    interface2 = system.NetworkInterface(cobbler_api, system1.name)
+    interface2.from_dict(
+        {
+            "ip_address": "192.168.1.4",
+            "ipv6_address": "",
+            "dns_name": "test4.example.org",
+            "mac_address": "52:54:00:7d:81:f7",
+        }
+    )
+    new_interfaces = {
+        "test1": interface1,
+        "test2": interface2,
+        "test3": system1.interfaces["test2"],
+    }
+
+    # Act
+    system_collection.update_interfaces_indexes(system1, new_interfaces)
+
+    # Assert
+    assert set(system_collection.indexes["ip_address"].keys()) == {
+        "192.168.1.2",
+        "192.168.1.3",
+        "192.168.1.4",
+    }
+    assert set(system_collection.indexes["ipv6_address"].keys()) == {"::2", "::3"}
+    assert set(system_collection.indexes["dns_name"].keys()) == {
+        "test2.example.org",
+        "test4.example.org",
+    }
+    assert set(system_collection.indexes["mac_address"].keys()) == {
+        "52:54:00:7d:81:f5",
+        "52:54:00:7d:81:f6",
+        "52:54:00:7d:81:f7",
+    }
+
+    # Cleanup
+    for indx_key, indx_val in system_collection.indexes.items():
+        if indx_key == "uid":
+            continue
+        system_collection.indexes[indx_key] = {}
+
+
+def test_update_interface_indexes(
+    cobbler_api: CobblerAPI,
+    create_distro: Callable[[str], distro.Distro],
+    create_profile: Callable[[str], profile.Profile],
+    create_system: Callable[[str], system.System],
+):
+    """
+    TODO
+    """
+    # Arrange
+    name = "test_update_interface_indexes"
+    distro1 = create_distro()
+    profile1 = create_profile(name)
+    system1 = create_system(name)
+    system1.interfaces = {
+        "test1": {
+            "ip_address": "192.168.1.1",
+            "ipv6_address": "::1",
+            "dns_name": "test1.example.org",
+            "mac_address": "52:54:00:7d:81:f4",
+        },
+        "test2": {
+            "ip_address": "192.168.1.2",
+            "ipv6_address": "::2",
+            "dns_name": "test2.example.org",
+            "mac_address": "52:54:00:7d:81:f5",
+        },
+    }
+    system_collection = cobbler_api.systems()
+    interface1 = system.NetworkInterface(cobbler_api, system1.name)
+    interface1.from_dict(
+        {
+            "ip_address": "192.168.1.3",
+            "ipv6_address": "::3",
+            "dns_name": "",
+            "mac_address": "52:54:00:7d:81:f6",
+        }
+    )
+
+    # Act
+    system_collection.update_interface_indexes(system1, "test2", interface1)
+
+    # Assert
+    assert set(system_collection.indexes["ip_address"].keys()) == {
+        "192.168.1.1",
+        "192.168.1.3",
+    }
+    assert set(system_collection.indexes["ipv6_address"].keys()) == {"::1", "::3"}
+    assert set(system_collection.indexes["dns_name"].keys()) == {"test1.example.org"}
+    assert set(system_collection.indexes["mac_address"].keys()) == {
+        "52:54:00:7d:81:f4",
+        "52:54:00:7d:81:f6",
+    }
+
+    # Cleanup
+    for indx_key, indx_val in system_collection.indexes.items():
+        if indx_key == "uid":
+            continue
+        system_collection.indexes[indx_key] = {}
+
+
+def test_update_system_indexes(
+    cobbler_api: CobblerAPI,
+    create_distro: Callable[[str], distro.Distro],
+    create_profile: Callable[[str], profile.Profile],
+    create_system: Callable[[str], system.System],
+):
+    """
+    TODO
+    """
+    # Arrange
+    name = "test_update_system_indexes"
+    distro1 = create_distro()
+    profile1 = create_profile(name)
+    system1 = create_system(name)
+    system1.interfaces = {
+        "test1": {
+            "ip_address": "192.168.1.1",
+            "ipv6_address": "::1",
+            "dns_name": "test1.example.org",
+            "mac_address": "52:54:00:7d:81:f4",
+        },
+    }
+    system_collection = cobbler_api.systems()
+    interface1 = system.NetworkInterface(cobbler_api, system1.name)
+    interface1.from_dict(
+        {
+            "ip_address": "192.168.1.3",
+            "ipv6_address": "::3",
+            "dns_name": "",
+            "mac_address": "52:54:00:7d:81:f6",
+        }
+    )
+
+    # Act
+    original_uid = system1.uid
+    system1.uid = "test_uid"
+    system1.interfaces["test1"].ip_address = "192.168.1.2"
+    system1.interfaces["test1"].ipv6_address = "::2"
+    system1.interfaces["test1"].dns_name = "test2.example.org"
+    system1.interfaces["test1"].mac_address = "52:54:00:7d:81:f5"
+
+    interface1.ip_address = "192.168.1.4"
+    interface1.ipv6_address = "::4"
+    interface1.dns_name = "test4.example.org"
+    interface1.mac_address = "52:54:00:7d:81:f7"
+
+    # Assert
+    assert original_uid not in system_collection.indexes["uid"]
+    assert (system_collection.indexes["uid"])["test_uid"] == system1.name
+    assert "192.168.1.1" not in system_collection.indexes["ip_address"]
+    assert (system_collection.indexes["ip_address"])["192.168.1.2"] == system1.name
+    assert "::1" not in system_collection.indexes["ipv6_address"]
+    assert (system_collection.indexes["ipv6_address"])["::2"] == system1.name
+    assert "test1.example.org" not in system_collection.indexes["dns_name"]
+    assert (system_collection.indexes["dns_name"])["test2.example.org"] == system1.name
+    assert "52:54:00:7d:81:f4" not in system_collection.indexes["mac_address"]
+    assert (system_collection.indexes["mac_address"])[
+        "52:54:00:7d:81:f5"
+    ] == system1.name
+
+    assert interface1.ip_address not in system_collection.indexes["ip_address"]
+    assert interface1.ipv6_address not in system_collection.indexes["ipv6_address"]
+    assert interface1.dns_name not in system_collection.indexes["dns_name"]
+    assert interface1.mac_address not in system_collection.indexes["mac_address"]
+
+
+def test_remove_from_indexes(
+    cobbler_api: CobblerAPI,
+    create_distro: Callable[[str], distro.Distro],
+    create_profile: Callable[[str], profile.Profile],
+    create_system: Callable[[str], system.System],
+):
+    """
+    TODO
+    """
+    # Arrange
+    name = "test_remove_from_indexes"
+    distro1 = create_distro()
+    profile1 = create_profile(name)
+    system1 = create_system(name)
+    system1.interfaces = {
+        "default": {
+            "ip_address": "192.168.1.1",
+            "ipv6_address": "::1",
+            "dns_name": "example.org",
+            "mac_address": "52:54:00:7d:81:f4",
+        }
+    }
+    system_collection = cobbler_api.systems()
+    original_uid = system1.uid
+
+    # Act
+    system_collection.remove_from_indexes(system1)
+
+    # Assert
+    assert system1.uid not in system_collection.indexes["uid"]
+    assert (
+        system1.interfaces["default"].ip_address
+        not in system_collection.indexes["ip_address"]
+    )
+    assert (
+        system1.interfaces["default"].ipv6_address
+        not in system_collection.indexes["ipv6_address"]
+    )
+    assert (
+        system1.interfaces["default"].dns_name
+        not in system_collection.indexes["dns_name"]
+    )
+    assert (
+        system1.interfaces["default"].mac_address
+        not in system_collection.indexes["mac_address"]
+    )
+
+    # Cleanup
+    system1.uid = original_uid
+
+
+def test_find_by_indexes(
+    cobbler_api: CobblerAPI,
+    create_distro: Callable[[str], distro.Distro],
+    create_profile: Callable[[str], profile.Profile],
+    create_system: Callable[[str], system.System],
+):
+    """
+    TODO
+    """
+    # Arrange
+    name = "test_find_by_indexes"
+    distro1 = create_distro()
+    profile1 = create_profile(name)
+    system1 = create_system(name)
+    system1.interfaces = {
+        "default": {
+            "ip_address": "192.168.1.1",
+            "ipv6_address": "::1",
+            "dns_name": "example.org",
+            "mac_address": "52:54:00:7d:81:f4",
+        }
+    }
+    system_collection = cobbler_api.systems()
+
+    kargs = {
+        "uid": [
+            {"uid": system1.uid},
+            {"uid": "fake_uid"},
+            {"fake_index": system1.uid},
+        ],
+        "ip_address": [
+            {"ip_address": system1.interfaces["default"].ip_address},
+            {"ip_address": "fake_ip_addres"},
+            {"fake_index": system1.interfaces["default"].ip_address},
+        ],
+        "ipv6_address": [
+            {"ipv6_address": system1.interfaces["default"].ipv6_address},
+            {"ipv6_address": "fake_ipv6_addres"},
+            {"fake_index": system1.interfaces["default"].ipv6_address},
+        ],
+        "dns_name": [
+            {"dns_name": system1.interfaces["default"].dns_name},
+            {"dns_name": "fake_dns_name"},
+            {"fake_index": system1.interfaces["default"].dns_name},
+        ],
+        "mac_address": [
+            {"mac_address": system1.interfaces["default"].mac_address},
+            {"mac_address": "fake_mac_address"},
+            {"fake_index": system1.interfaces["default"].mac_address},
+        ],
+    }
+    results = {}
+
+    # Act
+    for indx, args in kargs.items():
+        results[indx] = []
+        for arg in args:
+            results[indx].append(system_collection.find_by_indexes(arg))
+
+    # Assert
+    for indx, result in results.items():
+        assert isinstance(result[0], list)
+        assert len(result[0]) == 1
+        assert (result[0])[0] == system1
+        assert len((kargs[indx])[0]) == 0
+        assert result[1] is None
+        assert len((kargs[indx])[1]) == 0
+        assert result[2] is None
+        assert len((kargs[indx])[2]) == 1
+
+
+@pytest.mark.skip("Method which is under test is broken!")
+def test_to_string(cobbler_api: CobblerAPI, system_collection: systems.Systems):
+    """
+    TODO
+    """
+    # Arrange
+    name = "to_string"
+    item1 = system.System(cobbler_api)
+    item1.name = name
+    system_collection.add(item1)
+
+    # Act
+    result = system_collection.to_string()
+
+    # Assert
+    print(result)
+    assert False
diff --git a/tests/conftest.py b/tests/conftest.py
index b15fcc26a6..7f0a4d976a 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -201,7 +201,9 @@ def _create_system(
             test_system.profile = profile_name
         if image_name != "":
             test_system.image = image_name
-        test_system.interfaces = {"default": NetworkInterface(cobbler_api)}
+        test_system.interfaces = {
+            "default": NetworkInterface(cobbler_api, test_system.name)
+        }
         cobbler_api.add_system(test_system)
         return test_system
 
diff --git a/tests/items/network_interface_test.py b/tests/items/network_interface_test.py
index a6ddf86cca..8daab7862c 100644
--- a/tests/items/network_interface_test.py
+++ b/tests/items/network_interface_test.py
@@ -25,7 +25,7 @@ def test_network_interface_object_creation(cobbler_api: CobblerAPI):
     # Arrange
 
     # Act
-    interface = NetworkInterface(cobbler_api)
+    interface = NetworkInterface(cobbler_api, "")
 
     # Assert
     assert isinstance(interface, NetworkInterface)
@@ -33,7 +33,7 @@ def test_network_interface_object_creation(cobbler_api: CobblerAPI):
 
 def test_network_interface_to_dict(cobbler_api: CobblerAPI):
     # Arrange
-    interface = NetworkInterface(cobbler_api)
+    interface = NetworkInterface(cobbler_api, "")
 
     # Act
     result = interface.to_dict()
@@ -48,7 +48,7 @@ def test_network_interface_to_dict(cobbler_api: CobblerAPI):
 
 def test_network_interface_to_dict_resolved(cobbler_api: CobblerAPI):
     # Arrange
-    interface = NetworkInterface(cobbler_api)
+    interface = NetworkInterface(cobbler_api, "")
 
     # Act
     result = interface.to_dict(resolved=True)
@@ -76,7 +76,7 @@ def test_network_interface_from_dict(
 ):
     # Arrange
     caplog.set_level(logging.INFO)
-    interface = NetworkInterface(cobbler_api)
+    interface = NetworkInterface(cobbler_api, "")
 
     # Act
     interface.from_dict(input_dict)
@@ -109,7 +109,7 @@ def test_dhcp_tag(
     cobbler_api: CobblerAPI, input_dhcp_tag, expected_result, expected_exception
 ):
     # Arrange
-    interface = NetworkInterface(cobbler_api)
+    interface = NetworkInterface(cobbler_api, "")
 
     # Act
     with expected_exception:
@@ -122,7 +122,7 @@ def test_dhcp_tag(
 
 def test_cnames(cobbler_api: CobblerAPI):
     # Arrange
-    interface = NetworkInterface(cobbler_api)
+    interface = NetworkInterface(cobbler_api, "")
 
     # Act
     interface.cnames = []
@@ -134,7 +134,7 @@ def test_cnames(cobbler_api: CobblerAPI):
 
 def test_static_routes(cobbler_api: CobblerAPI):
     # Arrange
-    interface = NetworkInterface(cobbler_api)
+    interface = NetworkInterface(cobbler_api, "")
 
     # Act
     interface.static_routes = []
@@ -157,7 +157,7 @@ def test_static(
     cobbler_api: CobblerAPI, input_static, expected_result, expected_exception
 ):
     # Arrange
-    interface = NetworkInterface(cobbler_api)
+    interface = NetworkInterface(cobbler_api, "")
 
     # Act
     with expected_exception:
@@ -181,7 +181,7 @@ def test_management(
     cobbler_api: CobblerAPI, input_management, expected_result, expected_exception
 ):
     # Arrange
-    interface = NetworkInterface(cobbler_api)
+    interface = NetworkInterface(cobbler_api, "")
 
     # Act
     with expected_exception:
@@ -215,7 +215,7 @@ def test_dns_name(
     system = create_system(profile.name)
     system.interfaces["default"].dns_name = "duplicate.example.org"
     cobbler_api.add_system(system)
-    interface = NetworkInterface(cobbler_api)
+    interface = NetworkInterface(cobbler_api, "")
 
     # Act
     with expected_exception:
@@ -262,7 +262,7 @@ def test_mac_address(
     system2.interfaces["default"].mac_address = "random"
     cobbler_api.add_system(system2)
     mocker.patch("cobbler.utils.get_random_mac", return_value="AA:BB:CC:DD:EE:FF")
-    interface = NetworkInterface(cobbler_api)
+    interface = NetworkInterface(cobbler_api, "")
 
     # Act
     with expected_exception:
@@ -276,7 +276,7 @@ def test_mac_address(
 
 def test_netmask(cobbler_api: CobblerAPI):
     # Arrange
-    interface = NetworkInterface(cobbler_api)
+    interface = NetworkInterface(cobbler_api, "")
 
     # Act
     interface.netmask = ""
@@ -288,7 +288,7 @@ def test_netmask(cobbler_api: CobblerAPI):
 
 def test_if_gateway(cobbler_api: CobblerAPI):
     # Arrange
-    interface = NetworkInterface(cobbler_api)
+    interface = NetworkInterface(cobbler_api, "")
 
     # Act
     interface.if_gateway = ""
@@ -311,7 +311,7 @@ def test_virt_bridge(
     cobbler_api: CobblerAPI, input_virt_bridge, expected_result, expected_exception
 ):
     # Arrange
-    interface = NetworkInterface(cobbler_api)
+    interface = NetworkInterface(cobbler_api, "")
 
     # Act
     with expected_exception:
@@ -338,7 +338,7 @@ def test_interface_type(
     cobbler_api: CobblerAPI, input_interface_type, expected_result, expected_exception
 ):
     # Arrange
-    interface = NetworkInterface(cobbler_api)
+    interface = NetworkInterface(cobbler_api, "")
 
     # Act
     with expected_exception:
@@ -360,7 +360,7 @@ def test_interface_master(
     cobbler_api: CobblerAPI, input_interface_master, expected_result, expected_exception
 ):
     # Arrange
-    interface = NetworkInterface(cobbler_api)
+    interface = NetworkInterface(cobbler_api, "")
 
     # Act
     with expected_exception:
@@ -382,7 +382,7 @@ def test_bonding_opts(
     cobbler_api: CobblerAPI, input_bonding_opts, expected_result, expected_exception
 ):
     # Arrange
-    interface = NetworkInterface(cobbler_api)
+    interface = NetworkInterface(cobbler_api, "")
 
     # Act
     with expected_exception:
@@ -404,7 +404,7 @@ def test_bridge_opts(
     cobbler_api: CobblerAPI, input_bridge_opts, expected_result, expected_exception
 ):
     # Arrange
-    interface = NetworkInterface(cobbler_api)
+    interface = NetworkInterface(cobbler_api, "")
 
     # Act
     with expected_exception:
@@ -438,7 +438,7 @@ def test_ip_address(
     system = create_system(profile.name)
     system.interfaces["default"].ip_address = "172.30.0.2"
     cobbler_api.add_system(system)
-    interface = NetworkInterface(cobbler_api)
+    interface = NetworkInterface(cobbler_api, "")
 
     # Act
     with expected_exception:
@@ -473,7 +473,7 @@ def test_ipv6_address(
     system = create_system(profile.name)
     system.interfaces["default"].ipv6_address = "2001:db8:3c4d::2"
     cobbler_api.add_system(system)
-    interface = NetworkInterface(cobbler_api)
+    interface = NetworkInterface(cobbler_api, "")
 
     # Act
     with expected_exception:
@@ -496,7 +496,7 @@ def test_ipv6_prefix(
     cobbler_api: CobblerAPI, input_ipv6_prefix, expected_result, expected_exception
 ):
     # Arrange
-    interface = NetworkInterface(cobbler_api)
+    interface = NetworkInterface(cobbler_api, "")
 
     # Act
     with expected_exception:
@@ -519,7 +519,7 @@ def test_ipv6_secondaries(
     cobbler_api: CobblerAPI, input_secondaries, expected_result, expected_exception
 ):
     # Arrange
-    interface = NetworkInterface(cobbler_api)
+    interface = NetworkInterface(cobbler_api, "")
 
     # Act
     with expected_exception:
@@ -543,7 +543,7 @@ def test_ipv6_default_gateway(
     cobbler_api: CobblerAPI, input_address, expected_result, expected_exception
 ):
     # Arrange
-    interface = NetworkInterface(cobbler_api)
+    interface = NetworkInterface(cobbler_api, "")
 
     # Act
     with expected_exception:
@@ -556,7 +556,7 @@ def test_ipv6_default_gateway(
 
 def test_ipv6_static_routes(cobbler_api: CobblerAPI):
     # Arrange
-    interface = NetworkInterface(cobbler_api)
+    interface = NetworkInterface(cobbler_api, "")
 
     # Act
     interface.ipv6_static_routes = []
@@ -577,7 +577,7 @@ def test_ipv6_mtu(
     cobbler_api: CobblerAPI, input_ipv6_mtu, expected_result, expected_exception
 ):
     # Arrange
-    interface = NetworkInterface(cobbler_api)
+    interface = NetworkInterface(cobbler_api, "")
 
     # Act
     with expected_exception:
@@ -597,7 +597,7 @@ def test_ipv6_mtu(
 )
 def test_mtu(cobbler_api: CobblerAPI, input_mtu, expected_result, expected_exception):
     # Arrange
-    interface = NetworkInterface(cobbler_api)
+    interface = NetworkInterface(cobbler_api, "")
 
     # Act
     with expected_exception:
@@ -621,7 +621,7 @@ def test_connected_mode(
     cobbler_api: CobblerAPI, input_connected_mode, expected_result, expected_exception
 ):
     # Arrange
-    interface = NetworkInterface(cobbler_api)
+    interface = NetworkInterface(cobbler_api, "")
 
     # Act
     with expected_exception:
@@ -647,7 +647,7 @@ def test_modify_interface(
     expected_exception,
 ):
     # Arrange
-    interface = NetworkInterface(cobbler_api)
+    interface = NetworkInterface(cobbler_api, "")
 
     # Act
     with expected_exception:
@@ -664,7 +664,7 @@ def test_inheritance(mocker, cobbler_api: CobblerAPI, test_settings):
     """
     # Arrange
     mocker.patch.object(cobbler_api, "settings", return_value=test_settings)
-    interface = NetworkInterface(cobbler_api)
+    interface = NetworkInterface(cobbler_api, "")
 
     # Act
     for key, key_value in interface.__dict__.items():
diff --git a/tests/items/system_test.py b/tests/items/system_test.py
index 163203c3be..04b9f8d6ac 100644
--- a/tests/items/system_test.py
+++ b/tests/items/system_test.py
@@ -918,7 +918,7 @@ def test_from_dict_with_network_interface(cobbler_api: CobblerAPI):
     """
     # Arrange
     system = System(cobbler_api)
-    system.interfaces = {"default": NetworkInterface(cobbler_api)}
+    system.interfaces = {"default": NetworkInterface(cobbler_api, system.name)}
     sys_dict = system.to_dict()
 
     # Act
@@ -965,7 +965,7 @@ def test_network_interface_type(
     Test that verifies that the ``NetworkInterface.interface_type`` works as expected.
     """
     # Arrange
-    interface = NetworkInterface(cobbler_api)
+    interface = NetworkInterface(cobbler_api, "")
 
     # Act
     with expected_exception:
@@ -997,7 +997,7 @@ def test_is_management_supported(
     """
     # Arrange
     system = System(cobbler_api)
-    system.interfaces = {"default": NetworkInterface(cobbler_api)}
+    system.interfaces = {"default": NetworkInterface(cobbler_api, system.name)}
     system.interfaces["default"].mac_address = input_mac
     system.interfaces["default"].ip_address = input_ipv4
     system.interfaces["default"].ipv6_address = input_ipv6
diff --git a/tests/modules/managers/dnsmasq_test.py b/tests/modules/managers/dnsmasq_test.py
index 63455d64eb..ee36b246ff 100644
--- a/tests/modules/managers/dnsmasq_test.py
+++ b/tests/modules/managers/dnsmasq_test.py
@@ -41,7 +41,9 @@ def test_manager_write_configs(mocker, cobbler_api):
     mock_profile = Profile(cobbler_api)
     mock_system = System(cobbler_api)
     mock_system.name = "test_manager_regen_hosts_system"
-    mock_system.interfaces = {"default": NetworkInterface(cobbler_api)}
+    mock_system.interfaces = {
+        "default": NetworkInterface(cobbler_api, mock_system.name)
+    }
     mock_system.interfaces["default"].dns_name = "host.example.org"
     mock_system.interfaces["default"].mac_address = "aa:bb:cc:dd:ee:ff"
     mock_system.interfaces["default"].ip_address = "192.168.1.2"
@@ -75,7 +77,9 @@ def test_manager_regen_ethers(mocker, cobbler_api):
     mock_builtins_open = mocker.patch("builtins.open", mocker.mock_open())
     mock_system = System(cobbler_api)
     mock_system.name = "test_manager_regen_ethers_system"
-    mock_system.interfaces = {"default": NetworkInterface(cobbler_api)}
+    mock_system.interfaces = {
+        "default": NetworkInterface(cobbler_api, mock_system.name)
+    }
     mock_system.interfaces["default"].dns_name = "host.example.org"
     mock_system.interfaces["default"].mac_address = "aa:bb:cc:dd:ee:ff"
     mock_system.interfaces["default"].ip_address = "192.168.1.2"
@@ -98,7 +102,9 @@ def test_manager_regen_hosts(mocker, cobbler_api):
     mock_builtins_open = mocker.patch("builtins.open", mocker.mock_open())
     mock_system = System(cobbler_api)
     mock_system.name = "test_manager_regen_hosts_system"
-    mock_system.interfaces = {"default": NetworkInterface(cobbler_api)}
+    mock_system.interfaces = {
+        "default": NetworkInterface(cobbler_api, mock_system.name)
+    }
     mock_system.interfaces["default"].dns_name = "host.example.org"
     mock_system.interfaces["default"].mac_address = "AA:BB:CC:DD:EE:FF"
     mock_system.interfaces["default"].ip_address = "192.168.1.2"
diff --git a/tests/modules/managers/ndjbdns_test.py b/tests/modules/managers/ndjbdns_test.py
index 1cc3463ae8..17988e882f 100644
--- a/tests/modules/managers/ndjbdns_test.py
+++ b/tests/modules/managers/ndjbdns_test.py
@@ -54,7 +54,9 @@ def test_manager_write_configs(mocker, cobbler_api):
     mocker.patch("subprocess.Popen", MockedPopen)
     mock_system = System(cobbler_api)
     mock_system.name = "test_manager_regen_hosts_system"
-    mock_system.interfaces = {"default": NetworkInterface(cobbler_api)}
+    mock_system.interfaces = {
+        "default": NetworkInterface(cobbler_api, mock_system.name)
+    }
     mock_system.interfaces["default"].dns_name = "host.example.org"
     mock_system.interfaces["default"].mac_address = "aa:bb:cc:dd:ee:ff"
     mock_system.interfaces["default"].ip_address = "192.168.1.2"