Wbudowany system ma sprzęt wymagany do uruchamiania aplikacji Qt Quick, ma ładny procesor i dobry układ GPU, ale ma bardzo wolną pamięć nieulotną.Jak radzić sobie z dużymi plikami zasobów Qt w systemie o bardzo wolnym miejscu?
Jak GUI ma wiele obrazów, mam następujący dylemat:
- jeśli kładę obrazy do pliku QRC, zostanie skompilowany do pliku wykonywalnego, więc aplikacja będzie ładować bardzo powoli .
- jeśli załadować obrazy jako normalne pliki na żądanie (nie wszystkie z nich są widoczne w każdym menu i okna), program będzie zawiesić na jakiś czas, kiedy takie menu lub okno dialogowe, czekając na zdjęcia do załadowania z pamięci flash.
- Zarządzanie poszczególnymi zdjęciami ręcznie (na przykład w ręcznie napisanym wątku tła) wydaje się zbyt dużym wysiłkiem, więc mam nadzieję, że istnieje bardziej eleganckie rozwiązanie.
Czy istnieje dobry sposób na wykorzystanie systemu zarządzania zasobami Qt do załadowania zasobów w tle? Obrazy używane w głównym interfejsie graficznym powinny być załadowane, a ekran powitalny wyświetla ładny pasek postępu, a pozostałe mogą być ładowane cicho w tle po uruchomieniu głównej aplikacji. Dobrym dodatkiem byłoby, gdybym mógł selektywnie ładować i zwolnić określone pliki zasobów (w niektórych stanach aplikacji niektóre pliki zasobów nie są potrzebne, więc byłoby miło, gdybym mógł zwolnić trochę pamięci)
Czy istnieje elegancki sposób na rozwiązanie tego problemu z systemem zasobów Qt, czy muszę ręcznie zarządzać wszystkimi obrazami?
Czy można je załadować w tle na ekranie, zanim zasoby zostaną użyte? – Simple
Wątpię, czy możesz zdecydować, co załadować najpierw, a potem w ramach zasobów, myślę, że może być możliwe pewnego rodzaju "podpięcie" do ładowania zasobów, ale z Qt zawsze jest zły pomysł z użyciem "sztuczek", ponieważ możesz stracić wiele -platform capabiliies. Gdybym był na twoim miejscu, ładowałbym obrazy jako zwykłe pliki w rodzaju inteligentnej pamięci podręcznej, w której ładujesz najpierw to, czego naprawdę potrzebujesz, a potem poznaję, czego możesz potrzebować później, i starasz się zachować jak najwięcej w pamięci RAM. – Marco
@Marco: Nawet gdybym nie mógł określić, w jakiej kolejności są ładowane pliki w qrc, byłoby bardzo użyteczne, gdybym mógł zarządzać załadowaniem pliku qrc w tle, gdy aplikacja jest już uruchomiona. Jeśli zajdzie taka potrzeba, będę mógł użyć wielu plików qrc i załadować tylko ten, którego potrzebuję. Mój problem polega na tym, że jeśli qrc zostanie skompilowany do pliku wykonywalnego, plik wykonywalny będzie bardzo duży i dlatego rozpocznie się bardzo wolno. – vsz