1. wxEuphoria and wxWidgets 2.9 is slow

Matt,

I've noticed so far in working with wxEuphoria on wxWidgets 2.9, it loads A LOT slower. Have you experienced this? Any ideas? I even tried building with -O3 instead of -O2 to no avail. Perhaps it's the addition of new libraries like wxScintilla, wxRibbon, and wxPropertyGrid mucking things up?

Also, I'm curious... what's wrong with building wxWidgets in monolithic form on Windows? I know on *NIX it's always distributed as separate libraries, but for quite a while we just had one wxWidgets library and one wxEuphoria library.

Are the two at all related?

-Greg

new topic     » topic index » view message » categorize

2. Re: wxEuphoria and wxWidgets 2.9 is slow

ghaberek said...

I've noticed so far in working with wxEuphoria on wxWidgets 2.9, it loads A LOT slower. Have you experienced this? Any ideas? I even tried building with -O3 instead of -O2 to no avail. Perhaps it's the addition of new libraries like wxScintilla, wxRibbon, and wxPropertyGrid mucking things up?

I haven't really noticed this, although I haven't been working much (or lately) with wxEuphoria. Which OS are you using?

ghaberek said...

Also, I'm curious... what's wrong with building wxWidgets in monolithic form on Windows? I know on *NIX it's always distributed as separate libraries, but for quite a while we just had one wxWidgets library and one wxEuphoria library.

Are the two at all related?

I'm not sure what you're asking, as far as "what's wrong." I haven't played around with 2.9 or MinGW much, so I think it's just a matter of configuring and building it correctly. Especially on windows, I haven't gotten much farther than getting it to work at all, and a lot of my (minimal) effort with 2.9 has been focused on getting a viable 64-bit version (not quite there yet).

Of course, there are also the MinGW C++ runtime libraries. With Watcom, we were statically linking the C++ runtime libraries. I'm not sure how feasible that is with MinGW.

Matt

new topic     » goto parent     » topic index » view message » categorize

3. Re: wxEuphoria and wxWidgets 2.9 is slow

mattlewis said...

I haven't really noticed this, although I haven't been working much (or lately) with wxEuphoria. Which OS are you using?

Windows XP Pro - Pentium M 1.8 GHz single-core

Using wxWidgets 2.9 as separate libraries:

$ time eui wxeud.e 
 
real    0m15.156s 
user    0m0.015s 
sys     0m0.031s 

Strangely enough, using wxWidgets 2.9 as a monolithic library takes a bit longer:

$ time eui wxeud.e 
 
real    0m16.015s 
user    0m0.031s 
sys     0m0.030s 

As you can see, either way it takes a good 15 seconds just to load the entire library. Both of these, as well as the wxEuphoria DLL, were built using -O3. I think I'm going to try turning of a few features and see if it starts loading faster again. I'll bet there's some "new" feature in 2.9 that is slowing things down. I might even turn off 2.8 compatibility altogether.

mattlewis said...

I'm not sure what you're asking, as far as "what's wrong." I haven't played around with 2.9 or MinGW much, so I think it's just a matter of configuring and building it correctly. Especially on windows, I haven't gotten much farther than getting it to work at all, and a lot of my (minimal) effort with 2.9 has been focused on getting a viable 64-bit version (not quite there yet).

I meant that, I noticed at one point it seems you switched from building just one wxWidgets DLL to many, but I saw no reason to do that. So a better question would be, is one build any better than the other? The entire collection of separate DLLs is about ~30 MB, whereas the monolithic DLL on its own is about 20 MB. It seems wxWidgets got a lot bigger with 2.9, perhaps due to them drawing in previously "external" features.

mattlewis said...

Of course, there are also the MinGW C++ runtime libraries. With Watcom, we were statically linking the C++ runtime libraries. I'm not sure how feasible that is with MinGW.

It looks like there's just two DLLs it links with: libgcc_s_dw2-1.dll and libstdc++-6.dll. With a monolithic wxWidgets DLL, and the wxEuphoria DLL, we'd still have only four DLL files to ship. I may try cross compiling if I cannot solve the speed issue by paring down the library; perhaps it's a build issue with MinGW.

-Greg

new topic     » goto parent     » topic index » view message » categorize

4. Re: wxEuphoria and wxWidgets 2.9 is slow

ghaberek said...

I meant that, I noticed at one point it seems you switched from building just one wxWidgets DLL to many, but I saw no reason to do that. So a better question would be, is one build any better than the other? The entire collection of separate DLLs is about ~30 MB, whereas the monolithic DLL on its own is about 20 MB. It seems wxWidgets got a lot bigger with 2.9, perhaps due to them drawing in previously "external" features.

Yes, shipping a single dll was simpler, especially if you wanted to redistribute wxEuphoria with your application. Are you building debug versions? MinGW produces massive binaries when you turn on debugging information.

ghaberek said...

It looks like there's just two DLLs it links with: libgcc_s_dw2-1.dll and libstdc++-6.dll. With a monolithic wxWidgets DLL, and the wxEuphoria DLL, we'd still have only four DLL files to ship. I may try cross compiling if I cannot solve the speed issue by paring down the library; perhaps it's a build issue with MinGW.

It shouldn't make a difference as far as loading the library, but it will definitely build faster. My understanding is that when you run MinGW / MSys under windows, it has to emulate a lot of POSIX stuff like fork, which makes a lot of things a lot slower. I've found that compiling in a VM running Linux is actually a lot faster than running MSys.

Matt

new topic     » goto parent     » topic index » view message » categorize

Search



Quick Links

User menu

Not signed in.

Misc Menu