Почему предварительная загрузка Expo Image на iOS значительно медленнее, чем на Android?IOS

Программируем под IOS
Ответить
Anonymous
 Почему предварительная загрузка Expo Image на iOS значительно медленнее, чем на Android?

Сообщение Anonymous »

Я использую expo Image для кэширования и предварительной выборки изображений в моем собственном приложении, реагирующем на реакцию.
Он отлично работает на Android, но очень медленно на IOS.
В целях отладки я добавил к этому много журналов, чтобы понять, вот мой код

Код: Выделить всё

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;
};
и, сравнивая время, я получил это.
Предварительная выборка Android завершена! Затраченное время: 2052 мс Предварительная выборка iOS завершена! Затраченное время: 31636 мс
так почему же тот же код занимает почти на 150% больше времени и что делать, чтобы решить эту проблему

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

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

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

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

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

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