RepositoryRust
SE

servo/rust-smallvec

'Small vector' optimization for Rust: store up to a small number of items on the stack

1.8kstars
235forks
17issues
0views

📦 SmallVec: Tối ưu bộ nhớ thông minh cho Rust

SmallVec lưu trữ trực tiếp trên stack cho tới khi vượng quá giới hạn, sau đó tự động chuyển sang heap — không cần quản lý bộ nhớ thủ công.

SmallVec là một crate Rust cung cấp cấu trúc dữ liệu tương tự Vec nhưng được tối ưu để lưu trữ một số lượng nhỏ phần tử trực tiếp trên stack. Khi số lượng phần tử vượt quá ngưỡng được chỉ định, SmallVec sẽ tự động cấp phát trên heap và sao chép dữ liệu, giúp giảm chi phí cấp phát bộ nhớ động trong các trường hợp phổ biến.

✨ Điểm nổi bật

  • Lưu trữ trên stack: Lưu trữ trực tiếp tới N phần tử trên stack thông qua kiểu SmallVec<T, N>.
  • Tự động chuyển sang heap: Tự động chuyển dữ liệu sang heap khi vượt quá giới hạn stack.
  • Tương thích slice API: Hỗ trợ đầy đủ phép lập chỉ mục và phương thức của slice như v[0], v.sort(), v.v.
  • Macro khởi tạo nhanh: Cung cấp macro smallvec! để tạo SmallVec nhanh chóng từ danh sách phần tử.
  • Miễn phí nếu không dùng: Nếu luôn dùng stack thì không có chi phí ẩn thêm.
  • Hỗ trợ đa dạng kiểu dữ liệu: Tương thích với bất kỳ kiểu dữ liệu nào implement Copy hoặc Clone.

💡 Vì sao đáng chú ý

SmallVec khác biệt so với Vec truyền thống ở chỗ nó tránh cấp phát heap khi số lượng phần tử nhỏ — điều rất phổ biến trong lập trình thực tế. Điều này giúp cải thiện hiệu năng và giảm áp lực lên bộ nhớ trong các ứng dụng nhúng, hệ thống nhúng hoặc game.

Phù hợp với các trường hợp cần tạo danh sách tạm thời với số lượng phần tử nhỏ và không xác định trước, ví dụ như xử lý sự kiện, duyệt cây, hoặc tích lũy kết quả trong vòng lặp.


#Rust #SmallVec #Optimization #MemoryManagement #TiniX

Similar Projects

Discover other similar projects and AI models.

Modelsentence-similarity
sentence-transformers/all-MiniLM-L6-v2

all-MiniLM-L6-v2 This is a sentence-transformers(https://www.SBERT.net) model: It maps sentences & paragraphs to a 384 dimensional dense vector space and can be used for tasks like clustering or semantic search. Usage (Sentence-Transformers) Using t...

♥0
190.1M
Jun 1, 2026
RepositoryRust
farion1231/cc-switch

A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io

150.0k
Oct 29, 2026
RepositoryRust
rustdesk/rustdesk

An open-source remote desktop application designed for self-hosting, as an alternative to TeamViewer.

127.3k
Oct 28, 2026
RepositoryRust
rust-lang/rust

Empowering everyone to build reliable and efficient software.

120.9k
Oct 29, 2026
RepositoryRust
tauri-apps/tauri

Build smaller, faster, and more secure desktop and mobile applications with a web frontend.

112.2k
Oct 26, 2026
RepositoryRust
denoland/deno

A modern runtime for JavaScript and TypeScript.

108.8k
Oct 26, 2026
RepositoryRust
storytold/photocraft

PhotoCraft: An open-source, photo editor written by scratch in pure Rust

74.7k
Oct 29, 2026
RepositoryRust
unionlabs/union

The trust-minimized, zero-knowledge bridging protocol, designed for censorship resistance, extremely high security, and usage in decentralized finance.

73.7k
Jul 25, 2026
RepositoryRust
dani-garcia/vaultwarden

Unofficial Bitwarden compatible server written in Rust, formerly known as bitwarden_rs

69.8k
Oct 25, 2026