[ 
https://issues.apache.org/jira/browse/TEZ-3813?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16113451#comment-16113451
 ] 

Muhammad Samir Khan commented on TEZ-3813:
------------------------------------------

*JOL Dump:*
+Before:+
Internals:
{code}
# Running 64-bit HotSpot VM.
# Using compressed oop with 3-bit shift.
# Using compressed klass with 3-bit shift.
# Objects are 8 bytes aligned.
# Field sizes by type: 4, 1, 1, 2, 2, 4, 4, 8, 8 [bytes]
# Array element sizes: 4, 1, 1, 2, 2, 4, 4, 8, 8 [bytes]

Instantiated the sample instance via public 
org.apache.tez.runtime.library.common.shuffle.MemoryFetchedInput(long,long,org.apache.tez.runtime.library.common.InputAttemptIdentifier,org.apache.tez.runtime.library.common.shuffle.FetchedInputCallback)

org.apache.tez.runtime.library.common.shuffle.MemoryFetchedInput object 
internals:
 OFFSET  SIZE                                                                 
TYPE DESCRIPTION                               VALUE
      0     4                                                                   
   (object header)                           01 00 00 00 (00000001 00000000 
00000000 00000000) (1)
      4     4                                                                   
   (object header)                           00 00 00 00 (00000000 00000000 
00000000 00000000) (0)
      8     4                                                                   
   (object header)                           7a 12 01 f8 (01111010 00010010 
00000001 11111000) (-134147462)
     12     4                                                                  
int FetchedInput.id                           0
     16     8                                                                 
long FetchedInput.actualSize                   0
     24     8                                                                 
long FetchedInput.compressedSize               0
     32     4         
org.apache.tez.runtime.library.common.InputAttemptIdentifier 
FetchedInput.inputAttemptIdentifier       null
     36     4      
org.apache.tez.runtime.library.common.shuffle.FetchedInput.Type 
FetchedInput.type                         (object)
     40     4   
org.apache.tez.runtime.library.common.shuffle.FetchedInputCallback 
FetchedInput.callback                     null
     44     4     
org.apache.tez.runtime.library.common.shuffle.FetchedInput.State 
FetchedInput.state                        (object)
     48     4                    
org.apache.hadoop.io.BoundedByteArrayOutputStream MemoryFetchedInput.byteStream 
            (object)
     52     4                                                                   
   (loss due to the next object alignment)
Instance size: 56 bytes
Space losses: 0 bytes internal + 4 bytes external = 4 bytes total
{code}

Footprint:
{code}
# Running 64-bit HotSpot VM.
# Using compressed oop with 3-bit shift.
# Using compressed klass with 3-bit shift.
# Objects are 8 bytes aligned.
# Field sizes by type: 4, 1, 1, 2, 2, 4, 4, 8, 8 [bytes]
# Array element sizes: 4, 1, 1, 2, 2, 4, 4, 8, 8 [bytes]

Instantiated the sample instance via public 
org.apache.tez.runtime.library.common.shuffle.MemoryFetchedInput(long,long,org.apache.tez.runtime.library.common.InputAttemptIdentifier,org.apache.tez.runtime.library.common.shuffle.FetchedInputCallback)

