diff --git a/.benchmarks/Linux-CPython-3.11-64bit/0001_baseline.json b/.benchmarks/Linux-CPython-3.11-64bit/0001_baseline.json new file mode 100644 index 0000000..33d12a4 --- /dev/null +++ b/.benchmarks/Linux-CPython-3.11-64bit/0001_baseline.json @@ -0,0 +1,249 @@ +{ + "machine_info": { + "node": "fv-az478-415", + "processor": "x86_64", + "machine": "x86_64", + "python_compiler": "GCC 11.3.0", + "python_implementation": "CPython", + "python_implementation_version": "3.11.2", + "python_version": "3.11.2", + "python_build": [ + "main", + "Feb 8 2023 08:38:01" + ], + "release": "5.15.0-1033-azure", + "system": "Linux", + "cpu": { + "python_version": "3.11.2.final.0 (64 bit)", + "cpuinfo_version": [ + 9, + 0, + 0 + ], + "cpuinfo_version_string": "9.0.0", + "arch": "X86_64", + "bits": 64, + "count": 2, + "arch_string_raw": "x86_64", + "vendor_id_raw": "GenuineIntel", + "brand_raw": "Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz", + "hz_advertised_friendly": "2.8000 GHz", + "hz_actual_friendly": "2.7934 GHz", + "hz_advertised": [ + 2800000000, + 0 + ], + "hz_actual": [ + 2793438000, + 0 + ], + "stepping": 6, + "model": 106, + "family": 6, + "flags": [ + "3dnowprefetch", + "abm", + "adx", + "aes", + "apic", + "avx", + "avx2", + "avx512bw", + "avx512cd", + "avx512dq", + "avx512f", + "avx512vl", + "bmi1", + "bmi2", + "clflush", + "clflushopt", + "cmov", + "constant_tsc", + "cpuid", + "cx16", + "cx8", + "de", + "erms", + "f16c", + "fma", + "fpu", + "fsgsbase", + "fxsr", + "hle", + "ht", + "hypervisor", + "invpcid", + "invpcid_single", + "lahf_lm", + "lm", + "mca", + "mce", + "md_clear", + "mmx", + "movbe", + "msr", + "mtrr", + "nopl", + "nx", + "osxsave", + "pae", + "pat", + "pcid", + "pclmulqdq", + "pdpe1gb", + "pge", + "pni", + "popcnt", + "pse", + "pse36", + "pti", + "rdrand", + "rdrnd", + "rdseed", + "rdtscp", + "rep_good", + "rtm", + "sep", + "smap", + "smep", + "ss", + "sse", + "sse2", + "sse4_1", + "sse4_2", + "ssse3", + "syscall", + "tsc", + "vme", + "xsave", + "xsavec", + "xsaveopt", + "xsaves", + "xtopology" + ], + "l3_cache_size": 50331648, + "l2_cache_size": "2.5 MiB", + "l1_data_cache_size": 98304, + "l1_instruction_cache_size": 65536, + "l2_cache_line_size": 256, + "l2_cache_associativity": 6 + } + }, + "commit_info": { + "id": "6f34943ee52937810625a9e6e51aa9829cdf6b0e", + "time": "2023-03-06T14:49:43+01:00", + "author_time": "2023-03-06T14:44:06+01:00", + "dirty": false, + "project": "lagom", + "branch": "pipenv-bump" + }, + "benchmarks": [ + { + "group": null, + "name": "test_magic", + "fullname": "tests/benchmarking/test_basic_benchmarks.py::test_magic", + "params": null, + "param": null, + "extra_info": {}, + "options": { + "disable_gc": true, + "timer": "perf_counter", + "min_rounds": 5, + "max_time": 10.0, + "min_time": 5e-06, + "warmup": false + }, + "stats": { + "min": 0.0001859009999805039, + "max": 0.00030900199999450706, + "mean": 0.000197659513031829, + "stddev": 8.68778904219261e-06, + "rounds": 2302, + "median": 0.00019550100000742532, + "iqr": 6.2000000013995304e-06, + "q1": 0.0001930009999853155, + "q3": 0.00019920099998671503, + "iqr_outliers": 188, + "stddev_outliers": 299, + "outliers": "299;188", + "ld15iqr": 0.0001859009999805039, + "hd15iqr": 0.00020850100000302518, + "ops": 5059.205017058655, + "total": 0.45501219899927037, + "iterations": 1 + } + }, + { + "group": null, + "name": "test_plain", + "fullname": "tests/benchmarking/test_basic_benchmarks.py::test_plain", + "params": null, + "param": null, + "extra_info": {}, + "options": { + "disable_gc": true, + "timer": "perf_counter", + "min_rounds": 5, + "max_time": 10.0, + "min_time": 5e-06, + "warmup": false + }, + "stats": { + "min": 0.00016640000001189037, + "max": 0.0006607030000225222, + "mean": 0.00017941838783876808, + "stddev": 7.240383844180042e-06, + "rounds": 11479, + "median": 0.00017920100000878847, + "iqr": 5.600000008598727e-06, + "q1": 0.00017630100001042592, + "q3": 0.00018190100001902465, + "iqr_outliers": 375, + "stddev_outliers": 1747, + "outliers": "1747;375", + "ld15iqr": 0.00016790099999752783, + "hd15iqr": 0.0001903999999797179, + "ops": 5573.564739075888, + "total": 2.059543674001219, + "iterations": 1 + } + }, + { + "group": null, + "name": "test_optimised", + "fullname": "tests/benchmarking/test_basic_benchmarks.py::test_optimised", + "params": null, + "param": null, + "extra_info": {}, + "options": { + "disable_gc": true, + "timer": "perf_counter", + "min_rounds": 5, + "max_time": 10.0, + "min_time": 5e-06, + "warmup": false + }, + "stats": { + "min": 9.560099999816885e-05, + "max": 0.00017420100002141226, + "mean": 0.00010482665225421059, + "stddev": 3.528609360165212e-06, + "rounds": 61729, + "median": 0.00010490099998605729, + "iqr": 3.6010000030728406e-06, + "q1": 0.00010310000001823028, + "q3": 0.00010670100002130312, + "iqr_outliers": 2886, + "stddev_outliers": 15393, + "outliers": "15393;2886", + "ld15iqr": 9.769999999775791e-05, + "hd15iqr": 0.00011219999998957064, + "ops": 9539.558676117436, + "total": 6.4708444170001655, + "iterations": 1 + } + } + ], + "datetime": "2023-03-06T13:50:56.172347", + "version": "4.0.0" +} \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml index 13b80a7..a7123de 100644 --- a/.github/workflows/benchmark.yml +++ b/.github/workflows/benchmark.yml @@ -8,7 +8,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: ["3.8", "3.9", "3.10"] + python-version: ["3.8", "3.9", "3.10", "3.11"] steps: - uses: actions/checkout@v2 @@ -20,10 +20,12 @@ jobs: run: | make setup - name: Run Bechmarking + id: run_benchmark run: | make benchmark - uses: actions/upload-artifact@v2 name: Save Benchmarks + if: success() || steps.run_benchmark.conclusion == 'failure' with: name: benchmark-results path: .benchmarks/ \ No newline at end of file diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 174ac45..b5c89b3 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -27,11 +27,11 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: ["3.9"] + python-version: ["3.11"] steps: - uses: actions/checkout@v2 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 + uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} - name: Install dependencies @@ -50,14 +50,6 @@ jobs: - name: Run Tests run: | pipenv run pytest tests -m "not benchmarking" -vv - - name: Run Bechmarking - run: | - make benchmark - - uses: actions/upload-artifact@v2 - name: Save Benchmarks - with: - name: benchmark-compiled-results - path: .benchmarks/ test-non-compiled-build: name: build-non-compiled-test-${{ matrix.python-version }} runs-on: ubuntu-latest diff --git a/Makefile b/Makefile index dfcc55c..c7a526b 100644 --- a/Makefile +++ b/Makefile @@ -4,7 +4,7 @@ PIPENV_VERBOSITY=-1 setup: setup_pipenv install setup_pipenv: - pip install pipenv==2021.5.29 + pip install pipenv==2023.2.18 install: pipenv install --dev --skip-lock