{"id":15565389,"url":"https://github.com/dkurt/memory_manager","last_synced_at":"2025-04-03T06:45:55.013Z","repository":{"id":129100253,"uuid":"100112842","full_name":"dkurt/memory_manager","owner":"dkurt","description":"Experiments with different memory management models","archived":false,"fork":false,"pushed_at":"2017-08-24T11:25:23.000Z","size":8,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-02-08T20:32:34.695Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dkurt.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-08-12T13:05:00.000Z","updated_at":"2018-11-18T16:42:11.000Z","dependencies_parsed_at":"2023-04-13T10:31:34.423Z","dependency_job_id":null,"html_url":"https://github.com/dkurt/memory_manager","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dkurt%2Fmemory_manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dkurt%2Fmemory_manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dkurt%2Fmemory_manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dkurt%2Fmemory_manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dkurt","download_url":"https://codeload.github.com/dkurt/memory_manager/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246952273,"owners_count":20859811,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-02T16:55:35.818Z","updated_at":"2025-04-03T06:45:54.994Z","avatar_url":"https://github.com/dkurt.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Memory managers\nExperiments with different memory management models that solve problem with\nmemory distribution between users in time.\n\n## Problem\n\nEvery user requires some piece of memory in known period of deterministic\ntime. After it, this memory might be reused by other users. Memory management\nmodel produces pointers to beginnings of memory blocks for every user in some\ncontinuous pre-allocated memory space.\n\n## Example\n\n| User ID | Memory usage (bytes) | Interval (iterations) |\n|--------:|---------------------:|----------------------:|\n|       0 |                    2 |                [3, 5] |\n|       1 |                    1 |                [1, 4] |\n|       2 |                    3 |                [5, 8] |\n\nIt's easier to represent cases as tables where users by rows, iterations by\ncolumns and values are number of bytes:\n\n```\n iter | 1 2 3 4 5 6 7 8\n------+----------------\nUser1 | 0 0 2 2 2 0 0 0\nUser2 | 1 1 1 1 0 0 0 0\nUser3 | 0 0 0 0 3 3 3 3\n```\n\n## Quality metrics and models comparison\nMemory management model is correct if:\n\n* Maximal memory usage is less or equal than sum of all memory sizes required by\nusers. Otherwise we can just allocate memory separately.\n* On every iteration memory blocks are used by users don't intersect.\n\n|                 Model code name |     Ratio |\n|--------------------------------:|----------:|\n|                 Reuse or create |      0.67 |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdkurt%2Fmemory_manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdkurt%2Fmemory_manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdkurt%2Fmemory_manager/lists"}