Почему предварительное предварительное получение изображения Expo резко медленнее по сравнению с Android?IOS

Программируем под IOS
Ответить
Anonymous
 Почему предварительное предварительное получение изображения Expo резко медленнее по сравнению с Android?

Сообщение Anonymous »

Я использую изображение Expo для кэша и предварительные изображения в моем нативном приложении React
Это отлично работает на Android, но он очень медленно на iOS
Для отладки я добавил много журналов, чтобы получить идею, что это мой код < /p>
import { Image } from "expo-image";
import { useEffect, useState } from "react";
import { assetUrls } from "../Constants/assetConstants";
import { Platform } from "react-native";

export const usePreloadImages = () => {
const [loaded, setLoaded] = useState(false);
useEffect(() => {
let cancelled = false;
const preload = async () => {
console.log("preloading mate");
const start = Date.now();
try {
const results = await Promise.all(
assetUrls.map(async (url) => {
console.log("⏳ Prefetching:", url);
try {
await Image.prefetch(url);
console.log("✅ Prefetched:", url);
} catch (err) {
console.log("❌ Prefetch failed:", url, err);
}
})
);
const end = Date.now();
console.log("end at:", end);
console.log(`✅ Prefetch complete! Time taken: ${end - start} ms`);
console.log("Prefetch complete verifying cache");
// await debugImageCache(assetUrls);
if (!cancelled) setLoaded(true);
} catch (err) {
console.error("💥 Error in prefetch loop:", err);
if (!cancelled) setLoaded(true);
}
};
preload();
return () => {
cancelled = true;
};
}, []);
return loaded;
};
< /code>
и при сравнении времени я получил это < /p>
Android Prefetch Время взято: 2052 мс
< /code>
prefetch ios Время взято: 31636 мс
Так почему же тот же код занимает почти на 150% больше времени и что делать, чтобы решить это

Подробнее здесь: https://stackoverflow.com/questions/797 ... to-android
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»