我正在研究一個玩具/實驗,它需要DNS服務來獲取本地網絡上特定節點的位置/地址信息。它還將存儲其他信息,例如節點類型,套接字類型(enet-udp或tcp)以及一些其他特定的數據位。數字類型中的大部分(或可能全部)。每個條目將通過客戶端ID與特定的客戶端相關聯,每個客戶端在節點內都有自己的線程。提升速度最快的容器有哪些?
我的問題是哪些增強包可以通過數字ID提供絕對最快的訪問?雖然它可能永遠不會實現,但它的想法是,該服務可能會增長到未知數,從而在跨多個節點的線程內爲數千個客戶端管理IPC。
換句話說,容器必須快速並且能夠增長。如果增長能力導致訪問時間成本大於設定容量的容器會更可取,但可變大小是理想的。插入時間並不重要,也不會維護容器內部結構中的數據順序。
這種類型的容器/結構是錯誤的地方嗎?這是我第一次對增強或甚至整個C++結構非常挑剔,所以期待着學習新的東西。
感謝
每個客戶端一個線程?聽起來很糟糕。顯式存儲狀態,並按服務器的能力提供線程。每個ckient預訂一個真實線程意味着緩慢的上下文切換,顯式狀態意味着您只需切換狀態。 – Yakk
@Yakk - 你的權利,但現在線程不會做任何事情,只能說回來。 – JSON
如果你不關心表現,那麼你的問題的重點是什麼?微觀優化是一個不好的主意:如果你有玩具,就把它寫得快而且鬆散,如果你沒有把玩具專注於重要的部分,比如丟棄你的單線程客戶端,而不是「什麼是最快的容器「。容器將在稍後成爲瓶頸,如果需要,應該很容易取出並更快地交換內容:假設基於線程的狀態不會很容易換出的模型。 – Yakk