From f166843dc4b00044f4b44927f4cbcbb07170456a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B8=D1=85=D0=B0=D0=B8=D0=BB=20=D0=94=D1=80=D0=B0?= =?UTF-8?q?=D0=B3=D1=83=D0=BD=D0=BA=D0=B8=D0=BD?= Date: Thu, 24 Apr 2025 00:04:06 +0300 Subject: [PATCH 1/3] feature: implement CLI application --- CHANGELOG.md | 1 + Cargo.toml | 11 + README.md | 86 ++ docs/_static/performance_comparison.svg | 1545 +++++++++++++++++++++++ docs/_static/time_per_operation.svg | 1522 ++++++++++++++++++++++ docs/bench.ipynb | 247 ++++ docs/benchmark.md | 32 + docs/requirements-bench.lock | 2 + docs/requirements-bench.txt | 2 + src/main.rs | 259 ++++ 10 files changed, 3707 insertions(+) create mode 100644 docs/_static/performance_comparison.svg create mode 100644 docs/_static/time_per_operation.svg create mode 100644 docs/bench.ipynb create mode 100644 docs/benchmark.md create mode 100644 docs/requirements-bench.lock create mode 100644 docs/requirements-bench.txt create mode 100644 src/main.rs diff --git a/CHANGELOG.md b/CHANGELOG.md index ed4d59b..accbfeb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,3 +11,4 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - [x] feature: generalize `path_file` argument type, from `&str` to `AsRef` - [x] feature: allow only regular file for hashing with `sum_file` - [x] enhancement: add additional entropy to filename to fix race condition issue on parallel tests launch +- [x] feature: implement CLI application diff --git a/Cargo.toml b/Cargo.toml index dc35e1c..9f0ca1b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -12,9 +12,20 @@ categories = ["algorithms", "filesystem", "encoding"] keywords = ["checksum", "digest", "hash", "murmur3", "encoding"] # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html +[lib] +name = "imohash" +path = "src/lib.rs" + +[[bin]] +name = "imohash" +path = "src/main.rs" [dependencies] +# Common dependencies murmur3 = "0.5" +# Dependencies only for binary +clap = { version = "4.5.35", features = ["std"] } +hex = "0.4.3" [dev-dependencies] md-5 = "0.10.5" diff --git a/README.md b/README.md index 1c8c988..3878442 100644 --- a/README.md +++ b/README.md @@ -29,6 +29,92 @@ let hash_value = hasher.sum("hello".as_bytes()).unwrap(); let hash_value = hasher.sum_file("samples/system.evtx").unwrap(); ``` +### CLI application + +Component provides a CLI sample application to hash files, similar to md5sum. + +#### Install + +Install `imohash` binary with `cargo`: + +```sh +cargo install --bin imohash imohash # NAME_OF_BINARY PACKAGE_NAME +``` + +The installed binary will be located in `~/.cargo/bin/imohash` and will be available globally as `imohash`. + +#### Usage + +```sh +imohash # ... options and arguments +``` + +Application options and arguments: + +- `-t` / `--sample-threshold` — Sample threshold value. +- `-s` / `--sample-size` — Sample size value. The entire file will be hashed (i.e. no sampling), if `sample_size < 1` +- `-f` / `--format` of `{ int | bytes | hex }` — Hash representation format. Default `hex` +- `-i` / `--interactive` — Interactive hash computation mode. **Conflicts with** `[file_path ...]` argument +- `--threads` — Count of threads to compute files sum in. **Conflicts with** `-i/--interactive` argument +- `[file_path ...]` — File paths to compute hash of. **Conflicts with** `-i/--interactive` argument + +**Usage example:** + +1. Compute hash sum of file or files: + ```sh + # echo example > /tmp/my_file + imohash /tmp/my_file + ``` + will print: + ``` + 0877d8731ad98e5ee1cc09c0a87772bf /tmp/my_file + ``` +2. Compute hash sum of file(s) with `find` application result: + ```sh + # dd if=/dev/random of=/tmp/1.iso bs=1M count=64 + # dd if=/dev/random of=/tmp/2.iso bs=1M count=64 + # cp /tmp/1.iso /tmp/3.iso + + find /tmp -type f -iname '*.iso' -exec imohash {} \+ + ``` + will print: + ``` + 808080203afea9085df78cd992f28546 /tmp/1.iso + 8080802011cdd41fbddd9c1f853c1330 /tmp/2.iso + 808080203afea9085df78cd992f28546 /tmp/3.iso # as same as #1 ! + ``` +3. Compute hash of string content (as bytes data) interactively: + ```sh + imohash -i # ... or implicitly: imohash + ``` + + ``` + Interactive mode (format: hex) + > example + 07ce528a343b2b99d4bd1bcdd648d138 + > example 2 + 09b17440da02c7feb0b54f89d4d7b142 + > + ``` + +#### Benchmark + +See [benchmark](docs/benchmark.md) for details: + +[![performance comparison graphic](docs/_static/performance_comparison.svg)](docs/_static/performance_comparison.svg) + +
+ Time per operation graphic + + [![performance comparison / time per operation graphic](docs/_static/time_per_operation.svg)](docs/_static/time_per_operation.svg) + +
+ +Graphics analyze reveals: + +1. optimal number of threads is equals to: `(number of process cores)` OR `(number of process cores) * 2` +2. multithreading increases processing performance up to 8-10x times + ## Algorithm Consult the [documentation](https://github.com/kalafut/imohash/blob/master/algorithm.md) for more information. diff --git a/docs/_static/performance_comparison.svg b/docs/_static/performance_comparison.svg new file mode 100644 index 0000000..0c206e9 --- /dev/null +++ b/docs/_static/performance_comparison.svg @@ -0,0 +1,1545 @@ + + + + + + + + 2025-05-01T13:02:10.988760 + image/svg+xml + + + Matplotlib v3.10.1, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/_static/time_per_operation.svg b/docs/_static/time_per_operation.svg new file mode 100644 index 0000000..903c670 --- /dev/null +++ b/docs/_static/time_per_operation.svg @@ -0,0 +1,1522 @@ + + + + + + + + 2025-05-01T13:02:26.143365 + image/svg+xml + + + Matplotlib v3.10.1, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/bench.ipynb b/docs/bench.ipynb new file mode 100644 index 0000000..1bd1e28 --- /dev/null +++ b/docs/bench.ipynb @@ -0,0 +1,247 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "a07f258e", + "metadata": {}, + "source": [ + "# Compare performance with different settings of threads number" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "7d763638", + "metadata": { + "lines_to_next_cell": 1 + }, + "outputs": [], + "source": [ + "import os\n", + "import time\n", + "import random\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "import subprocess" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "7e50180e-39fa-4a6a-853b-686ab9af5c6f", + "metadata": { + "lines_to_next_cell": 1 + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "macOS-13.5-x86_64-i386-64bit\n", + "3.11.5\n", + "CPU cores count: 4\n" + ] + } + ], + "source": [ + "import platform\n", + "import multiprocessing\n", + "\n", + "print(platform.platform())\n", + "print(platform.python_version())\n", + "print('CPU cores count:', multiprocessing.cpu_count())" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "16aef36c-611d-4f02-b6df-bbd479db5ac0", + "metadata": { + "lines_to_next_cell": 1 + }, + "outputs": [], + "source": [ + "# Create 10000 files with 256 KB data\n", + "os.makedirs('/tmp/imohash-test', exist_ok=True)\n", + "for i in range(10000): \n", + " with open(f'/tmp/imohash-test/file_{i}.txt', 'wb') as f:\n", + " f.write(os.urandom(256 * 1024)) # 256 KB" + ] + }, + { + "cell_type": "markdown", + "id": "4cb1d4dd", + "metadata": {}, + "source": [ + "## Testing & metrics collecting" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "020629e8", + "metadata": {}, + "outputs": [], + "source": [ + "file_paths = [f'/tmp/imohash-test/file_{i}.txt' for i in range(10000)]\n", + "\n", + "# Test with different sample sizes (files count)\n", + "sample_sizes = [100, 500, 1000, 2000, 5000, 8000, 10000]\n", + "threads_count_list = [1, 2, 4, 8, 16, 32, 64]\n", + "colors = [\"#FF0000\", \"#00AA00\", \"#0000FF\", \"#FFA500\", \"#800080\", \"#008080\", \"#FF00FF\"]\n", + "\n", + "result = {}\n", + "for threads_count in threads_count_list:\n", + " time_ = []\n", + " result[threads_count] = time_\n", + " \n", + " for size in sample_sizes:\n", + " sample = file_paths[:size]\n", + " start = time.time()\n", + " subprocess.run([\"imohash\", f\"--threads={threads_count}\"] + sample, stdout=subprocess.DEVNULL)\n", + " result[threads_count].append(time.time() - start)" + ] + }, + { + "cell_type": "markdown", + "id": "cef06baf", + "metadata": {}, + "source": [ + "## Graphics rendering" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "1a863ee3", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAJOCAYAAABm7rQwAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3Xd8VFX+//HXZNIrhJZgIIFIpAaQREVUQFFRFBQBCxBRQYHlK6CgKB0UdRUBdQGxgOL+FlHRVVnXsoK6gEoJTUA6IfQaSurM3N8fsxkZE0JyUybJvJ+Pxzzknrlz7ufMzIfED+ecazEMw0BERERERERERKQC+Xg6ABERERERERER8T4qSomIiIiIiIiISIVTUUpERERERERERCqcilIiIiIiIiIiIlLhVJQSEREREREREZEKp6KUiIiIiIiIiIhUOBWlRERERERERESkwqkoJSIiIiIiIiIiFU5FKRERERERERERqXAqSomIiFQhe/fuxWKxsGDBAlfbpEmTsFgsFRpHp06daNmyZYVe81IGDBhAXFycW5vFYmHSpEnlfu0FCxZgsVjYu3dvmfXpic9VCv8eiYiISPlQUUpERKQSyS9uFPYYM2aMp8PzetOmTeOzzz7zdBgiIiIi1YKvpwMQERGRgqZMmUKjRo3c2lq2bElsbCxZWVn4+fl5KDLvNm3aNHr16sVdd93l1t6/f3/uu+8+AgICyuxa48aNUyHSA9566y0cDoenwxAREfEKKkqJiIhUQrfddhtJSUmFPhcYGFjB0cilWK1WrFZrmfbp6+uLr69+Vaso58+fJyQkRAVfERGRCqTleyIiIlVIYXtKXcwHH3xAu3btCAoKIjIykvvuu4/9+/e7nbNjxw7uueceoqKiCAwMJCYmhvvuu4+MjIxixbNlyxY6d+5McHAwl112GX/961/dns/NzWXChAm0a9eOiIgIQkJCuP7661m2bFmh43rllVeYN28e8fHxBAQEkJyczOrVqwtc97PPPqNly5YEBgbSsmVLPv3002LFC3DgwAEefvhh6tWrR0BAAC1atODdd9+95OssFgvnz5/nvffecy2pHDBgAFD4nlJxcXHccccdLF++nKSkJIKCgmjVqhXLly8HYMmSJbRq1YrAwEDatWtHamqq2/UK21PKYrEwbNgw1/jz4//3v/9dIN786wYGBhIfH8+bb75Zon2qfvnlF26//XZq1qxJSEgIiYmJzJo1y+2c77//nuuvv56QkBBq1KhBjx492Lp1a6Hj2L59O/369SMiIoI6deowfvx4DMNg//799OjRg/DwcKKiopg+fXqBcVgsFj788EOeffZZoqKiCAkJoXv37gW+zz/99BO9e/emYcOGBAQE0KBBA0aOHElWVpbbeQMGDCA0NJRdu3Zx++23ExYWRt++fV3P/XlPqUWLFtGuXTvCwsIIDw+nVatWBd6L3bt307t3byIjIwkODuaaa65h6dKlhY5l8eLFPP/888TExBAYGMhNN93Ezp07i/W5iIiIVCf65zcREZFKKCMjg+PHj7u11a5du9ivf/755xk/fjx9+vRh4MCBHDt2jNdff50bbriB1NRUatSoQW5uLrfeeis5OTn83//9H1FRURw4cIAvv/yS06dPExERUeQ1Tp06RdeuXenZsyd9+vTh448/5umnn6ZVq1bcdtttAJw5c4a3336b+++/n0GDBnH27Fneeecdbr31Vn799VfatGnj1uf/+3//j7Nnz/LYY49hsVj461//Ss+ePdm9e7drBss333zDPffcQ/PmzXnhhRc4ceIEDz30EDExMZd8X44cOcI111zjKu7UqVOHr776ikceeYQzZ84wYsSIi7524cKFDBw4kKuuuopHH30UgPj4+CKvt3PnTh544AEee+wx+vXrxyuvvMKdd97J3LlzefbZZxk6dCgAL7zwAn369OH333/Hx6fofzP873//y5IlSxg6dChhYWG89tpr3HPPPaSlpVGrVi0AUlNT6dq1K9HR0UyePBm73c6UKVOoU6fOJd8jgG+//ZY77riD6Ohohg8fTlRUFFu3buXLL79k+PDhAHz33XfcdtttNG7cmEmTJpGVlcXrr79Ohw4dWLduXYHCzr333kuzZs148cUXWbp0Kc899xyRkZG8+eab3Hjjjbz00kv8/e9/Z9SoUSQnJ3PDDTe4vf7555/HYrHw9NNPc/ToUWbOnEmXLl1Yv349QUFBAHz00UdkZmYyZMgQatWqxa+//srrr79Oeno6H330kVt/NpuNW2+9leuuu45XXnmF4ODgi74X999/PzfddBMvvfQSAFu3bmXFihWu9+LIkSNce+21ZGZm8vjjj1OrVi3ee+89unfvzscff8zdd9/t1ueLL76Ij48Po0aNIiMjg7/+9a/07duXX375pVifj4iISLVhiIiISKUxf/58Ayj0YRiGsWfPHgMw5s+f73rNxIkTjQt/pO/du9ewWq3G888/79b3pk2bDF9fX1d7amqqARgfffRRiePs2LGjARjvv/++qy0nJ8eIiooy7rnnHlebzWYzcnJy3F576tQpo169esbDDz/sassfV61atYyTJ0+62v/5z38agPHFF1+42tq0aWNER0cbp0+fdrV98803BmDExsa6XQswJk6c6Dp+5JFHjOjoaOP48eNu5913331GRESEkZmZWeS4Q0JCjAcffLBAe/7ntmfPHldbbGysARgrV650tX399dcGYAQFBRn79u1ztb/55psGYCxbtszV9ufPNX88/v7+xs6dO11tGzZsMADj9ddfd7XdeeedRnBwsHHgwAFX244dOwxfX98Cff6ZzWYzGjVqZMTGxhqnTp1ye87hcLj+3KZNG6Nu3brGiRMn3GLx8fExUlJSCozj0UcfdbtGTEyMYbFYjBdffNHVfurUKSMoKMjtPV62bJkBGJdddplx5swZV/vixYsNwJg1a5arrbDP74UXXjAsFovb+/3ggw8agDFmzJgC5z/44INu36Phw4cb4eHhhs1mK3BuvhEjRhiA8dNPP7nazp49azRq1MiIi4sz7Ha721iaNWvmlhezZs0yAGPTpk0XvYaIiEh1pOV7IiIildDf/vY3vv32W7dHcS1ZsgSHw0GfPn04fvy46xEVFUWTJk1cS+fyZ0J9/fXXZGZmljjG0NBQ+vXr5zr29/fnqquuYvfu3a42q9WKv78/AA6Hg5MnT2Kz2UhKSmLdunUF+rz33nupWbOm6/j6668HcPV56NAh1q9fz4MPPug2k+vmm2+mefPmRcZrGAaffPIJd955J4ZhuL03t956KxkZGYXGVBrNmzenffv2ruOrr74agBtvvJGGDRsWaL/wvbuYLl26uM3QSkxMJDw83PVau93Od999x1133UX9+vVd511++eWuGWxFSU1NZc+ePYwYMYIaNWq4PZe/9C//cxgwYACRkZFusdx8883861//KtDvwIEDXX+2Wq0kJSVhGAaPPPKIq71GjRpcccUVhb4PKSkphIWFuY579epFdHS027XyZ0yBc4+o48ePc+2112IYRoHlkQBDhgwp6q1wxXT+/Pkic/Bf//oXV111Fdddd52rLTQ0lEcffZS9e/eyZcsWt/MfeughV15Awe+5iIiIt1BRSkREpBK66qqr6NKli9ujuHbs2IFhGDRp0oQ6deq4PbZu3crRo0cBaNSoEU888QRvv/02tWvX5tZbb+Vvf/tbsfeTiomJKbA/Uc2aNTl16pRb23vvvUdiYiKBgYHUqlWLOnXqsHTp0kKvc2GhJr8/wNXnvn37AGjSpEmB115xxRVFxnvs2DFOnz7NvHnzCrwvDz30EIDrvSkrfx5PfiGtQYMGhbb/+b0rTp/g/r4fPXqUrKwsLr/88gLnFdb2Z7t27QKcd3u8mPzPobD3vFmzZhw/fpzz588XGXdERASBgYEFlqVGREQU+j78+TO3WCxcfvnlbvt4paWluQploaGh1KlTh44dOwIU+L75+voWa8nn0KFDSUhI4LbbbiMmJoaHH364wB5e+/btu+h7kf/8hS71PRcREfEW2lNKRESkmnE4HFgsFr766qtC7wgXGhrq+vP06dMZMGAA//znP/nmm294/PHHeeGFF/j5558v+T/sF7vbnGEYrj9/8MEHDBgwgLvuuovRo0dTt25drFYrL7zwgqv4UdI+zXI4HAD069ePBx98sNBzEhMTS32dC11sPKUZZ3m+R+WpsLjLcix2u52bb76ZkydP8vTTT9O0aVNCQkI4cOAAAwYMcH3++QICAi65fxdA3bp1Wb9+PV9//TVfffUVX331FfPnzyclJYX33nuvxHFC1f0MRUREypqKUiIiItVMfHw8hmHQqFEjEhISLnl+q1ataNWqFePGjWPlypV06NCBuXPn8txzz5U6lo8//pjGjRuzZMkSt1lVEydONNVfbGws4JwN9me///57ka+tU6cOYWFh2O32Es08u1Bx71znSXXr1iUwMLDQu7kV5w5v+UsDN2/efNH3Kf9zKOw937ZtG7Vr1yYkJKQkYV/Snz9zwzDYuXOnq5C4adMmtm/fznvvvUdKSorrvJIsfb0Yf39/7rzzTu68804cDgdDhw7lzTffZPz48Vx++eXExsZe9L2AP94vERERcafleyIiItVMz549sVqtTJ48ucDMC8MwOHHiBOC8M57NZnN7vlWrVvj4+JCTk1MmseTPCLkwjl9++YVVq1aZ6i86Opo2bdrw3nvvuS3H+vbbbwvs21NYLPfccw+ffPIJmzdvLvD8sWPHLnn9kJAQTp8+XeK4K5LVaqVLly589tlnHDx40NW+c+dOvvrqq0u+/sorr6RRo0bMnDmzwFjzP8cLP4cLz9m8eTPffPMNt99+e5mM5ULvv/8+Z8+edR1//PHHHDp0yLVPVmHfNcMwmDVrVqmum58v+Xx8fFyFsPw8uf322/n111/dvtfnz59n3rx5xMXFXXK/MxEREW+lmVIiIiLVTHx8PM899xzPPPMMe/fu5a677iIsLIw9e/bw6aef8uijjzJq1Ci+//57hg0bRu/evUlISMBms7Fw4UJX8aYs3HHHHSxZsoS7776bbt26sWfPHubOnUvz5s05d+6cqT5feOEFunXrxnXXXcfDDz/MyZMnef3112nRosUl+3zxxRdZtmwZV199NYMGDaJ58+acPHmSdevW8d1333Hy5MkiX9+uXTu+++47Xn31VerXr0+jRo1cm5RXJpMmTeKbb76hQ4cODBkyBLvdzhtvvEHLli1Zv359ka/18fFhzpw53HnnnbRp04aHHnqI6Ohotm3bxm+//cbXX38NwMsvv8xtt91G+/bteeSRR8jKyuL1118nIiKCSZMmlfmYIiMjue6663jooYc4cuQIM2fO5PLLL2fQoEEANG3alPj4eEaNGsWBAwcIDw/nk08+KfU+TQMHDuTkyZPceOONxMTEsG/fPl5//XXatGnj2jNqzJgx/OMf/+C2227j8ccfJzIykvfee489e/bwySefFGuZoIiIiDdSUUpERKQaGjNmDAkJCcyYMYPJkycDzs21b7nlFrp37w5A69atufXWW/niiy84cOAAwcHBtG7dmq+++oprrrmmTOIYMGAAhw8f5s033+Trr7+mefPmfPDBB3z00UcsX77cVJ9du3blo48+Yty4cTzzzDPEx8czf/58/vnPf16yz3r16vHrr78yZcoUlixZwuzZs6lVqxYtWrTgpZdeuuS1X331VR599FHGjRtHVlYWDz74YKUsSrVr146vvvqKUaNGMX78eBo0aMCUKVPYunWra0lZUW699VaWLVvG5MmTmT59Og6Hg/j4eFcBCJx3Afz3v//NxIkTmTBhAn5+fnTs2JGXXnqJRo0alfmYnn32WTZu3MgLL7zA2bNnuemmm5g9ezbBwcEA+Pn58cUXX7j2RQsMDOTuu+9m2LBhtG7d2vR1+/Xrx7x585g9ezanT58mKiqKe++9l0mTJrmKTfXq1WPlypU8/fTTvP7662Rn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sFqthIWFubWVVNeuXZk/fz633HILjRs3pnv37owaNYolS4r32Yln5Rd1venuEyJlRfkjYp7yR8Q85Y+UWno6/P3vMGgQNGkCMTHQrx+89ZazIOXjA+3awRNPwOefw8mTsHYtvPoqdO9eZQtS4J3541VFKcMwOG87X6zHmbwzPJ76OAYFvwz5bcPXD+dM3plL9lUWX6gZM2bQoUMHUlNT6datG/379yclJYV+/fqxbt064uPjSUlJcV1r7dq19OnTh/vuu49NmzYxadIkxo8fz4IFC9z6nT59OklJSaSmpjJ06FCGDBnC7xeswQ0LC2PBggVs2bKFWbNm8dZbbzFjxgzX83379iUmJobVq1ezdu1axowZ47b0MDMzk1deeYWFCxfy448/kpaWxqhRo0r1XkybNo3Q0NAiH2lpaRd9fUZGhtfORhMREREREalU9u+HDz6AgQPh8suhQQNnEertt2HnTmcRKikJnnwSvvgCTpyANWtg+nS4806oUcPTI5BS8Krle5n2TEI/DS2TvgwM0rPSifgs4pLnHr75MKGU7rq33347jz32GAATJkxgzpw5JCcn07t3b8A5o6l9+/YcOXKEqKgoXn31VW666SbGjx8PQEJCAlu2bOHll19mwIABbv0OHTrU1ceMGTNYtmwZV1xxBQDjxo1znRsXF8eoUaNYtGgRTz31FABpaWmMHj2apk2bAtCkSRO3uPPy8pg7dy7x8fEADBs2jClTppTqvRg8eDB9+vQp8pz69esX2r5z505ef/11Ld0TERERERHxhP37ncvw8h+7d7s/7+MDV175x93xrrsOIi79/91SNXlVUcpTAgMDS91HYmKi68/16tUDoFWrVgXajh49SlRUFFu3bqVHjx5ufXTo0IGZM2dit9td61Mv7NdisRAVFcXRo0ddbR9++CGvvfYau3bt4ty5c9hsNsLDw13PP/HEEwwcOJCFCxfSpUsXevfu7SpAAQQHB7sdR0dHu/VvRmRkpKmZTgcOHKBr16707t27VPtUScWxWq00bdrUa9ZTi5Ql5Y+IecofEfOUP1JAWpp7EWrPHvfn85fj5RehOnTw2iKUN+aPVxWlgq3BnLv7XLHO/fHYj9z+39sved6/rvsXN9S54ZLXLe4m5xdz4ZK4/L4Kayvp/lV/vsufxWJx9bFq1Sr69u3L5MmTufXWW4mIiGDRokVu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mDZtGrNmzSIiIoJx48Zx8803s3HjRq+rVIuIiIhIJXT0KDz6KPzzn87j666D996Dxo09G5eISCl4VVGqJAyHgeEw8PEtfDKZj68PtiwbhsOokHgSL7iNa7169QDclqPltx09epSoqCi2bt1Kjz9N3+3QoQMzZ87Ebre71qhe2K/FYiEqKoqjR4+62j788ENee+01du3axblz57DZbISHh7uef+KJJxg4cCALFy6kS5cu9O7d21WAAggODnY7jo6OduvfjMjIyDLdd8vhcJCXl8drr73GLbfcAsA//vEPoqKiWLZsGbfeemuZXUtEREREpMQ+/xwGDXIWpvz84Lnn4MknwYv2nRGR6smrilIWi4XQ6NBinWvLsWHPs+Mb4IvVv+Bf9vZcO34hfoRdFnbJmVKZmZmmY8534ZK4/LvQFdbmcDhM95vfT34fq1atom/fvkyePJlbb72ViIgIFi1a5LY31aRJk3jggQdYunQpX331FRMnTmTRokXcfffdF+0/f4mhWdOmTWPatGlFnrNlyxYaNmxYrP6io6MBaN68uautTp061K5du0TLAEVEREREytTZszBypHOJHkCrVrBwIbRu7dm4RETKiFcVpeCP4s2l+AX6ERAe4Nrk/M/yMvMIrBmIX6BfIa92FxISUuI4S6tZs2asWLHCrW3FihUkJCQUeyf/lStXEhsby9ixY11t+/btK3BeQkICCQkJjBw5kvvvv5/58+e7ilLloayX73Xo0AGA33//nZiYGABOnjzJ8ePHiY2NNR+olJrVaiUpKcmr7j4hUlaUPyLmKX+kUvjvfyElxbmpucUCo0bB1KkQEODpyIqk/BExzxvzx+uKUiURHBmMLctG1qks/EP88fHzwZHnIPd8Lr6BvgRHBherH4fDUeI78JXWk08+SXJyMlOnTuXee+9l1apVvPHGG8yePbvYfTRp0oS0tDQWLVpEcnIyS5cu5dNPP3U9n5WVxejRo+nVqxeNGjUiPT2d1atXc88995THkFxKunwvLS2NkydPkpaWht1uZ/369QBcfvnlhIaGkpCQQI8ePRg+fDjz5s0jPDycZ555hqZNm9K5c+dyGoUUV25uLkFBQZ4OQ6RKUv6ImKf8EY/JyYGJE+Gvf3VubB4b69w7qmNHT0dWbMofEfO8LX+87u57JeEb6Ev4ZeEE1gzElmMjOyMbW46NwJqB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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(12, 6))\n", + "\n", + "for i, (threads_count, time_) in enumerate(result.items()):\n", + " alpha = 1\n", + " if threads_count > 8: \n", + " alpha = 0.1\n", + " \n", + " plt.plot(sample_sizes, time_, label=f'imohash T={threads_count}', marker='o', color=colors[i], alpha=alpha)\n", + "\n", + "# graphic configuration\n", + "plt.title(f'Files handle timing comparison')\n", + "plt.xlabel('Files count')\n", + "plt.ylabel('Execution time (seconds)')\n", + "plt.grid(True, linestyle='--', alpha=0.7)\n", + "plt.legend()\n", + "plt.tight_layout()\n", + " \n", + "# save graphic\n", + "plt.savefig(f'docs/_static/performance_comparison.svg', dpi=300)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "f5bcc73a", + "metadata": {}, + "source": [ + "## Additional analyze (time per operation)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "7d58a86e", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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aDQiPz8frVq1qvX4usZoabulc1J37AgAkC5cgEaSgF+rupbMVZIkh5pTU96nKpyTfedkNBpx9epVtGrVSvk/Dc4+J9F2zolzAiybk9FoxPXr19GqVasafTnrnOoao6XtnBPnBJiPvfq/L64yJ5F2zolzasycACh5qbrv7HNyxfeJc3KMOVX/9+X2x5xpTnX1VeN4oaMcRO/evfHNN9+YtX311VfKWVGenp7o2bOn2TFGoxHffPON2ZlTzs5oNOLChQtmFVKHEBEBeHoClZXATz/ZezREABw4L0QOiHkhEse8EIljXojEuVte7FqUunXrFg4fPozDhw8DALKysnD48GFkZ2cDAF544QWkpKQox0+aNAkXLlzAnDlzcOrUKbzxxhv44IMPMGPGDOWYmTNnYtOmTXjnnXdw8uRJTJ48GcXFxcrV+MiG1GogJsb0/blz9h0LERERERERETk0uy7fy8jIQL9+/ZT7M2fOBACMGzcOaWlpyMvLUwpUABAdHY3t27djxowZWLt2LSIiIvCPf/wDAwYMUI555JFHUFBQgAULFuDnn39G9+7d8eWXX9bY/JxspH174NQpU1HqtislEhERERERERFVaVRRSq/XY9euXTh//jwee+wxaLVa5ObmIiAgAP7+/sL99O3b12zTrdulpaXV+pzMzMx6+506dSqmTp0qPA5nI0kSAgMDm+WKhxbr0MH09exZ+46D6FcOnRciB8O8EIljXojEMS9E4twtLxYXpS5duoSBAwciOzsb5eXluP/++6HVavHKK6+gvLwcGzZssMU4qRq1Wo34+Hh7D6N27dubvnL5HjkIh84LkYNhXojEMS9E4pgXInHulheL95SaNm0aEhMTcePGDfj4+Cjtw4cPr7EJOdmG0WhETk6OY258xqIUORiHzguRg2FeiMQxL0TimBcice6WF4uLUt999x1efPFFeHp6mrVHRUXh8uXLVhsY1c2hP6RVRanz5wFHHB+5HYfOC5GDYV6IxDEvROKYFyJx7pYXi4tSRqMRBoOhRntOTg60Wq1VBkVOrF07QKMByssBFimJiIiIiIiIqA4WF6UeeOABrFmzRrkvSRJu3bqFhQsXYvDgwdYcGzkjjQaIiTF9z83OiYiIiIiIiKgOFhelVq1ahb1796Jz584oKyvDY489pizde+WVV2wxRrqNSqVCSEgIVCqL377m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jBci8xgvROYlWrxw+B4REREREREREYUde0oREREREREREVHYMSlFRERERERERERhx6QUERERERERERGFHZNSMej555/HgAED4HA4MHnyZHz66aeRrhJRr3riiScwadIkpKamIi8vD5deeil2794dUKapqQm33norsrOzkZKSgm9/+9soLy8PKHPw4EFcdNFFSEpKQl5eHu6++274fL6AMqWlpRg/fjzsdjuGDBmCV155pbebR9RrnnzySUiShAULFhjbGCtEzY4cOYLvfOc7yM7OhtPpxOmnn46NGzca+4UQeOCBB1BYWAin04mSkhJ8+eWXAec4ceIErrnmGqSlpSEjIwPf//73UV9fH1Bm27ZtmD59OhwOB/r27YunnnoqLO0j6imqquL+++/HwIED4XQ6MXjwYDz66KNoOT0x44US1ccff4xvfvObKCoqgiRJeOeddwL2hzM23nrrLYwYMQIOhwOnn3463n///R5vb48TFFNef/11YbPZxF/+8hexY8cOceONN4qMjAxRXl4e6aoR9Zrzzz9f/PWvfxXbt28XW7duFRdeeKHo16+fqK+vN8rcfPPNom/fvmLZsmVi48aN4qyzzhJTp0419vt8PjF69GhRUlIitmzZIt5//32Rk5Mj7r33XqPM/v37RVJSkrjjjjvEzp07xbPPPisURREffvhhWNtL1BM+/fRTMWDAADFmzBgxf/58YztjhUh34sQJ0b9/f3H99deL9evXi/3794uPPvpI7N271yjz5JNPivT0dPHOO++Izz77TFx88cVi4MCBwuVyGWW+8Y1viDPOOEN88sknYtWqVWLIkCHiqquuMvbX1NSI/Px8cc0114jt27eLf/7zn8LpdIqXXnoprO0l6o7HH39cZGdni/fee08cOHBAvPXWWyIlJUU888wzRhnGCyWq999/X9x3331i0aJFAoD497//HbA/XLGxZs0aoSiKeOqpp8TOnTvFL37xC2G1WsXnn3/e649BdzApFWPOPPNMceuttxo/q6oqioqKxBNPPBHBWhGFV0VFhQAgVq5cKYQQorq6WlitVvHWW28ZZb744gsBQKxbt04Iob9ZyLIsysrKjDIvvPCCSEtLE263WwghxD333CNGjRoVcK0rrrhCnH/++b3dJKIeVVdXJ57420gAAAzzSURBVIYOHSqWLFkiZsyYYSSlGCtEzX7605+Ks88+O+R+TdNEQUGB+PWvf21sq66uFna7Xfzzn/8UQgixc+dOAUBs2LDBKPPBBx8ISZLEkSNHhBBC/OEPfxCZmZlG/PivPXz48J5uElGvueiii8T3vve9gG1z584V11xzjRCC8ULk1zopFc7YuPzyy8VFF10UUJ/JkyeLH/7whz3axp7G4XsxxOPxYNOmTSgpKTG2ybKMkpISrFu3LoI1IwqvmpoaAEBWVhYAYNOmTfB6vQGxMWLECPTr18+IjXXr1uH0009Hfn6+Ueb8889HbW0tduzYYZRpeQ5/GcYXxZpbb70VF110UZvXM2OFqNl//vMfTJw4EZdddhny8vIwbtw4vPzyy8b+AwcOoKysLOC1np6ejsmTJwfES0ZGBiZOnGiUKSkpgSzLWL9+vVHmnHPOgc1mM8qcf/752L17N06ePNnbzSTqEVOnTsWyZcuwZ88eAMBnn32G1atX44ILLgDAeCEKJZyxEaufz5iUiiFVVVVQVTXgiwIA5Ofno6ysLEK1IgovTdOwYMECTJs2DaNHjwYAlJWVwWazISMjI6Bsy9goKysLGjv+fe2Vqa2thcvl6o3mEPW4119/HZs3b8YTTzzRZh9jhajZ/v378cILL2Do0KH46KOPcMstt+DHP/4xXn31VQDNr/f2PneVlZUhLy8vYL/FYkFWVlanYooo2v3sZz/DlVdeiREjRsBqtWLcuHFYsGABrrnmGgCMF6JQwhkbocpEe+xYIl0BIqLOuPXWW7F9+3asXr060lUhijqHDh3C/PnzsWTJEjgcjkhXhyiqaZqGiRMn4pe//CUAYNy4cdi+fTtefPFFXHfddRGuHVF0efPNN/GPf/wDr732GkaNGoWtW7diwYIFKCoqYrwQUbewp1QMycnJgaIobVZJKi8vR0FBQYRqRRQ+t912G9577z2sWLECxcXFxvaCggJ4PB5UV1cHlG8ZGwUFBUFjx7+vvTJpaWlwOp093RyiHrdp0yZUVFRg/PjxsFgssFgsWLlyJX7/+9/DYrEgPz+fsUJ0SmFhIU477bSAbSNHjsTBgwcBNL/e2/vcVVBQgIqKioD9Pp8PJ06c6FRMEUW7u+++2+gtdfrpp+O73/0ufvKTnxi9chkvRMGFMzZClYn22GFSKobYbDZMmDABy5YtM7ZpmoZly5ZhypQpEawZUe8SQuC2227Dv//9byxfvhwDBw4M2D9hwgRYrdaA2Ni9ezcOHjxoxMaUKVPw+eefB/zCX7JkCdLS0owvJVOmTAk4h78M44tixezZs/H5559j69atxm3ixIm45pprjPuMFSLdtGnTsHv37oBte/bsQf/+/QEAAwcOREFBQcBrvba2FuvXrw+Il+rqamzatMkos3z5cmiahsmTJxtlPv74Y3i9XqPMkiVLMHz4cGRmZvZa+4h6UmNjI2Q58KujoijQNA0A44UolHDGRsx+Pov0TOvUOa+//rqw2+3ilVdeETt37hQ33XSTyMjICFgliSje3HLLLSI9PV2UlpaKY8eOGbfGxkajzM033yz69esnli9fLjZu3CimTJkipkyZYuz3L3M/Z84csXXrVvHhhx+K3NzcoMvc33333eKLL74Qzz//PJe5p5jXcvU9IRgrRH6ffvqpsFgs4vHHHxdffvml+Mc//iGSkpLE3//+d6PMk08+KTIyMsS7774rtm3bJi655JKgy3iPGzdOrF+/XqxevVoMHTo0YBnv6upqkZ+fL7773e+K7du3i9dff10kJSVxiXuKKdddd53o06ePeO+998SBAwfEokWLRE5OjrjnnnuMMowXSlR1dXViy5YtYsuWLQKA+O1vfyu2bNkivv76ayFE+GJjzZo1wmKxiKefflp88cUX4sEHHxRWq1V8/vnn4XswuoBJqRj07LPPin79+gmbzSbOPPNM8cknn0S6SkS9CkDQ21//+lejjMvlEj/60Y9EZmamSEpKEt/61rfEsWPHAs7z1VdfiQsuuEA4nU6Rk5Mj7rzzTuH1egPKrFixQowdO1bYbDYxaNCggGsQxaLWSSnGClGz//73v2L06NHCbreLESNGiD/+8Y8B+zVNE/fff7/Iz88XdrtdzJ49W+zevTugzPHjx8VVV10lUlJSRFpamrjhhhtEXV1dQJnPPvtMnH322cJut4s+ffqIJ598stfbRtSTamtrxfz580W/fv2Ew+EQgwYNEvfdd1/A8vSMF0pUK1asCPpd5brrrhNChDc23nzzTTFs2DBhs9nEqFGjxP/+979ea3dPkYQQIjJ9tIiIiIiIiIiIKFFxTikiIiIiIiIiIgo7JqWIiIiIiIiIiCjsmJQiIiIiIiIiIqKwY1KKiIiIiIiIiIjCjkkpIiIiIiIiIiIKOyaliIiIiIiIiIgo7JiUIiIiIiIiIiKisGNSioiIiIiIiIiIwo5JKSIiIqJumjlzJhYsWGD8PGDAACxcuDBi9SEiIiKKBUxKEREREZlw/fXXQ5KkNre9e/di0aJFePTRRyNdxbB65ZVXkJGREelqEBERUQyzRLoCRERERLHiG9/4Bv76178GbMvNzYWiKBGqEREREVHsYk8pIiIiIpPsdjsKCgoCboqitBm+11p1dTV+8IMfIDc3F2lpaTj33HPx2WefGfs/++wzzJo1C6mpqUhLS8OECROwcePGds/3wx/+EPn5+XA4HBg9ejTee+89Y/+//vUvjBo1Cna7HQMGDMBvfvObgOMlScI777wTsC0jIwOvvPIKAOCrr76CJElYtGgRZs2ahaSkJJxxxhlYt24dAKC0tBQ33HADampqjB5jDz30kLkHkYiIiOgU9pQiIiIi6mWXXXYZnE4nPvjgA6Snp+Oll17C7NmzsWfPHmRlZeGaa67BuHHj8MILL0BRFGzduhVWqzXouTRNwwUXXIC6ujr8/e9/x+DBg7Fz506jt9amTZtw+eWX46GHHsIVV1yBtWvX4kc/+hGys7Nx/fXXd6re9913H55++mkMHToU9913H6666irs3bsXU6dOxcKFC/HAAw9g9+7dAICUlJRuPUZERESUeJiUIiIiIjLpvffeC0i+XHDBBXjrrbfaPWb16tX49NNPUVFRAbvdDgB4+umn8c477+Dtt9/GTTfdhIMHD+Luu+/GiBEjAABDhw4Neb6lS5fi008/xRdffIFhw4YBAAYNGmTs/+1vf4vZs2fj/vvvBwAMGzYMO3fuxK9//etOJ6XuuusuXHTRRQCAhx9+GKNGjcLevXsxYsQIpKenQ5IkFBQUdOqcRERERH5MShERERGZNGvWLLzwwgvGz8nJyR0e89lnn6G+vh7Z2dkB210uF/bt2wcAuOOOO/CDH/wA/+///T+UlJTgsssuw+DBg4Oeb+vWrSguLjYSUq198cUXuOSSSwK2TZs2DQsXLoSqqp2a/2rMmDHG/cLCQgBARUWFkTwjIiIi6g4mpYiIiIhMSk5OxpAhQzp1TH19PQoLC1FaWtpmn3/1uoceeghXX301/ve//+GDDz7Agw8+iNdffx3f+ta32hzjdDq7UvUAkiRBCBGwzev1tinXcgihJEkA9OGDRERERD2BSSkiIiKiXjR+/HiUlZXBYrFgwIABIcsNGzYMw4YNw09+8hNcddVV+Otf/xo0KTVmzBgcPnwYe/bsCdpbauTIkVizZk3AtjVr1mDYsGFGL6nc3FwcO3bM2P/ll1+isbGxU+2y2WxQVbVTxxARERG1xNX3iIiIiHpRSUkJpkyZgksvvRSLFy/GV199hbVr1+K+++7Dxo0b4XK5cNttt6G0tBRff/011qxZgw0bNmDkyJFBzzdjxgycc845+Pa3v40lS5bgwIED+OCDD/Dhhx8CAO68804sW7YMjz76KPbs2YNXX30Vzz33HO666y7jHOeeey6ee+45bNmyBRs3bsTNN98ccmL1UAYMGID6+nosW7YMVVVVnU5qERERETEpRURERNSLJEnC+++/j3POOQc33HADhg0bhiuvvBJff/018vPzoSgKjh8/jmuvvRbDhg3D5ZdfjgsuuAAPP/xwyHP+61//wqRJk3DVVVfhtNNOwz333GP0Who/fjzefPNNvP766xg9ejQeeOABPPLIIwGTnP/mN79B3759MX36dFx99dW46667kJSU1Kl2TZ06FTfffDOuuOIK5Obm4qmnnurS40NERESJSxKtJxQgIiIiIiIiIiLqZewpRUREREREREREYcekFBERERERERERhR2TUkREREREREREFHZMShERERERERERUdgxKUVERERERERERGHHpBQREREREREREYUdk1JERERERERERBR2TEoREREREREREVHYMSlFRERERERERERhx6QUERERERERERGFHZNSREREREREREQUdkxKERERERERERFR2P1/Hkjk1ipmx4AAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(12, 6))\n", + "for i, (threads_count, time_) in enumerate(result.items()):\n", + " # Calculate time per one operation (file)\n", + " time_per_op = np.array(time_) / np.array(sample_sizes)\n", + "\n", + " alpha = 1\n", + " if threads_count > 8: \n", + " alpha = 0.1\n", + " \n", + " plt.plot(sample_sizes, time_per_op * 1000, label=f'imohash T={threads_count}', marker='o', color=colors[i], alpha=alpha)\n", + "\n", + "plt.title(f'Time to handle one file')\n", + "plt.xlabel('Files count')\n", + "plt.ylabel('Time per file (ms)')\n", + "plt.grid(True, linestyle='--', alpha=0.7)\n", + "plt.legend()\n", + "plt.tight_layout()\n", + "plt.savefig(f'docs/_static/time_per_operation.svg', dpi=300)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "a33345bc", + "metadata": {}, + "source": [ + "## Cleanup test files (optional)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bede087b", + "metadata": {}, + "outputs": [], + "source": [ + "# Remove test files\n", + "import shutil\n", + "shutil.rmtree('/tmp/imohash-test')" + ] + } + ], + "metadata": { + "jupytext": { + "cell_metadata_filter": "-all", + "main_language": "python", + "notebook_metadata_filter": "-all" + }, + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.5" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/docs/benchmark.md b/docs/benchmark.md new file mode 100644 index 0000000..57e5653 --- /dev/null +++ b/docs/benchmark.md @@ -0,0 +1,32 @@ +# Benchmark + +Performance measure is written in Python using Jupyter Notebook with `matplotlib` and `numpy` libraries. + +## Setup + +```sh +# initialize python environment +python3 -m venv ./venv + +# activate virtual environment +source ./venv/bin/activate + +# install dependencies +python3 -m pip install -f requirements-bench.lock + +# launch web-application to modify & run file interactively +jupyter notebook ./bench.ipynb +``` + +## Results + +See [bench.ipynb](bench.ipynb) for details: + +[![performance comparison graphic](_static/performance_comparison.svg)](_static/performance_comparison.svg) + +[![performance comparison / time per operation graphic](_static/time_per_operation.svg)](_static/time_per_operation.svg) + +Graphics analyze reveals: + +1. optimal number of threads is equals to: `(number of process cores)` OR `(number of process cores) * 2` +2. multithreading increases processing performance up to 8-10x times \ No newline at end of file diff --git a/docs/requirements-bench.lock b/docs/requirements-bench.lock new file mode 100644 index 0000000..0bab2cd --- /dev/null +++ b/docs/requirements-bench.lock @@ -0,0 +1,2 @@ +matplotlib==3.10.1 +jupyter==1.0.0 diff --git a/docs/requirements-bench.txt b/docs/requirements-bench.txt new file mode 100644 index 0000000..f00b7b8 --- /dev/null +++ b/docs/requirements-bench.txt @@ -0,0 +1,2 @@ +matplotlib >= 3.10.1 +jupyter >= 1.0.0 diff --git a/src/main.rs b/src/main.rs new file mode 100644 index 0000000..eb09f21 --- /dev/null +++ b/src/main.rs @@ -0,0 +1,259 @@ +use clap::{value_parser, Arg, ArgAction, ArgMatches, Command}; +use hex; +use imohash; +use imohash::{Hasher, SAMPLE_SIZE, SAMPLE_THRESHOLD}; +use std::io::{self, Write}; +use std::path::{Path, PathBuf}; +use std::sync::Arc; +use std::thread; +use std::thread::JoinHandle; + +/// Hashes a set of files, returns a channel +/// +/// # Examples +/// +/// ```rust +/// use std::path::PathBuf; +/// let receiver = imohash::sum_files(vec![ +/// PathBuf::from("/bin/cp"), +/// PathBuf::from("/bin/mv"), +/// PathBuf::from("/bin/rm"), +/// ], None, None, None); +/// loop { +/// let hash_result = receiver.recv(); +/// match hash_result { +/// // Since sender is not dropping explicitly, RecvError will occur, when no any Sender +/// Err(std::sync::mpsc::RecvError) => break, +/// Ok(hash_result) => { +/// let (hash, file_path) = hash_result; +/// println!("{} {}", hash, file_path) +/// } +/// } +/// } +/// ``` +pub fn sum_files>( + file_paths: Vec

