Developer forums (C::B DEVELOPMENT STRICTLY!) > Development

[Linux] Slower performance on opening than under wine

(1/4) > >>

libfab:
Hi,
I searched forums for the issue, yet did not find anything, so here is my point.
I develop both under linux and windows partly with CB, with a fairly rich building tree
(here is my current package: http://dvd-audio.sourceforge.net/dvda-author-09.03-1.tar.bz2)
Under Windows, opening the whole project (CB_project/dvda-author-09.03.workspace) takes about 15-20 seconds.
On the same computer under linux (which is now my preferred OS), it takes about 130 seconds, that's about a factor 7.
Results were obtained using svn 5532 (./configure --with-contrib-plugins=all)
Results are not markedly changed by using 08.02.

This issue I think has already been mentioned. Yet what is striking is that using wine, running the Windows build of 08.02 under linux/wine is actually MUCH FASTER than running any linux build of 08.02 natively, which is bewildering. It's about twice as fast as the linux build opening.

I'm looking for a plausible explanation to this issue, and this is what I came up with by launching under console. The linux build, not the .exe, repetitively issues warnings for each file opening like this (list was cut):
...
Warning: bypassing C::B's auto-detection!                                                                                           
Encoding requested is: Unicode 8 bit (UTF-8) (ID: 41)                                                                               
Final encoding detected: Unicode 8 bit (UTF-8) (ID: 41)                                                                             
project data set for /home/fab/Dev/dvda-author-09.03/libsoxconvert/lpc10/preemp.c                                                   
Warning: bypassing C::B's auto-detection!                                                                                           
Encoding requested is: Unicode 8 bit (UTF-8) (ID: 41)                                                                               
Final encoding detected: Unicode 8 bit (UTF-8) (ID: 41)                                                                             
project data set for /home/fab/Dev/dvda-author-09.03/libsoxconvert/lpc10/prepro.c                                                   
Warning: bypassing C::B's auto-detection!                                                                                           
Encoding requested is: Unicode 8 bit (UTF-8) (ID: 41)                                                                               
Final encoding detected: Unicode 8 bit (UTF-8) (ID: 41)                                                                             
project data set for /home/fab/Dev/dvda-author-09.03/libsoxconvert/lpc10/random.c                                                   
Warning: bypassing C::B's auto-detection!                                                                                           
Encoding requested is: Unicode 8 bit (UTF-8) (ID: 41)                                                                               
Final encoding detected: Unicode 8 bit (UTF-8) (ID: 41)                                                                             
project data set for /home/fab/Dev/dvda-author-09.03/libsoxconvert/lpc10/rcchk.c 
...

So my wild bet is that by deactivating C::B's auto-detection, or by optimizing it somewhat, launching performance whould be greatly improved under linux.

Any developer suggestion about this?

Best, Fab

Jenna:
It's most likely a problem with the utf-8 conversion of wxWidgets on linux.
It was already discussed in this thread: http://forums.codeblocks.org/index.php/topic,10159.0.html.

If possible, you can try to checkout the wxaui test-branch.
It does not only use wxAui-notebooks instead of wxFlatnotebook, it also has the patches to encoding-detection and utf-8 loading and saving included.

These are the times I need to open your projects:

on debian 64-bit Core2Duo 2x2.0 GHz with about 3.3 GB usable memory (but some apps running including virtual w2k-machine)

C::B (from trunk) svn r5588:  2:56
C::B (wxaui testbranch) svn r5541: 1:10

w2k on virtual kvm-machine with 768 MB memory
C::B (from trunk) svn r5541: 0:32

That means it's still slower than on windows, but much faster than with trunk.

libfab:
Thanks Jens, brilliant as usual. Sorry for missing your previous thread on this.
I'm not accustomed to codeblocks branches, as I usually build from trunk, so all that I found in the svn tree was branches/wxfnb_to_wxaui/,
which did not build, perhaps an aging wx2.8? Here is the crash:

filemanager.cpp: In function ‘bool WriteWxStringToFile(wxFile&, const wxString&, wxFontEncoding, bool)’:                                                                                                                                     
filemanager.cpp:213: erreur: no matching function for call to ‘wxMBConvUTF7::cWC2MB(const wxChar*, size_t&, size_t*)’                                                                                                                       
/usr/local/include/wx-2.8/wx/strconv.h:89: note: candidats sont: const wxCharBuffer wxMBConv::cWC2MB(const wchar_t*) const                                                                                                                   
/usr/local/include/wx-2.8/wx/strconv.h:106: note:                 const wxCharBuffer wxMBConv::cWC2MB(const wchar_t*, size_t, size_t*) const                                                                                                 
filemanager.cpp:218: erreur: no matching function for call to ‘wxMBConvUTF8::cWC2MB(const wxChar*, size_t&, size_t*)’
/usr/local/include/wx-2.8/wx/strconv.h:89: note: candidats sont: const wxCharBuffer wxMBConv::cWC2MB(const wchar_t*) const
/usr/local/include/wx-2.8/wx/strconv.h:106: note:                 const wxCharBuffer wxMBConv::cWC2MB(const wchar_t*, size_t, size_t*) const
filemanager.cpp:223: erreur: no matching function for call to ‘wxMBConvUTF16BE::cWC2MB(const wxChar*, size_t&, size_t*)’
/usr/local/include/wx-2.8/wx/strconv.h:89: note: candidats sont: const wxCharBuffer wxMBConv::cWC2MB(const wchar_t*) const
/usr/local/include/wx-2.8/wx/strconv.h:106: note:                 const wxCharBuffer wxMBConv::cWC2MB(const wchar_t*, size_t, size_t*) const
filemanager.cpp:228: erreur: no matching function for call to ‘wxMBConvUTF16LE::cWC2MB(const wxChar*, size_t&, size_t*)’
/usr/local/include/wx-2.8/wx/strconv.h:89: note: candidats sont: const wxCharBuffer wxMBConv::cWC2MB(const wchar_t*) const
/usr/local/include/wx-2.8/wx/strconv.h:106: note:                 const wxCharBuffer wxMBConv::cWC2MB(const wchar_t*, size_t, size_t*) const
filemanager.cpp:233: erreur: no matching function for call to ‘wxMBConvUTF32BE::cWC2MB(const wxChar*, size_t&, size_t*)’
/usr/local/include/wx-2.8/wx/strconv.h:89: note: candidats sont: const wxCharBuffer wxMBConv::cWC2MB(const wchar_t*) const
/usr/local/include/wx-2.8/wx/strconv.h:106: note:                 const wxCharBuffer wxMBConv::cWC2MB(const wchar_t*, size_t, size_t*) const
filemanager.cpp:238: erreur: no matching function for call to ‘wxMBConvUTF32LE::cWC2MB(const wxChar*, size_t&, size_t*)’
/usr/local/include/wx-2.8/wx/strconv.h:89: note: candidats sont: const wxCharBuffer wxMBConv::cWC2MB(const wchar_t*) const
/usr/local/include/wx-2.8/wx/strconv.h:106: note:                 const wxCharBuffer wxMBConv::cWC2MB(const wchar_t*, size_t, size_t*) const
filemanager.cpp:258: erreur: no matching function for call to ‘wxCSConv::cWC2MB(const wxChar*, size_t&, size_t*)’
/usr/local/include/wx-2.8/wx/strconv.h:89: note: candidats sont: const wxCharBuffer wxMBConv::cWC2MB(const wchar_t*) const
/usr/local/include/wx-2.8/wx/strconv.h:106: note:                 const wxCharBuffer wxMBConv::cWC2MB(const wchar_t*, size_t, size_t*) const


Unless I missed the right branch? Do you have a build anywhere downloadable "at home"?
Best, Fab
PS: I expect your branch to be below 1min for opening all projects, which would be fair enough. Actually I could not see how wine overhead + codeblocks.exe could beat it at 1min10

Jenna:

--- Quote from: libfab on May 12, 2009, 02:03:02 am ---Unless I missed the right branch? Do you have a build anywhere downloadable "at home"?

--- End quote ---

No, it's the right branch.
I forgot to post the link. sorry.

The errror looks alittle bit, as if you use an ansi-build of wxWidgets.

Can you post the command that leads to the error ?

EDIT:
no downloadable version of C::B with auibook at the moment, maybe I find the time during the day.

libfab:
Hi Jens,
simply ./bootstrap; ./configure; make
wx2.8 from links  to wx debian repository linked to on your site.
trunk builds OK with it under all configs tested.
Fab

Navigation

[0] Message Index

[#] Next page

Go to full version