harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Regis <xu.re...@gmail.com>
Subject call for review: (HARMONY-6257) [classlib][luni] - Optimize OSMemory.get/setByteArray
Date Mon, 06 Jul 2009 09:27:25 GMT
Regis Xu (JIRA) wrote:
>      [ https://issues.apache.org/jira/browse/HARMONY-6257?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
> 
> Regis Xu updated HARMONY-6257:
> ------------------------------
> 
>     Attachment: HARMONY-6257.diff
> 
>> [classlib][luni] - Optimize OSMemory.get/setByteArray
>> -----------------------------------------------------
>>
>>                 Key: HARMONY-6257
>>                 URL: https://issues.apache.org/jira/browse/HARMONY-6257
>>             Project: Harmony
>>          Issue Type: Improvement
>>          Components: Classlib
>>    Affects Versions: 5.0M10
>>            Reporter: Regis Xu
>>         Attachments: HARMONY-6257.diff
>>
>>
>> in getByteArray, use SetByteArrayRegion to avoid memory copy from java to native
>> in setByteArray, Get/ReleasePrimitiveArrayCritical instead of GetByteArrayElements/ReleaseByteArrayElements
to avoid memory copy.
> 

I just found in OSMemory.c, get/setByteArray do some unnecessary memory copies 
between Java and native.

In getByteArray, GetByteArrayElements copy data from java to native, and then 
ReleaseByteArrayElements do the reverse, I think using SetByteArrayRegion is enough.

In setByteArray, I found JNI calls 
GetPrimitiveArrayCritical/ReleasePrimitiveArrayCritical could get a pointer to 
the primitive array without any copy, but seems they has some side effects (on 
GC?), I don't have much confidence that they can apply here. I hope some one can 
give some advices about this patch. Thanks.

-- 
Best Regards,
Regis.

Mime
View raw message