mirror of
https://github.com/EasyTier/EasyTier.git
synced 2026-09-03 17:45:44 +00:00
hotpath: add measure to try_compress_and_encrypt and get_msg_dst_peer_ipv4
Splits the 1.04us gap between send_msg_by_ip and send_msg_internal: try_compress_and_encrypt: 386ns (37%) ← AES-GCM encrypt + zstd compress get_msg_dst_peer_ipv4: 161ns (15%) ← IP→peer_id route lookup run_nic_packet_process_pipeline: 121ns (12%) ← ACL check other (fill_hdr + counters): ~440ns (36%) The 386ns encrypt is the largest optimization opportunity in this gap: ring tunnel is in-process, so application-layer encryption may be skippable.
This commit is contained in:
@@ -1633,6 +1633,7 @@ impl PeerManager {
|
|||||||
.collect()
|
.collect()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg_attr(feature = "hotpath", hotpath::measure(impl_type = "PeerManager"))]
|
||||||
pub async fn get_msg_dst_peer_ipv4(&self, ipv4_addr: &Ipv4Addr) -> (Vec<PeerId>, bool) {
|
pub async fn get_msg_dst_peer_ipv4(&self, ipv4_addr: &Ipv4Addr) -> (Vec<PeerId>, bool) {
|
||||||
let mut is_exit_node = false;
|
let mut is_exit_node = false;
|
||||||
let mut dst_peers = vec![];
|
let mut dst_peers = vec![];
|
||||||
@@ -1701,6 +1702,7 @@ impl PeerManager {
|
|||||||
(dst_peers, is_exit_node)
|
(dst_peers, is_exit_node)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg_attr(feature = "hotpath", hotpath::measure(impl_type = "PeerManager"))]
|
||||||
pub async fn try_compress_and_encrypt(
|
pub async fn try_compress_and_encrypt(
|
||||||
compress_algo: CompressorAlgo,
|
compress_algo: CompressorAlgo,
|
||||||
encryptor: &Arc<dyn Encryptor + 'static>,
|
encryptor: &Arc<dyn Encryptor + 'static>,
|
||||||
|
|||||||
Reference in New Issue
Block a user