2010-11-19 34 views
6

Tôi hiện đang cố viết biểu đồ cảnh 2D trong C và tôi cần quyết định cách lưu trữ các nút con. Tôi đang mong đợi rất nhiều lần đọc và viết ít, do đó, một danh sách liên kết là ra khỏi câu hỏi do không gian địa phương nghèo tham khảo, và sử dụng realloc mỗi lần để thêm một nút con có thể phân mảnh danh sách miễn phí vào quên lãng. Một phân bổ hồ bơi có vẻ là giải pháp tốt nhất, nhưng tôi dường như không thể tìm thấy bất kỳ triển khai nào để sử dụng. Có ai biết của một cấp phát có hiệu quả sẽ xử lý phân bổ ngẫu nhiên-ish và deallocations của một vài trăm nhỏ struct s, hoặc có lẽ một chương trình phân bổ tốt hơn?Cấp phát hồ bơi C hiệu quả?

Trả lời

4

Tôi đang chuẩn bị để triển khai TLSF như một cấp phát thời gian thực. Tôi đã không có cơ hội để hồ sơ hiệu suất của nó được nêu ra, nhưng nó có vẻ làm việc, và license là đúng.

Theo tài liệu của họ, các thao tác của nó thực thi "tối đa 168 lệnh xử lý trong kiến ​​trúc x86". Nó xuất hiện dưới dạng một tệp .c duy nhất, được biên dịch mà không có sửa đổi trên hệ thống của tôi.

+0

liên kết bị hỏng – CAFxX

+0

@CAFxX - Xấu hổ. Google tìm thấy tôi một số trang web thay thế, nhưng dường như không có trang nào chính thức. Hy vọng rằng điều đó sẽ thay đổi. –

+0

Yay! Cảm ơn bạn đã sửa lỗi, @Electro. Cung cấp cho bạn một upvote bán ngẫu nhiên. Phấn một chiến thắng khác cho kiến ​​thức có nguồn gốc từ đám đông. –

2

Hãy nhìn vào Halloc, nó có thể giúp ích một chút.

http://swapped.cc/halloc/

+0

'halloc' trông thú vị, nhưng nó vẫn hoạt động trên đầu' malloc', do đó, vấn đề phân mảnh vẫn còn, mặc dù tôi đoán nó có thể chứng minh hữu ích như là một điểm khởi đầu cho một phân bổ hồ bơi. – Electro

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