rat_quickdns 0.2.4

A high-performance, feature-rich DNS client library with support for multiple transport protocols, load balancing, caching, and filtering
Documentation
# rat_quickmem Rust 示例

本目录包含 rat_quickmem Rust 库的使用示例。

## 文件说明

- `basic_usage.rs` - 基础使用示例,展示核心功能
- `performance_test.rs` - 性能测试示例,基准测试和优化
- `Cargo.toml` - 项目配置文件

## 运行示例

### 基础使用示例

```bash
# 运行基础示例
cargo run --bin basic_usage

# 或者以发布模式运行(更快)
cargo run --release --bin basic_usage
```

这个示例展示了:
- 基本数据类型的编码/解码
- 复杂数据结构(HashMap、嵌套向量)
- 自定义配置使用
- 数据完整性验证

### 性能测试示例

```bash
# 运行性能测试
cargo run --bin performance_test

# 发布模式运行(推荐用于性能测试)
cargo run --release --bin performance_test
```

这个示例包含:
- 编码/解码性能基准
- 内存使用效率分析
- 批量操作性能测试
- 吞吐量计算

## 示例输出

### 基础使用示例输出

```
=== rat_quickmem Rust 基础示例 ===

--- 基础数据类型示例 ---
字符串: Hello, rat_quickmem! -> 23 bytes -> Hello, rat_quickmem!
数字: 42 -> 8 bytes -> 42
向量: [1, 2, 3, 4, 5] -> 25 bytes -> [1, 2, 3, 4, 5]

--- 复杂数据结构示例 ---
HashMap: {"name": "Alice", "age": "30", "city": "Beijing"} -> 45 bytes
解码结果: {"name": "Alice", "age": "30", "city": "Beijing"}

--- 自定义配置示例 ---
自定义配置: QuickMemConfig { max_data_size: 1048576, max_batch_count: 100, enable_compression: true }
大数据测试: 10000 bytes -> 8234 bytes (压缩率: 17.66%)
数据完整性验证: ✓

所有示例执行完成!
```

### 性能测试示例输出

```
=== rat_quickmem 性能测试 ===

--- 编码性能测试 ---
数据大小: 890000 bytes
迭代次数: 1000
平均编码时间: 245.2µs
编码吞吐量: 3456.78 MB/s

--- 解码性能测试 ---
编码数据大小: 734521 bytes
迭代次数: 1000
平均解码时间: 189.7µs
解码吞吐量: 3689.12 MB/s

--- 内存使用效率测试 ---
数据量: 100 项
原始大小: 8900 bytes
编码大小: 7234 bytes
压缩比: 0.813
节省空间: 18.7%

性能测试完成!
```

## 自定义示例

你可以基于这些示例创建自己的应用:

```rust
use rat_quickmem::{encode, decode, QuickMemConfig};
use std::collections::HashMap;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    // 创建自定义数据
    let mut data = HashMap::new();
    data.insert("user_id", "12345");
    data.insert("session", "abc-def-ghi");
    data.insert("timestamp", "2024-01-01T00:00:00Z");
    
    // 编码数据
    let encoded = encode(&data)?;
    println!("编码后大小: {} bytes", encoded.len());
    
    // 解码数据
    let decoded: HashMap<&str, &str> = decode(&encoded)?;
    println!("解码结果: {:?}", decoded);
    
    Ok(())
}
```

## 性能优化建议

### 编译优化

```toml
[profile.release]
opt-level = 3
lto = true
codegen-units = 1
panic = "abort"
```

### 运行时优化

1. **批量处理**: 对于大量小数据,使用批量编码
2. **内存复用**: 重用编码缓冲区
3. **配置调优**: 根据数据特征调整配置参数

```rust
// 批量处理示例
let mut encoder = QuickEncoder::new();
for data in batch_data {
    encoder.encode_to_buffer(&data)?;
}
let encoded_batch = encoder.finalize()?;
```

## 故障排除

### 编译错误

如果遇到编译错误,请检查:

1. Rust 版本是否 >= 1.70
2. 依赖版本是否兼容
3. 特性标志是否正确

### 运行时错误

常见错误及解决方案:

- `DataTooLarge`: 减少数据大小或增加 `max_data_size`
- `BatchTooLarge`: 减少批量大小或增加 `max_batch_count`
- `SerializationError`: 检查数据类型是否支持序列化

### 性能问题

如果性能不理想:

1. 使用 `--release` 模式编译
2. 检查数据结构是否适合序列化
3. 考虑使用批量操作
4. 调整配置参数

## 更多信息

- [rat_quickmem 主文档]../../README.md
- [API 文档]https://docs.rs/rat_quickmem
- [安全指南]../../SECURITY.md
- [性能指南]../../docs/PERFORMANCE.md