Я выполняю базовое шифрование/дешифрование на четырехъядерном Android-телефоне.Как распределить задачу для каждого ядра процессора?
В настоящее время шифрование составляет 1,45 секунды на файл. Для 200 файлов размером около 5 минут.
Я мог бы улучшить работу в 4 раза, если бы использовал все 4 ядра.
for(i=0;i<200;i++)
{
encrypt(file[i]);
}
будет упрощенным псевдокодом, который я использую сейчас.
Как я могу вызвать функцию шифрования параллельно на всех 4 процессорных ядрах в программировании Java-андроида?
Замечательно написанный ответ! Однако из анализа я видел, что переименование файла (после шифрования) потребляет больше времени. Будет ли этот метод переименовываться параллельно или менеджер файлов Android разрешит ExecutorService запускать один за другим для переименования? – user3041058
Это зависит от многих факторов. Если целевой раздел тот же, что и переименование, будет быстро (но среда проверит ваши права на переименование файлов, и этот момент может замедлить производительность приложения), но если разделы не совпадают, это зависит от размера файла, потому что он скопирует весь файл в новый раздел. –