Overview
Examples
Screenshots
Comparisons
Applications
Download
Documentation
Tutorials
Bazaar
Status & Roadmap
FAQ
Authors & License
Forums
Funding Ultimate++
Search on this site
Search in forums












SourceForge.net Logo
Home » U++ TheIDE » U++ TheIDE: Installation, Compiling and Running of theide » Slow processing of compilation/linking messages
Slow processing of compilation/linking messages [message #45808] Sat, 09 January 2016 04:47 Go to next message
Novo is currently offline  Novo
Messages: 890
Registered: December 2006
Experienced Contributor
I spotted a performance problem with processing of large amount of compilation/linking messages.
Attached archive contains profiling information which I collected using Intel VTune.
I ran Win64 version of TheIDE built from a couple days old source code.

TheIDE.csv - data in csv format.
TheIDE.xlsx - data pasted into Excel.

Please take a look at a line below. It takes 114 second to build a package.
MakeBuild::BuildPackage	114.355s


  • Attachment: theide.zip
    (Size: 79.96KB, Downloaded 106 times)


Regards,
Novo
Re: Slow processing of compilation/linking messages [message #45842 is a reply to message #45808] Tue, 12 January 2016 12:57 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 12105
Registered: November 2005
Ultimate Member
Just to be sure I am reading it right:

I see that our problem is that it spends 30 seconds in ConsoleLine and 20 seconds in ProcessEvents. Is this correct?

BTW, any hint for testcase? Smile

Mirek
Re: Slow processing of compilation/linking messages [message #45858 is a reply to message #45842] Thu, 14 January 2016 05:15 Go to previous messageGo to next message
Novo is currently offline  Novo
Messages: 890
Registered: December 2006
Experienced Contributor
mirek wrote on Tue, 12 January 2016 06:57
Just to be sure I am reading it right:

I see that our problem is that it spends 30 seconds in ConsoleLine and 20 seconds in ProcessEvents. Is this correct?

BTW, any hint for testcase? Smile

Mirek


It is all about Ide::FindLineError.
Data is taken from the csv file.
                                      Console::Wait	56.2542
                                       Console::Flush	33.9297
                                        Console::AppendOutput	31.305
                                         Console::ToErrors	30.5814
                                          Upp::Callback1<class Upp::String const &>::operator()	30.2399
                                           Upp::Callback1<class Upp::String const &>::Execute	30.236
                                            Upp::Callback1MethodActionArg<struct Ide,void ( Ide::*)(class Upp::String const &,bool),class Upp::String const &,bool>::Execute	30.2312
                                             Ide::ConsoleLine	30.2241
                                              Ide::FindLineError	30.1371
                                               IdeContext::GetMethodVars	13.3675
                                                LoadVarFile	13.0497
                                                 Upp::LoadFile	10.0679
                                                  Upp::FindFile::FindFile	7.20606
                                                   Upp::FindFile::Search	7.16549
                                                    Upp::NormalizePath	5.89279
                                                     Upp::GetCurrentDirectoryA	5.78073
                                                      GetCurrentDirectoryW	5.6651

                                Ide::SetErrorEditor	91.036
                                 Ide::FindLineError	84.486
                                  Upp::FileExists	31.0498
                                   Upp::FindFile::FindFile	30.0988
                                    Upp::FindFile::Search	29.7346
                                     Upp::NormalizePath	20.6142
                                      Upp::GetCurrentDirectoryA	19.9171
                                       GetCurrentDirectoryW	19.2236

                                 PutLinkingEnd	45.8964
                                  Ide::PutLinkingEnd	45.8964
                                   Ide::FindLineError	43.6879
                                    Upp::FileExists	15.7481
                                     Upp::FindFile::FindFile	14.5634
                                      Upp::FindFile::Search	14.4171
                                       Upp::NormalizePath	10.6789
                                        Upp::GetCurrentDirectoryA	10.0785
                                         GetCurrentDirectoryW	9.58546

A test case is simple. You need to compile something that has a lot of error messages.
In my case I tried to compile 32-bit code using 64-bit version of TDM-GCC (by passing -m32) and linking against 64-bit libraries. Smile This is an artificial test case but it highlights the problem.

Thanks.


Regards,
Novo
Re: Slow processing of compilation/linking messages [message #45859 is a reply to message #45858] Thu, 14 January 2016 07:48 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 12105
Registered: November 2005
Ultimate Member
Thanks, this will be easy to optimize.

Mirek
Re: Slow processing of compilation/linking messages [message #45874 is a reply to message #45859] Mon, 18 January 2016 09:59 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 12105
Registered: November 2005
Ultimate Member
Should be now optimized. Please check.
Re: Slow processing of compilation/linking messages [message #45885 is a reply to message #45874] Wed, 20 January 2016 05:02 Go to previous message
Novo is currently offline  Novo
Messages: 890
Registered: December 2006
Experienced Contributor
mirek wrote on Mon, 18 January 2016 03:59
Should be now optimized. Please check.

TheIDE got much faster. Thank you.


Regards,
Novo
Previous Topic: TheIde editor getting sluggish
Next Topic: IDE compilation error
Goto Forum:
  


Current Time: Mon Nov 18 02:06:48 CET 2019

Total time taken to generate the page: 0.02592 seconds