Developer forums (C::B DEVELOPMENT STRICTLY!) > Development
[Linux] Slower performance on opening than under wine
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