2017-01-29 27 views
9

Qt 5.8 miało pochodzić z opcjonalnego kompilatora qtquick z wyprzedzeniem, zamiast tego zostało dostarczone z kompilatorem typu "jit-a-jit", funkcją, która jest domyślnie włączona i buforuje skompilowane pliki QML na dysku w celu ulepszenia wydajność uruchamiania i zmniejszyć zużycie pamięci.Czy buforowanie QML w Qt 5.8 może być wyłączone dla konkretnego projektu?

Funkcja ta pojawia się z seriousbugs, co znacznie się zmniejsza, lub w moim przypadku nawet całkowicie neguje jej zalety, ponieważ nie miałem problemu z początkowymi czasami uruchamiania, a testowanie nie ujawniło żadnych ulepszeń użycia pamięci cokolwiek.

To, co chciałbym zrobić, to zrezygnować z tej funkcji w moim projekcie, ale nie wydaje mi się, jak to zrobić. Powrót do Qt 5.7.1 nie jest opcją, ponieważ mój projekt opiera się na innych nowych funkcjach wprowadzonych za pomocą 5.8.

Odpowiedz

10

Dodaj QML_DISABLE_DISK_CACHE (ustaw 1) do zmiennych środowiskowych. Powinieneś być w stanie to zrobić wewnątrz aplikacji poprzez qputenv - umieść go gdzieś w main przed załadowaniem zawartości QML.

3

Kredyt do peppe za poinformowanie nas o zmiennej środowiskowej, ale qputenv() przyjmuje tylko QByteArray jako parametr wartości, więc 1 nie będzie działać.

Dwie opcje, które działają:

qputenv("QML_DISABLE_DISK_CACHE", "1"); // or 
qputenv("QML_DISABLE_DISK_CACHE", "true"); 

Ten sukces wyłącza pamięć podręczną i zapobiega związane z tym błędy z manifestacji.

Powiązane problemy