harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dmitry Egorov <d.ego...@inbox.ru>
Subject Re: [archive] Re: jar and zip optimizations
Date Sat, 05 Apr 2008 17:49:19 GMT
Thank you, Senaka!
I tried it and here what I discovered:
harmonyvm.dll has implicit dependency on zlib1.dll and actually calls 
functions from it.
It also has explicit dependency on hyzlib.dll, but doesn't call it 
(dependency walker shows a big list of function calls over that module, 
non of them present in dll).
Also hythr.dll has explicit dependency on hyzlib.dll and calls it's 
functions.

So I was wrong, and vm is actually using zlib1.dll, though it loads 
hyzlib.dll too.
And there's still zdll.lib, although dll's are loaded and being called.

Performance library in my work is not free, that's why I need to make 2 
zlibs and make Harmony load one of them dynamically, depending on 
whether performance lib is installed or not. For that purpose zlib is 
required to be in one single place.

But for the first step it'll be ok if I test it on zlib, that is used by 
vm. So the question is for now, does vm uses zlib1.dll under Windows, or 
maybe zdll.lib is statically linked, and  how it works under Linux?

Senaka Fernando wrote:
> Hi Dmitry,
>
> How about using dependency walker, if you are on windows?
>
> Regards,
> Senaka
>
> On Sat, Apr 5, 2008 at 6:11 PM, Dmitry Egorov <d.egorov@inbox.ru> wrote:
>
>   
>> Hello, everyone!
>> I'm now working on zlib optimization using external performance library.
>> For now my goal is to make Harmony use my modified zlib code instead of the
>> one downloaded from the internet.
>> So I've been struggling with build system for quite a long time. As far as
>> I can understand now, both vm and classlib use hyzlib.dll (i'm currently
>> working in Windows), which is made by downloading and compiling zlib's
>> sources in classlib's buildfiles.
>>
>> But I'm not sure, because there's code in vm's build files which downloads
>> zlib1.dll and zdll.lib. But I can't figure out whether vm is using it or
>> not. On the other side, I found that vm has code related to
>> hyzlib.dll in working_vm\vm\vmcore\src\init\vm_properties.cpp:
>> static const char *api_dll_files[] =
>> {
>>   "harmonyvm",
>>   "hythr",
>> #if !defined(HY_NO_SIG)
>>   "hysig",
>> #endif
>>   "hyprt",
>> #if defined(HY_LOCAL_ZLIB)
>>   "z",
>> #else
>>   "hyzlib",
>> #endif
>>   "hynio",
>>   "vmi",
>>   "hyluni",
>>   "hyarchive"
>> }; ...
>>
>> My primary goal is to optimize vm's zlib performance to boost start up
>> time. So my question is whether vm is using hyzlib.dll or not?
>>
>> Tim Ellison wrote:
>>
>>     
>>> Dmitry Egorov wrote:
>>>
>>>       
>>>> Hello Mark, Tim,
>>>> Thank you for your idea!  We have discussed possible native
>>>> optimizations of jar and zip code with Alexei Fedotov and I'm
>>>> currently looking into this.
>>>>
>>>>         
>>> Great.  Looking through the JIRAs I see Alexei raised a 'double read'
>>> issue.  You still have outstanding questions about this Alexei?
>>>
>>> [1] http://issues.apache.org/jira/browse/HARMONY-5526
>>>
>>> Regards,
>>> Tim
>>>
>>>
>>>
>>>       
>>     
>
>   


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message