Карта памяти имеет потенциал для огромного преимущества по сравнению с традиционным IO. Он позволяет операционной системе считывать данные из исходного файла, когда затрагиваются страницы в файле с отображением памяти. Это работает путем создания страниц с ошибками, которые ОС обнаруживает, а затем ОС автоматически загружает соответствующие данные из файла.
Это работает так же, как механизм пейджинга, и обычно оптимизируется для высокоскоростного ввода-вывода путем считывания данных о границах и размерах системной страницы (обычно 4K) - размер, для которого оптимизированы большинство кэшей файловой системы.
Как показано в Справочнике по языку сборки Gradle , вы можете настроить свойство idea.module.excludeDirs
, имеющее тип List<File>
. Очевидно, IDEA не поддерживает включение подкаталогов исключенных каталогов, поэтому вам придется исключить всех братьев и сестер из build/generated-sources
. Например:
idea {
module {
excludeDirs = [file(".gradle")]
["classes", "docs", "dependency-cache", "libs", "reports", "resources", "test-results", "tmp"].each {
excludeDirs << file("$buildDir/$it")
}
}
}
Если поддерживается плагином Protocol Buffer, может быть проще поместить сгенерированные источники в место за пределами build
и сделать это место известным для задачи clean
(например, clean.delete "generated-sources"
).