Re: [Interest] Tricks to improve moc performance?

2020-01-14 Thread Adam Light
On Mon, Dec 23, 2019 at 2:26 PM Adam Light wrote: > > One idea I had was to combine all files in HEADERS into a single giant .h > file, and then call moc.exe once on that file. The single call to moc.exe > would be executed in a single thread, but it would avoid the need to > rediscover all of

Re: [Interest] Tricks to improve moc performance?

2019-12-23 Thread Adam Light
On Thu, Dec 5, 2019 at 5:09 PM Adam Light wrote: > > We have almost 600 classes that use Q_OBJECT, so there are a lot of calls > to moc. We probably don't strictly need the Q_OBJECT macro in some of those > classes, but I would prefer not to start removing Q_OBJECT unless that's > the last

Re: [Interest] Tricks to improve moc performance?

2019-12-10 Thread Thiago Macieira
On Monday, 9 December 2019 14:51:24 PST Hamish Moffatt wrote: > If my memory serves me correctly, we found MOC drastically slower when > we upgraded from Qt 4.8 to 5.x. We had quite a few directories in > INCLUDEPATH, though nothing like the number you mentioned. Qt 5's moc, unlike Qt 4's, does

Re: [Interest] Tricks to improve moc performance?

2019-12-10 Thread Adam Light
On Tue, Dec 10, 2019 at 5:09 AM Michael Jackson wrote: > What did you use to collect the sampling data? Our project also > experiences long build times (30 minutes on a 12 Core Xeon machine) using > Qt5. I would like to be able to zero in on some of the issues instead of > guessing at them. > >

Re: [Interest] Tricks to improve moc performance?

2019-12-10 Thread Michael Jackson
Date: Monday, December 9, 2019 at 5:15 PM To: Qt Interest Subject: Re: [Interest] Tricks to improve moc performance? On Thu, Dec 5, 2019 at 5:09 PM Adam Light wrote: Does anyone else have any ideas of how we could change our build to improve moc performance when Windows decides

Re: [Interest] Tricks to improve moc performance?

2019-12-09 Thread Hamish Moffatt
On 10/12/19 9:14 am, Adam Light wrote: When I previously analyzed the sampling data during a moc.exe run, it was clear that the vast majority of the time was spent satisfying the includes, and most of that was checking whether a concatenation of an include path and a file name are a valid

Re: [Interest] Tricks to improve moc performance?

2019-12-09 Thread Adam Light
On Thu, Dec 5, 2019 at 5:09 PM Adam Light wrote: > > Does anyone else have any ideas of how we could change our build to > improve moc performance when Windows decides to be "slow"? Like, for > example, is there any way to have the moc calls run with only a few moc > processes running at once

Re: [Interest] Tricks to improve moc performance?

2019-12-09 Thread Adam Light
On Fri, Dec 6, 2019 at 6:08 PM Thiago Macieira wrote: > On Friday, 6 December 2019 15:10:41 PST Adam Light wrote: > > > Yes: > https://github.com/qt/qtbase/blob/dev/util/includemocs/includemocs.pl > > > > Thanks. That saved a lot of time. > > > > For what it's worth, after changing all of our

Re: [Interest] Tricks to improve moc performance?

2019-12-07 Thread Uwe Rathmann
On 12/6/19 7:02 PM, Richard Weickelt wrote: By the way: does anyone know about an implementation that avoids moc runs in a similar way how ccache avoids compile runs ? You mean concatenating header and source files containing a Q_OBJECT macro and feeding moc the result? No - the ideas would

Re: [Interest] Tricks to improve moc performance?

2019-12-06 Thread Thiago Macieira
On Friday, 6 December 2019 15:10:41 PST Adam Light wrote: > > Yes: https://github.com/qt/qtbase/blob/dev/util/includemocs/includemocs.pl > > Thanks. That saved a lot of time. > > For what it's worth, after changing all of our code to directly #include > the moc output, the total build time

Re: [Interest] Tricks to improve moc performance?

2019-12-06 Thread Thiago Macieira
On Friday, 6 December 2019 10:06:24 PST Richard Weickelt wrote: > > This solution gets you a single build for all the the mocs, which is good, > > but won't generate the best code that Peppe was talking about. You want > > the moc for a given class to be in the class's own .cpp. > > Unless you

Re: [Interest] Tricks to improve moc performance?

2019-12-06 Thread Thiago Macieira
On Friday, 6 December 2019 10:21:24 PST Michael Jackson wrote: > Dear Thiago, > Could you expand a bit on your comment? We use CMake for our build > system and the AUOT_MOC feature. I just would like to know what exactly I > am missing by doing this. Run the includemocs script that I linked

Re: [Interest] Tricks to improve moc performance?

2019-12-06 Thread Adam Light
On Fri, Dec 6, 2019 at 9:57 AM Thiago Macieira wrote: > On Friday, 6 December 2019 06:30:36 PST Adam Light wrote: > > Yes, that's definitely on my TODO list, though I don't think it's going > to > > do much to address the current situation in which moc itself is the main > > bottleneck. But any

Re: [Interest] Tricks to improve moc performance?

2019-12-06 Thread Michael Jackson
On 12/6/19, 12:52 PM, "Interest on behalf of Thiago Macieira" wrote: On Friday, 6 December 2019 01:16:31 PST Kevin Funk via Interest wrote: > On that note, CMake goes one step further and removes the need to do this > manually. Using CMake's AUTOMOC feature, CMake will

Re: [Interest] Tricks to improve moc performance?