, + sample_size: Option, // for forward-compatibility purpose + sample_threshold: Option, // for forward-compatibility purpose + threads_count: Option, +) -> std::sync::mpsc::Receiver<(u128, PathBuf)> { + let sample_size = sample_size.unwrap_or(SAMPLE_SIZE); + let sample_threshold = sample_threshold.unwrap_or(SAMPLE_THRESHOLD); + let threads_count = threads_count.unwrap_or_else(|| { + (thread::available_parallelism().unwrap().get() * 2) as u8 // two threads per core + }) as usize; + assert!(threads_count > 0); + + // todo remove after split Hasher into functions + let hasher = Arc::new(Hasher::with_sample_size_and_threshold( + sample_size, + sample_threshold, + )); + + let (sender, receiver): ( + std::sync::mpsc::Sender<(u128, PathBuf)>, + std::sync::mpsc::Receiver<(u128, PathBuf)>, + ) = std::sync::mpsc::channel(); + let sender = Arc::new(sender); + + let mut threads: Vec> = Vec::with_capacity(threads_count); + let chunk_size = (file_paths.len() + threads_count - 1) / threads_count; + + for file_paths_chunk in file_paths.chunks(chunk_size) { + let shared_hasher = Arc::clone(&hasher); // todo remove after split `Hasher` into functions + let shared_sender = Arc::clone(&sender); + let file_path_list: Vec = file_paths_chunk + .into_iter() + .map(|path| path.as_ref().to_path_buf()) + .collect(); + + let handle = thread::spawn(move || { + for file_path in file_path_list { + let hash = shared_hasher.sum_file(&file_path); + match hash { + Err(_) => continue, // Path is directory + Ok(hash) => shared_sender.send((hash, file_path)).unwrap(), + } + } + }); + + threads.push(handle); + } + + receiver +} + +#[derive(Debug)] +pub struct Config { + pub sample_threshold: u32, + pub sample_size: u32, + pub format: String, + pub interactive: bool, + pub file_paths: Vec, + pub threads: u8, +} + +impl Config { + pub fn from_args(args: Vec) -> Result { + let command: Command = create_cli_parser(); + let matches: ArgMatches = command.get_matches_from(&args); + + let sample_threshold: u32 = matches.get_one::("sample_threshold").unwrap().clone(); + let sample_size: u32 = matches.get_one::("sample_size").unwrap().clone(); + let threads: u8 = matches.get_one::("threads").unwrap().clone(); + let format: String = matches.get_one::("format").unwrap().clone(); + let interactive: bool = matches.get_flag("interactive"); + let file_paths: Vec = matches + .get_many::("file_path") + .map(|v| v.cloned().collect()) + .unwrap_or_default(); + + Ok(Self { + sample_threshold, + sample_size, + format, + interactive, + file_paths, + threads, + }) + } +} + +fn run_interactive(sample_size: u32, sample_threshold: u32, format: String) { + // todo remove after split Hasher into functions + let imohash = imohash::Hasher::with_sample_size_and_threshold(sample_size, sample_threshold); + + println!("Running in interactive mode (format: {})", format); + loop { + print!("> "); + io::stdout().flush().unwrap(); + + let mut input = String::new(); + match io::stdin().read_line(&mut input) { + Ok(0) => break, // EOF (Ctrl+D) + Ok(_) => { + let data = input.trim().as_bytes(); + let hash = imohash.sum(data); + println!("{}", format_hash(hash.unwrap(), &*format)); + } + Err(e) if e.kind() == io::ErrorKind::Interrupted => break, // Ctrl+C + Err(e) => { + eprintln!("Input error: {}", e); + break; + } + } + } +} + +fn run_sum_files( + file_paths: Vec, + sample_size: u32, + sample_threshold: u32, + format: String, + threads_count: Option, +) { + let receiver = sum_files( + file_paths, + Some(sample_size), + Some(sample_threshold), + threads_count, + ); + + loop { + let hash_result = receiver.recv(); + match hash_result { + // Since sender is not dropping explicitly, RecvError will occur, when no any Sender + Err(std::sync::mpsc::RecvError) => break, + Ok(hash_result) => { + let (hash, file_path) = hash_result; + println!( + "{} {}", + format_hash(hash, &format), + file_path.to_str().unwrap() + ) + } + } + } +} + +fn format_hash(hash: u128, format: &str) -> String { + match format { + "int" => format!("{:?}", hash), + "bytes" => format!("{:?}", hash.to_le_bytes()), + "hex" => hex::encode(hash.to_le_bytes()), + _ => panic!("Unknown format: {}", format), + } +} + +fn create_cli_parser() -> Command { + Command::new("imohash") + .about("imohash is a sample application to hash files, similar to md5sum.") + .arg( + Arg::new("sample_threshold") + .short('t') + .long("sample-threshold") + .help("Sample threshold value") + .default_value("131072") // see `imohash::SAMPLE_THRESHOLD` + .value_parser(value_parser!(u32)) + ) + .arg( + Arg::new("sample_size") + .short('s') + .long("sample-size") + .help("Sample size value. The entire file will be hashed (i.e. no sampling), if sample_size < 1.") + .default_value("16384") // see `imohash::SAMPLE_SIZE` + .value_parser(value_parser!(u32)) + ) + .arg( + Arg::new("threads") + .long("threads") + .help("Count of threads to compute files sum in") + .default_value("4") + .requires("file_path") + .value_parser(value_parser!(u8)) + ) + .arg( + Arg::new("format") + .short('f') + .long("format") + .help("Hash representation format") + .value_parser(["int", "bytes", "hex"]) + .default_value("hex") + ) + .arg( + Arg::new("interactive") + .short('i') + .long("interactive") + .help("Interactive hash computation mode. Conflicts with [file_path]... argument.") + .action(ArgAction::SetTrue) + .conflicts_with("file_path") + .conflicts_with("threads") + ) + .arg( + Arg::new("file_path") + .help("File paths to compute hash of. Conflict with `-i/--interactive` argument.") + .value_parser(value_parser!(PathBuf)) + .action(ArgAction::Append) + .num_args(0..) + ) +} + +fn main() -> Result<(), Box> { + let args: Vec = std::env::args().collect(); + let config = Config::from_args(args)?; + + if config.file_paths.is_empty() { + run_interactive(config.sample_threshold, config.sample_size, config.format); + return Ok(()); + } + + run_sum_files( + config.file_paths, + config.sample_threshold, + config.sample_size, + config.format, + Some(config.threads), + ); + + Ok(()) +} From e8dfe5acf1f41df640e3844d0cef30fd94061e88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B8=D1=85=D0=B0=D0=B8=D0=BB=20=D0=94=D1=80=D0=B0?= =?UTF-8?q?=D0=B3=D1=83=D0=BD=D0=BA=D0=B8=D0=BD?= Date: Thu, 1 May 2025 17:56:26 +0300 Subject: [PATCH 2/3] documentation: add basic and advanced usage examples --- CHANGELOG.md | 1 + README.md | 90 ++++++++++++++++++++++++++++++++++++++++++++ src/lib.rs | 104 +++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 195 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index accbfeb..b5a876a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,3 +12,4 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - [x] feature: allow only regular file for hashing with `sum_file` - [x] enhancement: add additional entropy to filename to fix race condition issue on parallel tests launch - [x] feature: implement CLI application +- [x] documentation: add basic and advanced usage examples \ No newline at end of file diff --git a/README.md b/README.md index 3878442..ba16e07 100644 --- a/README.md +++ b/README.md @@ -29,6 +29,96 @@ let hash_value = hasher.sum("hello".as_bytes()).unwrap(); let hash_value = hasher.sum_file("samples/system.evtx").unwrap(); ``` +

