GRPC, не производящий код обслуживания [дубликат]

зарезервировать, если вы не хотите, чтобы объекты были инициализированы при сохранении. Кроме того, вы можете предпочесть логически дифференцировать и отслеживать свой счет в сравнении с его количеством использования при изменении размера. поэтому в интерфейсе есть поведенческая разница - вектор будет представлять одинаковое количество элементов при сохранении и будет иметь 100 элементов, размер которых будет уменьшен в вашем сценарии.

Есть ли лучший выбор в этот сценарий?

полностью зависит от ваших целей при борьбе с поведением по умолчанию. некоторые люди предпочитают настраиваемые распределители, но нам действительно нужно лучше понять, что именно вы пытаетесь решить в своей программе, чтобы хорошо вам посоветовать.

fwiw, многие векторные реализации просто удваивают выделенный элемент подсчитывайте, когда они должны расти - пытаетесь ли вы минимизировать максимальные размеры размещения или пытаетесь зарезервировать достаточно места для какой-либо незаблокированной программы или что-то еще?

15
задан Dhanuka 26 June 2015 в 12:44
поделиться

1 ответ

В командной строке, которую вы показываете, не включен плагин grpc. Вам нужно указать аргумент _out для плагина grpc, который включает плагин и указывает, где он должен выводить файлы. Поскольку плагин, вероятно, не находится в вашем PATH, вам также необходимо сообщить протоку, как найти плагин с --plugin.

Итак, вам нужно добавить два аргумента:

--plugin=protoc-gen-grpc-java=path/to/protoc-gen-grpc-java --grpc-java_out=path/to/output/dir

Для получения дополнительной информации см. документацию компилятора gRPC .

17
ответ дан Eric Anderson 15 August 2018 в 20:47
поделиться
  • 1
    Привет, Эрик, я пытаюсь выполнить эту работу, я загрузил protoc-gen-grpc-java.jar из maven, но независимо от того, как я его передаю этому аргументу, он все равно скажет мне, что «файл не найден или не является исполняемым ", может быть, у меня будет другой артефакт вместо jar-файла? – vach 27 April 2016 в 10:19
  • 2
    это ваш путь «путь / в / protoc-gen-grpc-java». указывая на файл jar или что-то еще? – vach 27 April 2016 в 10:22
  • 3
    path / to / protoc-gen-grpc-java является двоичным (например, встроенным двоичным файлом ELF для Linux). Это не JAR. Вы можете найти предварительно созданные версии в search.maven.org/… (например, linux-x86_32.exe, который можно использовать как --plugin=protoc-gen-grpc-java=path/to/linux-x86_32.exe) – Eric Anderson 27 April 2016 в 21:43
  • 4
    Спасибо, что я уже скомпилировал его из проекта github, хотя он генерировал недопустимый код (grpc-all.jar не хватало какого-то кода, который использовался в сгенерированном), поэтому я только что создал мини-проект gradle, который только заботится о части protobuf ... надеюсь, что в будущем мы будем иметь официальную поддержку sbt ... – vach 28 April 2016 в 03:45
  • 5
    @EricAnderson Thans, это то, что я искал. Тем не менее, ELF двоичный с .exe суффикс, это звучит очень странно;) Я не верил, что это действительно то, что нужно, когда я нашел его в первый раз ... – Mi-La 12 October 2017 в 12:19
Другие вопросы по тегам:

Похожие вопросы: