2010-10-13 25 views
14

Tôi tìm kiếm một số (tùy chỉnh) quản lý bộ nhớ/cấp phát bằng văn bản trong c và đã trải qua một số bài viết, -Tùy chỉnh bộ nhớ cấp phát/quản lý trong C? cách tiếp cận nào?

Một số Links:

tôi phải sandbox một web-server nhỏ sử dụng bất kỳ một trong có sẵn và tôi không có vấn đề bằng văn bản giấy gói cho chương trình xử lý chủ đề/phân bổ. Apache WS sử dụng các nhóm bộ nhớ để xử lý bộ nhớ và các vùng lưu trữ không liên tục, nó là cơ sở theo yêu cầu. Các bạn có thể gợi ý điều gì không? Một số cách tiếp cận tốt/tốt nhất cho vấn đề này? Yêu cầu của tôi là như sau; -

  1. (Bounded Thời gian phản hồi) phân bổ và de-phân bổ đã được biết trước, tức là một số liên tục chi phí O (c), trong đó c là liên tục.

  2. Phân mảnh từ kích thước phân bổ/de-phân bổ không đồng nhất hoặc chuỗi cần được xử lý, tôi có thể viết schema/wrapper để cung cấp giống nhau.

Thật sự đánh giá cao sự trợ giúp và ý tưởng của bạn!

+0

Tôi đang tìm một cái gì đó tương tự và tôi đã kiểm tra trang web của IBM nhưng những gì họ hiển thị là 'malloc_init' là dành cho unix và thư viện được bao gồm không có trong cửa sổ. Tôi đặc biệt tìm kiếm một hàm để sử dụng 'sbrk()' - tìm địa chỉ hợp lệ cuối cùng từ hệ điều hành. – frank17

Trả lời

2

Phân mảnh từ kích thước phân bổ/de-phân bổ không đồng nhất hoặc chuỗi cần được xử lý, tôi có thể viết schema/wrapper để cung cấp giống nhau.

Để tránh phân mảnh, bạn sẽ phải sử dụng chiến lược phân bổ khối lai. Sự kết hợp ở đây có nghĩa là các khối phần tử có kích thước khác với các khối phần tử có kích thước đơn, tức là bộ cấp phát (hoặc một bao bọc xung quanh nó) sẽ duy trì các khối có kích thước khác nhau (nhỏ, vừa và lớn, vv). Tất cả các yêu cầu phân bổ phải được làm tròn đến ranh giới khối gần nhất. Chiến lược này sẽ đảm bảo bạn sẽ không bị phân mảnh bên ngoài nhưng có thể gây ra phân mảnh nội bộ. Bạn có thể tìm thêm thông tin tại các liên kết sau đây:

http://www.cotsjournalonline.com/magazine/articles/view/101217/pg:2 http://people.freebsd.org/~jasone/jemalloc/bsdcan2006/jemalloc.pdf

1

Chỉ cần thêm một thêm vào danh sách của bạn

Google Performance Tools

Nó cải thiện hiệu suất phân bổ bộ nhớ đáng kể và nó có cấu hình CPU và bộ nhớ. Triển khai Thread-Caching Malloc của chúng có nghĩa là khá hiệu quả đối với các ứng dụng đa luồng.

+0

Cảm ơn! Nó trông có vẻ rất tốt. Nhưng một nghi ngờ, tôi có thể sai, bởi vì bộ sưu tập rác, nó sẽ trở thành phi thời gian thực, tôi có nghĩa là không có "Thời gian đáp ứng bị ràng buộc"? – yadab

Các vấn đề liên quan