Commit Graph
5 Commits
Author SHA1 Message Date
Hookie 46564f1bb5 test(swqos): add serializer cold-start perf tests
Add manual ignored performance tests for SWQOS serializer cold start:\n- compare legacy eager zero-fill preallocation vs bounded prewarm\n- measure lazy growth amortization (first vs reused serialize)\n\nAlso fix PumpFun test fixture to include newly required SwapParams\nfields so lib tests compile when running targeted perf tests.\n\nValidation:\n- cargo test --release perf_serializer_ -- --ignored --nocapture
2026-02-28 22:58:27 +02:00
Hookie 63afac7aea perf(swqos): reduce serializer cold-start overhead
Replace full eager preallocation in the SWQOS serializer with a bounded\nprewarm and lazy growth strategy.\n\n- Prewarm only a small hot set of buffers instead of allocating all\n  10,000 upfront\n- Keep the same max pool capacity and buffer size to preserve the\n  original buffer-pool design in steady state\n- Stop zero-filling each buffer during initialization; reserve capacity\n  and grow data on demand\n- Return temporary buffers in Base64Encoder::serialize_and_encode to\n  avoid pool depletion\n- Add tests for bounded prewarm and lazy allocation/return behavior\n\nWhy:\nThe previous Lazy initialization allocated and touched ~2.44 GiB\n(10,000 x 256 KiB) on first use, which can block the first buy submit\npath and produce a large cold-start latency spike.\n\nValidation:\n- cargo fmt --all\n- cargo check --lib\n- cargo check (SolBot workspace with path dependency)
2026-02-28 22:58:05 +02:00
WoodandCursor 807b015fc3 Release v3.5.0: performance, constants, bilingual docs
- Bump version to 3.5.0
- Performance: hot-path timing only when log_enabled/simulate; execute_parallel takes &[Arc<SwqosClient>]; shared HTTP client constants for SWQoS
- Code quality: validate_protocol_params extracted for buy/sell; BYTES_PER_ACCOUNT, MAX_INSTRUCTIONS_WARN, HTTP timeout constants; prefetch/syscall bypass comments
- Documentation: bilingual (EN + 中文) doc comments in execution, executor, perf, swqos; README/README_CN version and What's new in 3.5.0
- Add release_notes_v3.5.0.md

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-25 01:25:42 +08:00
WoodandCursor 5e4977f6a6 perf(swqos): reduce submit latency and fix high latency after 5 min idle
- Make serialize_transaction_and_encode sync and route through buffer pool
  (serialization::serialize_transaction_sync) to cut allocs on hot path
- Build single-submit body with format! instead of json!+to_string() in bloxroute
- Add serialize_transactions_batch_sync; bloxroute batch uses it and format! for entries
- Fix first-submit cold start: immediate first ping, then 30s keepalive interval
- Fix high latency after ~5 min: pool_max_idle_per_host=4, pool_idle_timeout=300s
  (BlockRazor, Temporal, Node1, Astralane, Stellium) so submit reuses ping connection
- Ping: 1.5s timeout, consume response body so connection returns to pool
- poll_transaction_confirmation: avoid cloning status.value[0], use ref
- Translate all swqos comments to English

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-20 02:18:02 +08:00
Wood 0a0340a46f peformance optimization 2025-10-06 23:40:27 +08:00