Graph API предназначен для поставщиков графов, а Traversal API (который на самом деле является языком Gremlin) предназначен для пользователей. Вы определенно уменьшаете мобильность своего кода, используя Graph API. «Серверные графы», такие как Amazon Neptune, DSE Graph, CosmosDB и т. Д., Представляют среды, которые не дают вам доступа к Graph API, и поэтому вы никогда не сможете переключиться на них, если захотите. , Вы также начинаете строить свое приложение на основе двух API, что создает неунифицированный подход к вашей разработке (т. Е. В некоторых случаях вы передаете объект Graph
для API Graph, а в некоторых случаях GraphTraversalSource
для API Traversal) .
Я не знаю, как вы выполняли свои тесты, но меня не так сильно удивляет, что вы видите небольшую разницу в производительности в микропроцессорах. API-интерфейс Traversal требует определенных затрат, но TinkerPop продолжает совершенствоваться в этой области - рассмотрим недавно закрытый TINKERPOP-1950 как пример чего-то недавнего. Я не знаю наверняка, что это поможет для вашего конкретного теста, поскольку тесты - это непростые вещи, но дело в том, что мы не прекратили попытки оптимизировать эту область.
Наконец, если обсуждения в сообществе TinkerPop продолжатся в том же направлении, что и в прошлом году, я вполне ожидаю, что API Graph исчезнет в TinkerPop 4.x. У этого выпуска нет сроков, и он находится только на стадии обсуждения, но я полагаю, что если вы намерены оставить свое приложение в течение многих лет, эта информация может вас заинтересовать.