perf: implement SIMD-accelerated event processing and optimize streaming performance

- Add SIMD utilities for fast byte array comparison and discriminator matching
- Optimize event processor with batch processing and memory pool
- Refactor global state management with concurrent data structures
- Remove deprecated batch processing module
- Enhance metrics collection with reduced overhead
- Improve parser efficiency across all protocol implementations
- Add performance benchmarking dependencies (criterion, wide)
- Update documentation and examples for new architecture

Performance improvements:
- SIMD-accelerated byte operations for instruction parsing
- Concurrent HashMap (DashMap) for better multi-threading
- Optimized memory allocation patterns
- Reduced lock contention in event processing pipeline

Breaking changes: Removed batch.rs module, updated parser interfaces
This commit is contained in:
ysq
2025-08-31 22:18:18 +08:00
parent 52a489ae80
commit 74781e5cbe
30 changed files with 1297 additions and 1259 deletions
+4 -5
View File
@@ -5,10 +5,6 @@ use solana_streamer_sdk::streaming::event_parser::UnifiedEvent;
use solana_streamer_sdk::streaming::event_parser::{
protocols::MutilEventParser, EventParser, Protocol,
};
use solana_transaction_status::{InnerInstruction, InnerInstructions, UiInstruction};
use solana_sdk::bs58;
use solana_sdk::instruction::CompiledInstruction;
use std::str::FromStr;
use std::sync::Arc;
@@ -16,7 +12,7 @@ use std::sync::Arc;
#[tokio::main]
async fn main() -> Result<()> {
let signatures = vec![
"4PsHYajH87x2zJPEGZczZtd2ksibuMCFPonC24jk5mTGZ46hzvjpzM5UZuLz9sRv79MkCBbtDqwJapGPTSkCFKoL",
"5sDWrTTkE69CNc6nrAX7SqPS7FiajJTg8TMog3Gve7KjVfrqYn8YZcX1kAoyKok976S4RTnK1EdCV8hRiDWg68Aj",
];
// Validate signature format
let mut valid_signatures = Vec::new();
@@ -119,5 +115,8 @@ async fn get_single_transaction_details(signature_str: &str) -> Result<()> {
}
}
println!("Press Ctrl+C to exit example...");
tokio::signal::ctrl_c().await?;
Ok(())
}