Я использую faiss.lib в java-программе, вызовы методов из Java в прокси-сервер прозрачно передаются экземпляру C ++ через swig. кодирование нравится так:
com.bj58.spider.faiss.Index index;
index.search(query.length, q.cast(), k, distances.cast(), labels.cast());
index.search является интерфейсом c ++, базовый вызов использует openmp для нескольких потоков, работающих для цикла.
#pragma omp parallel for
for (size_t i = i0; i < i1; i++) {
const float * x_i = x + i * d;
и результат в порядке, но я нашелкак только вы выполните index.search, число потоков в java-процессе будет расти. Он никогда не будет освобожден и, наконец, заставит Java-процесс перезапуститься автоматически.
пожалуйста, помогите мне, спасибо!