perf: don't use string concat when calculing SeenEven hash

Profiler was complaining about this one
This commit is contained in:
William Casarin
2023-06-20 16:07:40 +02:00
parent d205be3e0a
commit b7b7d65612

View File

@@ -18,11 +18,16 @@ struct QueuedRequest {
let relay: String let relay: String
} }
struct SeenEvent: Hashable {
let relay_id: String
let evid: String
}
class RelayPool { class RelayPool {
var relays: [Relay] = [] var relays: [Relay] = []
var handlers: [RelayHandler] = [] var handlers: [RelayHandler] = []
var request_queue: [QueuedRequest] = [] var request_queue: [QueuedRequest] = []
var seen: Set<String> = Set() var seen: Set<SeenEvent> = Set()
var counts: [String: UInt64] = [:] var counts: [String: UInt64] = [:]
private let network_monitor = NWPathMonitor() private let network_monitor = NWPathMonitor()
@@ -233,7 +238,7 @@ class RelayPool {
func record_seen(relay_id: String, event: NostrConnectionEvent) { func record_seen(relay_id: String, event: NostrConnectionEvent) {
if case .nostr_event(let ev) = event { if case .nostr_event(let ev) = event {
if case .event(_, let nev) = ev { if case .event(_, let nev) = ev {
let k = relay_id + nev.id let k = SeenEvent(relay_id: relay_id, evid: nev.id)
if !seen.contains(k) { if !seen.contains(k) {
seen.insert(k) seen.insert(k)
if counts[relay_id] == nil { if counts[relay_id] == nil {