[英]What is the best resizable byte buffer available in Java?
我需要 Java 中的字節緩沖區 class 用於單線程使用。 緩沖區滿時應該調整大小,而不是拋出異常或其他東西。 對我來說非常重要的問題是性能。
你會推薦什么?
添加:目前我使用 ByteBuffer 但它無法調整大小。 我需要一個可以調整大小的。
有什么理由不使用無聊的普通ByteArrayOutputStream嗎?
正如 miku 上面提到的, Evan Jones 給出了不同類型的評論,並表明它非常依賴於應用程序。 因此,在不了解更多細節的情況下,很難推測。
我將從 ByteArrayOutputStream 開始,並且只有在分析表明這是您的性能瓶頸轉移到其他東西時。 通常,當您認為緩沖區代碼是瓶頸時,它實際上是網絡或其他 IO - 等到分析顯示您需要優化,然后再浪費時間尋找替代品。
如果您要轉移到其他地方,那么您需要考慮的其他因素:
您可以使用直接的 ByteBuffer。 直接 memory 使用虛擬 memory 啟動僅在使用時分配給應用程序。 即它使用的主要 memory 的數量會自動重新調整大小。
創建一個比您需要的更大的直接 ByteBuffer,它只會消耗您使用的內容。
您還可以編寫手動代碼來連續檢查緩沖區內容,如果它已滿,則創建一個更大的新緩沖區並移動該新緩沖區中的所有數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.