> This is probably at least in part due to Windows on Docker having
extremely poor file system performance even vs. straight NTFS (which isn't
great to begin with).

Well, Krita builds on a normal Windows system are also quite slow (at least
much slower than on Linux). Though they are still much faster than on CI
(about x3-x4 times faster than on CI).

> Hi, sorry for stupid question, but would it be possible/benefittable to
move builds to Linux docker + wine?

Technically, we could even use the cross-compiler to build that. Our
toolchain (llvm-mingw) supports that. Though it would mean one more
platform to support, which we cannot afford right now human-resource-wise.

Theoretically, if we could build the thing in a cross-compiler in WSL2,
that could probably help. Then we could entirely drop the native Windows
build support. Sounds crazy and error-prone though :)

On Tue, Apr 22, 2025 at 1:13 PM Ben Cooksley <bcooks...@kde.org> wrote:

> On Tue, Apr 22, 2025 at 10:53 PM Maciej Jesionowski <yav...@gmail.com>
> wrote:
>
>> Yes, that is a full clean build after the build directory is configured
>> from scratch. The dependencies are prepared before that, and this is just
>> the time to run ninja which lists 4900 build steps or so (I can't
>> remember). I mean, the build isn't exactly very fast even on a reasonably
>> high-end system, so I'm not all too surprised that CI is doing worse.
>> But I'm sure your concerns are valid too. I noticed Docker can be very
>> slow if the host OS is mismatched with the container OS (although I don't
>> know the details of your setup and it's probably not that here).
>>
>
> Docker on Windows uses a Hyper-V virtual machine when there is a mismatch
> if you are using Windows 10 or Windows Server 2019 yes. On Windows 11 or
> Server 2022 that is no longer the case as Microsoft put in place syscall
> interface stability that did not previously exist (much like the Linux
> kernel syscall compatibility promise) meaning you can run older Windows
> userspace components against newer kernels. It does require using a Windows
> 11 / Server 2022 userspace though as a minimum version.
>
> You do not want it using a Hyper-V virtual machine as the performance is
> not only abysmal but you end up in memory management pain land very fast -
> the environment is basically unsuitable for compiling code.
>
> Our systems make use of Server 2022 for that very reason (Windows 11 did
> not exist at the time these systems were being implemented)
>
> Please note that CI runs unit tests as well - which would likely lengthen
> your runtime by a bit.
>
> Cheers,
> Ben
>
>
>>
>> On Tue, Apr 22, 2025 at 12:51 PM Ben Cooksley <bcooks...@kde.org> wrote:
>>
>>> On Tue, Apr 22, 2025 at 10:44 PM Konstantin Kharlamov <
>>> hi-an...@yandex.ru> wrote:
>>>
>>>> On Tue, 2025-04-22 at 07:15 +1200, Ben Cooksley wrote:
>>>> > On Tue, Apr 22, 2025 at 5:57 AM Dmitry Kazakov <dimul...@gmail.com>
>>>> > wrote:
>>>> > > Hi, Ben!
>>>> > >
>>>> >
>>>> >
>>>> > Hey Dmitry,
>>>> >
>>>> > >
>>>> > > As for Krita, most of CI time is spent on the Windows pipeline,
>>>> > > which build extremely slowly due to done obscure filesystem issues
>>>> > > (searching includes is extremely slow). I personally don't know how
>>>> > > to fix it. I tried: 1) PCH builds, 2) relative includes, 3) split
>>>> > > debug info (dwo). The only solution left is to rewrite a huge
>>>> > > portion of Krita to reduce amount of includes. Which is, obviously,
>>>> > > not an option atm.
>>>> > >
>>>> >
>>>> >
>>>> > This is probably at least in part due to Windows on Docker having
>>>> > extremely poor file system performance even vs. straight NTFS (which
>>>> > isn't great to begin with).
>>>> > That will be fixed by VM based CI (progress update - I have most of
>>>> > the tool that will manage the underlying base images written now,
>>>> > just need to finish the VM provisioning part and give it some serious
>>>> > testing)
>>>>
>>>> Hi, sorry for stupid question, but would it be possible/benefittable to
>>>> move builds to Linux docker + wine?
>>>>
>>>
>>> The vast majority of KDE software is built using MSVC (due to the need
>>> for QtWebEngine, which is only supported using MSVC on Windows - MingW and
>>> co need not apply) which is not supported by Wine (or at least not very
>>> well).
>>>
>>> Cheers,
>>> Ben
>>>
>>>
>>

-- 
Dmitry Kazakov

Reply via email to