Ответ 1
1. Можно ли создавать библиотеки потребления C/С++ с использованием компилятора AOT?
Это не должно быть возможным, поскольку у нас нет заголовков, и это не строго класс C, который создает компилятор AOT, а только машинный код.
(Боковое примечание: Java-классы могут быть вызваны внутри C/С++, но поскольку компиляторы AOT производят один двоичный файл, я уверен, что вы не можете получить доступ к своим Java-классы из-за пределов этого файла).
Ответ: NO
2. Имеет ли выпущенный AOT двоичный файл, все еще имеет проблему с производительностью моста?
Во-первых, нам нужно знать: если вызов любого класса C/С++ из Java с использованием моста (например, JNI, javacpp и т.д.) всегда приведет к потере производительности?
В соответствии с "W_" из ##[email protected]:
это зависит от того, как вы его вызываете (например, если аргументы должны быть преобразованный и такой). Просто выслушивать библиотечную функцию без каких-либо аргументов или возвращать преобразование типа не должно занять какое-либо другое время, чем в любом C.
Но поскольку я использую JavaCV в качестве моста для библиотеки OpenCV, он использует несколько типов объектов, которые, если это указано выше, должны влиять на производительность.
Итак, может быть логично, что компиляция AOT может немного ускорить выполнение, но все равно должна пройти через мост и сделать преобразование типов.
Ответ: ДА (но может быть немного быстрее)
3. Вызов библиотек C/С++ в VALA имеет такую же производительность, как вызов их из C?
Когда он преобразуется непосредственно в C, я не вижу причины, почему нет. Это было поддержано "nemequ" из #[email protected]:
в значительной степени, да. вала имеет привычку использовать временные переменные, но что именно то, что большинство компиляторов легко оптимизирует далеко. если вы используете gcc, pass -O2, и вы должны быть хорошими.
Ответ: YES
Тем не менее я не знаю, почему "кто-то" проголосовал за закрытие моего вопроса, и он даже не потрудился прокомментировать это. Я думаю, что эти вопросы/ответ достаточно конструктивны (как прокомментировал pst), и они могут быть полезны другим людям, которые являются новыми для компиляторов VALA или AOT.
Если мои выводы неверны, исправьте меня.