+ Advanced asynchronous usage example + +```rust +use std::sync::Arc; +use std::thread; +use std::thread::JoinHandle; +use std::path::{Path, PathBuf}; +use imohash; + +pub fn sum_files>( + file_paths: Vec

, + sample_size: Option, + sample_threshold: Option, + threads_count: Option, +) -> std::sync::mpsc::Receiver<(u128, PathBuf)> { + let sample_size = sample_size.unwrap_or(imohash::SAMPLE_SIZE); + let sample_threshold = sample_threshold.unwrap_or(imohash::SAMPLE_THRESHOLD); + let threads_count = threads_count.unwrap_or_else(|| { + (thread::available_parallelism().unwrap().get() * 2) as u8 // two threads per core + }) as usize; + assert!(threads_count > 0); + + let hasher = Arc::new(imohash::Hasher::with_sample_size_and_threshold( + sample_size, + sample_threshold, + )); + + let (sender, receiver): ( + std::sync::mpsc::Sender<(u128, PathBuf)>, + std::sync::mpsc::Receiver<(u128, PathBuf)>, + ) = std::sync::mpsc::channel(); + let sender = Arc::new(sender); + + let mut threads: Vec> = Vec::with_capacity(threads_count); + let chunk_size = (file_paths.len() + threads_count - 1) / threads_count; + + for file_paths_chunk in file_paths.chunks(chunk_size) { + let shared_hasher = Arc::clone(&hasher); + let shared_sender = Arc::clone(&sender); + let file_path_list: Vec = file_paths_chunk + .into_iter() + .map(|path| path.as_ref().to_path_buf()) + .collect(); + + let handle = thread::spawn(move || { + for file_path in file_path_list { + let hash = shared_hasher.sum_file(&file_path); + match hash { + Err(_) => continue, // Path is directory + Ok(hash) => shared_sender.send((hash, file_path)).unwrap(), + } + } + }); + + threads.push(handle); + } + + receiver +} + +fn main() { + let receiver: std::sync::mpsc::Receiver<(u128, PathBuf)> = sum_files( + vec![ + PathBuf::from("/bin/cp"), + PathBuf::from("/bin/mv"), + PathBuf::from("/bin/rm"), + // ... + ], // file_paths + None, // sample_size + None, // sample_threshold + None // threads_count + ); + + loop { + let hash_result: Result<(u128, PathBuf), std::sync::mpsc::RecvError> = receiver.recv(); + match hash_result { + // Since sender is not dropping explicitly, RecvError will occur, when no any Sender + Err(std::sync::mpsc::RecvError) => break, + Ok(hash_result) => { + let (hash, file_path) = hash_result; + println!("{} {}", hash, file_path.as_path().to_str().unwrap()) + } + } + } +} +``` + +