org.apache.tez.runtime.library.common.shuffle.MemoryFetchedInput@215be6bbd 
footprint:
     COUNT       AVG       SUM   DESCRIPTION
         1        16        16   [B
         2        32        64   [C
         2        24        48   java.lang.String
         1        32        32   
org.apache.hadoop.io.BoundedByteArrayOutputStream
         1        24        24   
org.apache.tez.runtime.library.common.shuffle.FetchedInput$State
         1        24        24   
org.apache.tez.runtime.library.common.shuffle.FetchedInput$Type
         1        56        56   
org.apache.tez.runtime.library.common.shuffle.MemoryFetchedInput
         9                 264   (total)
{code}

+After:+
Internals:
{code}
# Running 64-bit HotSpot VM.
# Using compressed oop with 3-bit shift.
# Using compressed klass with 3-bit shift.
# Objects are 8 bytes aligned.
# Field sizes by type: 4, 1, 1, 2, 2, 4, 4, 8, 8 [bytes]
# Array element sizes: 4, 1, 1, 2, 2, 4, 4, 8, 8 [bytes]

Instantiated the sample instance via public 
org.apache.tez.runtime.library.common.shuffle.MemoryFetchedInput(long,long,org.apache.tez.runtime.library.common.InputAttemptIdentifier,org.apache.tez.runtime.library.common.shuffle.FetchedInputCallback)

org.apache.tez.runtime.library.common.shuffle.MemoryFetchedInput object 
internals:
 OFFSET  SIZE                                                                 
TYPE DESCRIPTION                               VALUE
      0     4                                                                   
   (object header)                           01 00 00 00 (00000001 00000000 
00000000 00000000) (1)
      4     4                                                                   
   (object header)                           00 00 00 00 (00000000 00000000 
00000000 00000000) (0)
      8     4                                                                   
   (object header)                           7a 12 01 f8 (01111010 00010010 
00000001 11111000) (-134147462)
     12     4                                                                  
int FetchedInput.id                           0
     16     8                                                                 
long FetchedInput.actualSize                   0
     24     8                                                                 
long FetchedInput.compressedSize               0
     32     4         
org.apache.tez.runtime.library.common.InputAttemptIdentifier 
FetchedInput.inputAttemptIdentifier       null
     36     4      
org.apache.tez.runtime.library.common.shuffle.FetchedInput.Type 
FetchedInput.type                         (object)
     40     4   
org.apache.tez.runtime.library.common.shuffle.FetchedInputCallback 
FetchedInput.callback                     null
     44     4     
org.apache.tez.runtime.library.common.shuffle.FetchedInput.State 
FetchedInput.state                        (object)
     48     4                                                               
byte[] MemoryFetchedInput.byteArray              []
     52     4                                                                   
   (loss due to the next object alignment)
Instance size: 56 bytes
Space losses: 0 bytes internal + 4 bytes external = 4 bytes total
{code}

Footprint:
{code}
# Running 64-bit HotSpot VM.
# Using compressed oop with 3-bit shift.
# Using compressed klass with 3-bit shift.
# Objects are 8 bytes aligned.
# Field sizes by type: 4, 1, 1, 2, 2, 4, 4, 8, 8 [bytes]
# Array element sizes: 4, 1, 1, 2, 2, 4, 4, 8, 8 [bytes]

Instantiated the sample instance via public 
org.apache.tez.runtime.library.common.shuffle.MemoryFetchedInput(long,long,org.apache.tez.runtime.library.common.InputAttemptIdentifier,org.apache.tez.runtime.library.common.shuffle.FetchedInputCallback)

org.apache.tez.runtime.library.common.shuffle.MemoryFetchedInput@5dfcfeced 
footprint:
     COUNT       AVG       SUM   DESCRIPTION
         1        16        16   [B
         2        32        64   [C
         2        24        48   java.lang.String
         1        24        24   
org.apache.tez.runtime.library.common.shuffle.FetchedInput$State
         1        24        24   
org.apache.tez.runtime.library.common.shuffle.FetchedInput$Type
         1        56        56   
org.apache.tez.runtime.library.common.shuffle.MemoryFetchedInput
         8                 232   (total)
{code}

> Reduce Object size of MemoryFetchedInput for large jobs
> -------------------------------------------------------
>
>                 Key: TEZ-3813
>                 URL: https://issues.apache.org/jira/browse/TEZ-3813
>             Project: Apache Tez
>          Issue Type: Bug
>            Reporter: Muhammad Samir Khan
>            Assignee: Muhammad Samir Khan
>         Attachments: TEZ-3813.001.patch
>
>
> Same as TEZ-3752 for the unordered case. MemoryFetchedInput has a 
> BoundedByteArrayOutputStream that is not used (only the underlying byte[] is 
> used).



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to