我想將pojo對象轉換爲字節數組。我的所有對象都是可序列化的。我用Java將對象轉換爲字節數組的有效方法
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
ObjectOutputStream o = new ObjectOutputStream(byteArrayOutputStream);
o.writeObject(myobject);
byte [] byteArray=byteArrayOutputStream.toByteArray();
o.flush();
o.close();
byteArrayOutputStream.flush();
byteArrayOutputStream.close();
當對象被轉換成字節數組具有許多線程,這種轉換需要時間越來越每次轉換的時間量(相同的對象成字節數組)被逐漸增加。 (例如,第一個線程轉換需要200ms,第二個線程轉換爲同一個對象需要300ms)。任何人都可以讓我知道爲什麼這個對象轉換時間逐漸增加並且是一種更好的轉換方式。 (我發現了一種使用Externalization的方法,但後來我的所有對象都必須用Externalizable來重寫。)
配置文件管理器在您的應用程序配置文件中說什麼?性能瓶頸在哪裏? –
我不使用精確的分析器。但是當我計算每次轉換的頂部和底部的時間間隔(long beginig = System.currentTimeMillis(),long endTime = System.currentTimeMillis(),gap = endTime-beginig),並將間隙打印到控制檯,時間間隔正在增加。 –
您正在早點調用'toByteArray()'。刪除最後兩行,'o.flush()'。你可以做'新的ByteArrayOutputStream(SIZE)'。 –