2013-08-22 16 views
0

我有一個用於進程間通信的自定義協議。有約。 400-500條消息全部使用自定義有效載荷。這些消息都有一個唯一的消息ID(單詞),但就是這樣。一個c結構定義每個消息。將大字節數組解碼爲文本

幾乎所有的消息都具有結構中一個或多個字段的自定義枚舉。

我得到的消息日誌中有成千上萬的這些消息,我想寫一個解碼器,運行速度相對較快,而不是一個完整的維護痛苦。

我看着寫了一個自定義的應用程序,並將解碼結構存儲在MS Access數據庫或其他東西。這非常緩慢,並受到同時解碼數量的限制。我也看了xml,但在我的小測試中再次做翻譯的速度很慢。

我想使用類似wireshark disector的東西,但這些不是網絡數據包......只是一個大字節數組。

任何想法/建議將不勝感激。

回答

0

如果您的目的是查找統計信息,那麼更快的方法可能是在IPC層本身添加數字統計信息。所以,當發送者發送一個X類型的IPC數據包時,它增加了一個計數器stats_sent_X和一個類似於接收端的簿記。另一方面,如果你想瀏覽一個日誌的內容,那麼一個簡單的方法就是簡單地讀取日誌文件,將它分成標記,標識與IPC枚舉值相關的標記然後閱讀它。

+0

感謝您的回覆,但我不想獲取摘要統計信息。我想解碼消息的有效載荷,但我希望儘可能快速有效地完成此操作。令牌化和查找匹配值到字符串對非常慢,並且成爲如此多消息的維護問題。這就是爲什麼我正在研究XML翻譯或類似的東西。到目前爲止沒有運氣! – user2705726

相關問題