2019-12-06 Thread Richard Weickelt
> This solution gets you a single build for all the the mocs, which is good, > but > won't generate the best code that Peppe was talking about. You want the moc > for a given class to be in the class's own .cpp. Unless you build with link-time optimization enabled, I suppose. Because then

Re: [Interest] Tricks to improve moc performance?

2019-12-06 Thread Richard Weickelt
> By the way: does anyone know about an implementation that avoids moc runs in > a similar way how ccache avoids compile runs ? You mean concatenating header and source files containing a Q_OBJECT macro and feeding moc the result? I cannot imagine that this would be a safe transformation in

Re: [Interest] Tricks to improve moc performance?

2019-12-06 Thread Thiago Macieira
On Friday, 6 December 2019 06:30:36 PST Adam Light wrote: > Yes, that's definitely on my TODO list, though I don't think it's going to > do much to address the current situation in which moc itself is the main > bottleneck. But any improvement will help. > > Does anyone know of a script or other

Re: [Interest] Tricks to improve moc performance?

2019-12-06 Thread Thiago Macieira
On Friday, 6 December 2019 01:52:52 PST Giuseppe D'Angelo via Interest wrote: > Sorry, not the code generated by moc -- the code generated by the > > compiler/linker. See e.g. here: > > https://codereview.qt-project.org/c/qt/qtbase/+/152423 it also enables the "private member never used' warning

Re: [Interest] Tricks to improve moc performance?

2019-12-06 Thread Thiago Macieira
On Friday, 6 December 2019 01:16:31 PST Kevin Funk via Interest wrote: > On that note, CMake goes one step further and removes the need to do this > manually. Using CMake's AUTOMOC feature, CMake will automatically create ONE > mocs_compilations.cpp file per target which in turn includes all

Re: [Interest] Tricks to improve moc performance?

2019-12-06 Thread Thiago Macieira
On Friday, 6 December 2019 00:42:22 PST Uwe Rathmann wrote: > A side note: the code of Qwt project runs with all Qt versions >= 4.4 > and therefore allows to compare the impact of the Qt headers on the > compile time. It is some time ago, when I did this, but the differences > were significant.

Re: [Interest] Tricks to improve moc performance?

2019-12-06 Thread Adam Light
On Fri, Dec 6, 2019 at 12:42 AM Uwe Rathmann wrote: > On 12/6/19 2:09 AM, Adam Light wrote: > > > Does anyone else have any ideas of how we could change our build to > > improve moc performance when Windows decides to be "slow"? > > Something you can try is to include the moc file at the end of

Re: [Interest] Tricks to improve moc performance?

2019-12-06 Thread Uwe Rathmann
On 12/6/19 9:48 AM, Giuseppe D'Angelo via Interest wrote: This trick is used in several places in Qt itself (look for "includemoc" in commits). Not only it helps build times but also it produces slightly better code overall. By the way: does anyone know about an implementation that avoids

Re: [Interest] Tricks to improve moc performance?

2019-12-06 Thread Giuseppe D'Angelo via Interest
Hi, Il 06/12/19 10:48, Dmitriy Purgin ha scritto: Hi Giuseppe, > This trick is used in several places in Qt itself (look for "includemoc" > in commits). Not only it helps build times but also it produces slightly > better code overall. Could you please elaborate what exactly do you mean

Re: [Interest] Tricks to improve moc performance?

2019-12-06 Thread Dmitriy Purgin
Hi Giuseppe, > This trick is used in several places in Qt itself (look for "includemoc" > in commits). Not only it helps build times but also it produces slightly > better code overall. Could you please elaborate what exactly do you mean under 'better code'? How does including the xxx_moc.cpp

Re: [Interest] Tricks to improve moc performance?

2019-12-06 Thread Kevin Funk via Interest
On Friday, 6 December 2019 09:48:51 CET Giuseppe D'Angelo via Interest wrote: > Il 06/12/19 09:42, Uwe Rathmann ha scritto: > > Something you can try is to include the moc file at the end of your cpp > > file. This can be done like this: > > > > #include "moc_XYZ.cpp" > > > > This type of

Re: [Interest] Tricks to improve moc performance?

2019-12-06 Thread Giuseppe D'Angelo via Interest
Il 06/12/19 09:42, Uwe Rathmann ha scritto: Something you can try is to include the moc file at the end of your cpp file. This can be done like this: #include "moc_XYZ.cpp" This type of construction is at least supported by qmake. This does not reduce the number of moc runs, but it reduces

Re: [Interest] Tricks to improve moc performance?

2019-12-06 Thread Uwe Rathmann
On 12/6/19 2:09 AM, Adam Light wrote: Does anyone else have any ideas of how we could change our build to improve moc performance when Windows decides to be "slow"? Something you can try is to include the moc file at the end of your cpp file. This can be done like this: #include

Re: [Interest] Tricks to improve moc performance?

2019-12-05 Thread Henry Skoglund
On 2019-12-06 02:09, Adam Light wrote: We have several machines running Windows 10 that are quite powerful (eg. 8 or 16 core (16 or 32 thread) processors, lots of RAM, NVMe SSD storage). However, since upgrading to Windows 1903, we have noticed that sometimes the compile time of our large Qt

[Interest] Tricks to improve moc performance?

2019-12-05 Thread Adam Light
We have several machines running Windows 10 that are quite powerful (eg. 8 or 16 core (16 or 32 thread) processors, lots of RAM, NVMe SSD storage). However, since upgrading to Windows 1903, we have noticed that sometimes the compile time of our large Qt 5.12 based application increases