{"id":22339078,"url":"https://github.com/lai-kevin/malloc","last_synced_at":"2025-09-03T04:34:12.405Z","repository":{"id":175943888,"uuid":"654753606","full_name":"lai-kevin/Malloc","owner":"lai-kevin","description":"A x86-64 dynamic memory allocator written in C. Completed as part of a homework assignment. Utilizes segregated free lists and \"quick lists\" to improve time complexity. Immediately coalesces large blocks with adjacent free blocks on free, splits without splinters, and omits block footer to improve space efficiency.","archived":false,"fork":false,"pushed_at":"2024-01-07T07:37:26.000Z","size":17,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-26T08:48:10.416Z","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/lai-kevin.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":"2023-06-16T21:44:50.000Z","updated_at":"2023-12-07T00:11:24.000Z","dependencies_parsed_at":null,"dependency_job_id":"5dd79dd0-622e-4e38-8801-c079b251d2ca","html_url":"https://github.com/lai-kevin/Malloc","commit_stats":null,"previous_names":["lai-kevin/memory-allocator","lai-kevin/malloc"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/lai-kevin/Malloc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lai-kevin%2FMalloc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lai-kevin%2FMalloc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lai-kevin%2FMalloc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lai-kevin%2FMalloc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lai-kevin","download_url":"https://codeload.github.com/lai-kevin/Malloc/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lai-kevin%2FMalloc/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273392117,"owners_count":25097255,"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","status":"online","status_checked_at":"2025-09-03T02:00:09.631Z","response_time":76,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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-12-04T07:06:58.329Z","updated_at":"2025-09-03T04:34:12.350Z","avatar_url":"https://github.com/lai-kevin.png","language":"C","readme":"# x86-64 Dynamic Memory Allocator\n\n## Overview\n\nThis is a dynamic memory allocator implemented in C for x86-64 architecture. The allocator employs segregated free lists and \"quick lists\" to improve time complexity, and it features immediate coalescing of large blocks with adjacent free blocks on free operations. Additionally, the allocator ensures that blocks are split without generating splinters and omits block footers to improve space efficiency.\n\n## Features\n\n- Segregated free lists for different block sizes to enhance allocation efficiency.\n- Utilization of \"quick lists\" to further optimize memory allocation times.\n- Immediate coalescing of large blocks with adjacent free blocks on free operations.\n- Splitting of blocks without generating splinters to prevent wasted memory.\n- Omission of block footers for improved space efficiency.\n\n### Segregated Free Lists\n\nThe allocator maintains separate free lists for different block sizes, allowing for more efficient allocation by reducing fragmentation.\n\n### Quick Lists\n\n\"Quick lists\" are utilized to speed up the allocation process for frequently requested block sizes.\n\n### Immediate Coalescing\n\nLarge blocks are immediately coalesced with adjacent free blocks upon freeing to prevent fragmentation.\n\n### Block Splitting Without Splinters\n\nBlocks are split without generating splinters, ensuring that the allocator efficiently uses memory.\n\n### Omitted Block Footers\n\nBlock footers are omitted to save space and improve overall space efficiency.\n\n## Usage\n\nTo use the allocator, include the provided header file and link with the compiled library:\n\n```c\n#include \"sfmm.h\"\n\nint main() {\n    // Your code using the allocator\n    // ...\n    \n    return 0;\n}\n```\n\nAn example main.c file is included in the src folder\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flai-kevin%2Fmalloc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flai-kevin%2Fmalloc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flai-kevin%2Fmalloc/lists"}