cURL / Mailing Lists / curl-library / Single Mail

curl-library

Re: Problems with Windows Binaries

From: David Graf <david.graf_at_28msec.com>
Date: Thu, 28 Oct 2010 10:29:18 +0200

Hello Everybody

Unfortunately, my performance problem on windows is NOT fixed! If I build curl-7.21.1 with Visual Studio nmake with ssl support, the execution of each curl invocation is very slow. To avoid misunderstandings, here is the protocol of my testing:

- Precondition: Installed Visual Studio 2010 on Windows 7
- Compile OpenSSL
  - Download and unzip latest OpenSSL sources
  - cd openssl-*
  - perl Configure VC-WIN32 --prefix=c:\path\to\openssl_install_dir
  - ms\do_nasm (here, nasm directory needs to be in %PATH%)
  - nmake -f ms\ntdll.mak
- Compile Curl
  - set OPENSSL_PATH=%SOME_PATH%\openssl-1.0.0a
  - nmake vc-dll-ssl-dll (by the way, this is the correct command to compile dlls with ssl support, not nmake vc-ssl-dll as described in the docu!)
- Then, I compile the following example and link it agains %CURL%\lib\release-dll-ssl-dll\libcurl_imp.lib:
#include <curl/curl.h>

int main() {
        curl_global_init(CURL_GLOBAL_ALL);
        curl_global_cleanup();
}
- Afterwards, I execute the following example having the following dlls in %PATH%: libcurl.dll, libeay32.dll, ssleay32.dll

The result is, the execution lags a little bit. Not much, but a little bit. And the best thing is: If I replace the libcurl.dll I created with the libcurl.dll from the package libcurl-7.15.1-msvc-win32-ssl-0.9.8a-zlib-1.2.3 (it is not available anymore, therefore I attached the dll to the email), then it doesn't lag at all. It is significantly faster. You can imaging: With each additional curl function call, it gets much worse. In my application, the execution is 5x slower.

Can someone help me, please?
Thanks
David

On Oct 16, 2010, at 7:20 PM, David Graf wrote:

> Hello Daniel
>
> As described in my last email, I could fix the performance problem by compiling openssl with asm support.
>
> I am pretty sure, the delay happened in curl_global_init or curl_global_cleanup. My application was even 5x slower, if I did not execute a single rest call except those two.
>
> Strangely, the command line tool is not slower ..
>
> David
>
> On Oct 16, 2010, at 10:31 AM, Daniel Stenberg wrote:
>
>> On Fri, 15 Oct 2010, David Graf wrote:
>>
>>> the execution was unbelievable slow. 5x slower that with the 7.15.1 package. Something is wrong with openssl. If I compile curl without ssl, the speed is ok.
>>
>> So you're saying the _execution_ even when getting non-SSL protocols got slower when you built with OpenSSL? That sounds very strange as OpenSSL is only involved for the SSL parts and isn't at all used for non-SSL protocols (apart from the intitialization of OpenSSL which always is performed).
>>
>> Does this slowness happen even when you use the latest curl command line tool?
>>
>> --
>>
>> / daniel.haxx.se
>> -------------------------------------------------------------------
>> List admin: http://cool.haxx.se/list/listinfo/curl-library
>> Etiquette: http://curl.haxx.se/mail/etiquette.html
>
>
> ------------
> David Graf
> Software Architect
>
> 28msec Inc.
> http://www.28msec.com/
> http://twitter.com/28msec
> ------------
>
> -------------------------------------------------------------------
> List admin: http://cool.haxx.se/list/listinfo/curl-library
> Etiquette: http://curl.haxx.se/mail/etiquette.html

------------
David Graf
Software Architect

28msec Inc.
http://www.28msec.com/
http://twitter.com/28msec
------------

-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-library
Etiquette: http://curl.haxx.se/mail/etiquette.html
Received on 2010-10-28