+ ### CLI application Component provides a CLI sample application to hash files, similar to md5sum. diff --git a/src/lib.rs b/src/lib.rs index e4a8c70..d54a9ab 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,6 +1,110 @@ //! Fast hashing for large files. //! //! It is based atop murmurhash3 and uses file size and sample data to construct the hash. +//! +//! # Examples +//! +//! Basic synchronous usage: +//! +//! ```rust +//! use imohash::Hasher; +//! +//! // Creates a new hasher using default sample parameters +//! let hasher = Hasher::new(); +//! //or creates with custom sample parameters +//! let hasher = Hasher::with_sample_size_and_threshold(3, 45); +//! +//! // Hashes a byte slice +//! let hash_value = hasher.sum("hello".as_bytes()).unwrap(); +//! +//! // Hashes a file +//! let hash_value = hasher.sum_file("samples/system.evtx").unwrap(); +//! ``` +//! +//! Advanced asynchronous usage: +//! +//! ```rust +//! use std::sync::Arc; +//! use std::thread; +//! use std::thread::JoinHandle; +//! use std::path::{Path, PathBuf}; +//! +//! pub fn sum_files>( +//! file_paths: Vec

, +//! sample_size: Option, +//! sample_threshold: Option, +//! threads_count: Option, +//! ) -> std::sync::mpsc::Receiver<(u128, PathBuf)> { +//! let sample_size = sample_size.unwrap_or(imohash::SAMPLE_SIZE); +//! let sample_threshold = sample_threshold.unwrap_or(imohash::SAMPLE_THRESHOLD); +//! let threads_count = threads_count.unwrap_or_else(|| { +//! (thread::available_parallelism().unwrap().get() * 2) as u8 // two threads per core +//! }) as usize; +//! assert!(threads_count > 0); +//! +//! let hasher = Arc::new(imohash::Hasher::with_sample_size_and_threshold( +//! sample_size, +//! sample_threshold, +//! )); +//! +//! let (sender, receiver): ( +//! std::sync::mpsc::Sender<(u128, PathBuf)>, +//! std::sync::mpsc::Receiver<(u128, PathBuf)>, +//! ) = std::sync::mpsc::channel(); +//! let sender = Arc::new(sender); +//! +//! let mut threads: Vec> = Vec::with_capacity(threads_count); +//! let chunk_size = (file_paths.len() + threads_count - 1) / threads_count; +//! +//! for file_paths_chunk in file_paths.chunks(chunk_size) { +//! let shared_hasher = Arc::clone(&hasher); +//! let shared_sender = Arc::clone(&sender); +//! let file_path_list: Vec = file_paths_chunk +//! .into_iter() +//! .map(|path| path.as_ref().to_path_buf()) +//! .collect(); +//! +//! let handle = thread::spawn(move || { +//! for file_path in file_path_list { +//! let hash = shared_hasher.sum_file(&file_path); +//! match hash { +//! Err(_) => continue, // Path is directory +//! Ok(hash) => shared_sender.send((hash, file_path)).unwrap(), +//! } +//! } +//! }); +//! +//! threads.push(handle); +//! } +//! +//! receiver +//! } +//! +//! fn main() { +//! let receiver: std::sync::mpsc::Receiver<(u128, PathBuf)> = sum_files( +//! vec![ +//! PathBuf::from("/bin/cp"), +//! PathBuf::from("/bin/mv"), +//! PathBuf::from("/bin/rm"), +//! ], // file_paths +//! None, // sample_size +//! None, // sample_threshold +//! None // threads_count +//! ); +//! +//! loop { +//! let hash_result: Result<(u128, PathBuf), std::sync::mpsc::RecvError> = receiver.recv(); +//! match hash_result { +//! // Since sender is not dropping explicitly, RecvError will occur, when no any Sender +//! Err(std::sync::mpsc::RecvError) => break, +//! Ok(hash_result) => { +//! let (hash, file_path) = hash_result; +//! println!("{} {}", hash, file_path.as_path().to_str().unwrap()) +//! } +//! } +//! } +//! } +//! ``` use std::fs::File; use std::io::{BufReader, Cursor, Error, Read, Result, Seek, SeekFrom}; From 9aca5fbcbf0375b915ade01d574411b02f5f4064 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B8=D1=85=D0=B0=D0=B8=D0=BB=20=D0=94=D1=80=D0=B0?= =?UTF-8?q?=D0=B3=D1=83=D0=BD=D0=BA=D0=B8=D0=BD?= Date: Thu, 1 May 2025 18:46:33 +0300 Subject: [PATCH 3/3] enhancement: add CI workflow run on pull request in `main` branch --- .github/workflows/ci.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index b402aa7..8782fdb 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -2,6 +2,9 @@ name: CI on: push: ~ + pull_request: + branches: + - main concurrency: group: ${{ github.ref }}-${{ github.workflow }}