Производительность: сохраняйте изображение по умолчанию или кодируйте его каждый раз - PullRequest
0 голосов
/ 09 марта 2020

У меня есть небольшое приложение REST, которое представляет собой телефонную книгу с фотографиями пользователей. Он запрашивает базу данных около 5000 пользователей, до сих пор только 2-300 из них имеют изображения, поэтому у меня есть изображение по умолчанию, которое я использую в других случаях.

В моем классе ImageHandler у меня есть процедура, которая кодирует это изображение по умолчанию.

Теперь я хочу знать довольно общее: лучше ли сохранять стандартное изображение base64, закодированное как stati c Строка в классе (поэтому, кодируйте его, как только приложение запустится). Или не сохранять его в виде строки и кодировать его из изображения (png; 4 КБ) каждый раз, когда его запрашивают?

Это приложение написано на Java / Spring, но я также рад за некоторые языковые спецификации c input.

Неужели это только вопрос времени перезагрузки или использования памяти?

public static String encode(String imagePath) {
    if (!STANDARD_USER_IMAGE_BASE64.isEmpty()) {
        return STANDARD_USER_IMAGE_BASE64;
    }

    String base64Image = "";
    File file = new File(imagePath);
    try (FileInputStream imageInFile = new FileInputStream(file)) {
        // Reading a Image file from file system
        byte imageData[] = new byte[(int) file.length()];
        imageInFile.read(imageData);
        STANDARD_USER_IMAGE_BASE64 = Base64.getEncoder().encodeToString(imageData);
    } catch (FileNotFoundException e) {
        System.out.println("Image not found" + e);
    } catch (IOException ioe) {
        System.out.println("Exception while reading the Image " + ioe);
    }
    return STANDARD_USER_IMAGE_BASE64;

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...