You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by uw...@apache.org on 2018/11/03 10:04:47 UTC
[arrow] branch master updated: ARROW-3694: [Java] Avoid superfluous
string creation when logging level is disabled
This is an automated email from the ASF dual-hosted git repository.
uwe pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/arrow.git
The following commit(s) were added to refs/heads/master by this push:
new 729f2a4 ARROW-3694: [Java] Avoid superfluous string creation when logging level is disabled
729f2a4 is described below
commit 729f2a40b19644bccbbc680fd776d35ec56ee238
Author: Zhenyuan Zhao <zz...@fb.com>
AuthorDate: Sat Nov 3 11:04:37 2018 +0100
ARROW-3694: [Java] Avoid superfluous string creation when logging level is disabled
There are a few places where strings were unnecessarily created for logging purpose. For the scenario I profiled, for MessageSerializer.deserialize(), roughly 2/3 of the total CPU was spent in string.format() (inside ArrowRecordBatch)
Author: Zhenyuan Zhao <zz...@fb.com>
Closes #2894 from zzhao0/master and squashes the following commits:
3e8ac1cf <Zhenyuan Zhao> fix format
6ca8374d <Zhenyuan Zhao> avoid superfluous string creation when logging level is disabled
---
.../main/java/org/apache/arrow/vector/ipc/ArrowFileReader.java | 10 +++++-----
.../main/java/org/apache/arrow/vector/ipc/ArrowFileWriter.java | 4 ++--
.../src/main/java/org/apache/arrow/vector/ipc/ArrowWriter.java | 8 ++++----
.../src/main/java/org/apache/arrow/vector/ipc/ReadChannel.java | 2 +-
.../main/java/org/apache/arrow/vector/ipc/WriteChannel.java | 2 +-
.../org/apache/arrow/vector/ipc/message/ArrowRecordBatch.java | 2 +-
6 files changed, 14 insertions(+), 14 deletions(-)
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/ipc/ArrowFileReader.java b/java/vector/src/main/java/org/apache/arrow/vector/ipc/ArrowFileReader.java
index bf63c7b..bbbc4fd 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/ipc/ArrowFileReader.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/ipc/ArrowFileReader.java
@@ -82,7 +82,7 @@ public class ArrowFileReader extends ArrowReader {
throw new InvalidArrowFileException("invalid footer length: " + footerLength);
}
long footerOffset = footerLengthOffset - footerLength;
- LOGGER.debug(String.format("Footer starts at %d, length: %d", footerOffset, footerLength));
+ LOGGER.debug("Footer starts at {}, length: {}", footerOffset, footerLength);
ByteBuffer footerBuffer = ByteBuffer.allocate(footerLength);
in.setPosition(footerOffset);
in.readFully(footerBuffer);
@@ -141,8 +141,8 @@ public class ArrowFileReader extends ArrowReader {
private ArrowDictionaryBatch readDictionaryBatch(SeekableReadChannel in,
ArrowBlock block,
BufferAllocator allocator) throws IOException {
- LOGGER.debug(String.format("DictionaryRecordBatch at %d, metadata: %d, body: %d",
- block.getOffset(), block.getMetadataLength(), block.getBodyLength()));
+ LOGGER.debug("DictionaryRecordBatch at {}, metadata: {}, body: {}",
+ block.getOffset(), block.getMetadataLength(), block.getBodyLength());
in.setPosition(block.getOffset());
ArrowDictionaryBatch batch = MessageSerializer.deserializeDictionaryBatch(in, block, allocator);
if (batch == null) {
@@ -154,9 +154,9 @@ public class ArrowFileReader extends ArrowReader {
private ArrowRecordBatch readRecordBatch(SeekableReadChannel in,
ArrowBlock block,
BufferAllocator allocator) throws IOException {
- LOGGER.debug(String.format("RecordBatch at %d, metadata: %d, body: %d",
+ LOGGER.debug("RecordBatch at {}, metadata: {}, body: {}",
block.getOffset(), block.getMetadataLength(),
- block.getBodyLength()));
+ block.getBodyLength());
in.setPosition(block.getOffset());
ArrowRecordBatch batch = MessageSerializer.deserializeRecordBatch(in, block, allocator);
if (batch == null) {
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/ipc/ArrowFileWriter.java b/java/vector/src/main/java/org/apache/arrow/vector/ipc/ArrowFileWriter.java
index 0f70dfb..29a5214 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/ipc/ArrowFileWriter.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/ipc/ArrowFileWriter.java
@@ -72,9 +72,9 @@ public class ArrowFileWriter extends ArrowWriter {
throw new InvalidArrowFileException("invalid footer");
}
out.writeIntLittleEndian(footerLength);
- LOGGER.debug(String.format("Footer starts at %d, length: %d", footerStart, footerLength));
+ LOGGER.debug("Footer starts at {}, length: {}", footerStart, footerLength);
ArrowMagic.writeMagic(out, false);
- LOGGER.debug(String.format("magic written, now at %d", out.getCurrentPosition()));
+ LOGGER.debug("magic written, now at {}", out.getCurrentPosition());
}
@VisibleForTesting
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/ipc/ArrowWriter.java b/java/vector/src/main/java/org/apache/arrow/vector/ipc/ArrowWriter.java
index f66b1b0..2998a51 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/ipc/ArrowWriter.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/ipc/ArrowWriter.java
@@ -107,15 +107,15 @@ public abstract class ArrowWriter implements AutoCloseable {
protected ArrowBlock writeDictionaryBatch(ArrowDictionaryBatch batch) throws IOException {
ArrowBlock block = MessageSerializer.serialize(out, batch);
- LOGGER.debug(String.format("DictionaryRecordBatch at %d, metadata: %d, body: %d",
- block.getOffset(), block.getMetadataLength(), block.getBodyLength()));
+ LOGGER.debug("DictionaryRecordBatch at {}, metadata: {}, body: {}",
+ block.getOffset(), block.getMetadataLength(), block.getBodyLength());
return block;
}
protected ArrowBlock writeRecordBatch(ArrowRecordBatch batch) throws IOException {
ArrowBlock block = MessageSerializer.serialize(out, batch);
- LOGGER.debug(String.format("RecordBatch at %d, metadata: %d, body: %d",
- block.getOffset(), block.getMetadataLength(), block.getBodyLength()));
+ LOGGER.debug("RecordBatch at {}, metadata: {}, body: {}",
+ block.getOffset(), block.getMetadataLength(), block.getBodyLength());
return block;
}
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/ipc/ReadChannel.java b/java/vector/src/main/java/org/apache/arrow/vector/ipc/ReadChannel.java
index 8399258..bfceb63 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/ipc/ReadChannel.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/ipc/ReadChannel.java
@@ -50,7 +50,7 @@ public class ReadChannel implements AutoCloseable {
* @throws IOException if nit enough bytes left to read
*/
public int readFully(ByteBuffer buffer) throws IOException {
- LOGGER.debug("Reading buffer with size: " + buffer.remaining());
+ LOGGER.debug("Reading buffer with size: {}", buffer.remaining());
int totalRead = 0;
while (buffer.remaining() != 0) {
int read = in.read(buffer);
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/ipc/WriteChannel.java b/java/vector/src/main/java/org/apache/arrow/vector/ipc/WriteChannel.java
index fce2bb3..3afcd43 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/ipc/WriteChannel.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/ipc/WriteChannel.java
@@ -75,7 +75,7 @@ public class WriteChannel implements AutoCloseable {
public long write(ByteBuffer buffer) throws IOException {
long length = buffer.remaining();
- LOGGER.debug("Writing buffer with size: " + length);
+ LOGGER.debug("Writing buffer with size: {}", length);
while (buffer.hasRemaining()) {
out.write(buffer);
}
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/ipc/message/ArrowRecordBatch.java b/java/vector/src/main/java/org/apache/arrow/vector/ipc/message/ArrowRecordBatch.java
index aff1311..51ce6df 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/ipc/message/ArrowRecordBatch.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/ipc/message/ArrowRecordBatch.java
@@ -72,7 +72,7 @@ public class ArrowRecordBatch implements ArrowMessage {
arrowBuf.retain();
long size = arrowBuf.readableBytes();
arrowBuffers.add(new ArrowBuffer(offset, size));
- LOGGER.debug(String.format("Buffer in RecordBatch at %d, length: %d", offset, size));
+ LOGGER.debug("Buffer in RecordBatch at {}, length: {}", offset, size);
offset += size;
if (alignBuffers && offset % 8 != 0) { // align on 8 byte boundaries
offset += 8 - (offset % 8);