====== gRPC Support for LV ====== NI shares a repo on Github which contains necessary C++ code and support VIs to implement a gRPC server and client in LabVIEW. You can either use the service as defined to implement a generic server via gRPC or use the implementation as a pattern to implement a gRPC service of your design. The project supports Windows, Linux, and Linux RT. => [[https://github.com/ni/grpc-labview]] ---- ===== Performance on Linux RT ===== |< 80% - 18% 18% 18% 18% >| ^ ^ 10 Gb ^ 10 Gb optimized ^ localhost ^ 1 GB switched ^ ^ Messages / s | 7903.45 | 11161.9 | 39685.1 | 4333 | ^ MB / s | 1122.17 | 1122.24 | 4915.76 | 111 | ^ RPC Latency (µs) | 124 | 77 | 24 | 233 | ^ RPC Stream Latency (µs) | 103 | 50 | 15 | 207 | ==== RPC Streaming Latency (µs) ==== ^ ^ Payload Size ^^^^^^^^ ^ ^ 1 ^ 8 ^ 16 ^ 32 ^ 64 ^ 128 ^ 1024 ^ 32768 ^ ^ 10 Gb | 104 | 106 | 106 | 111 | 109 | 112 | 133 | 484 | ^ 10 Gb optimized | 51 | 50 | 52 | 51 | 52 | 54 | 66 | 324 | ^ localhost | 15 | 15 | 15 | 15 | 15 | 15 | 15 | 116 | ^ 1 GB switched | 207 | 207 | 208 | 208 | 208 | 208 | 298 | 2574 | ==== RPC Call Latency (µs) ==== ^ ^ Payload Size |||||||| ^ ^ 1 ^ 8 ^ 16 ^ 32 ^ 64 ^ 128 ^ 1024 ^ 32768 ^ ^ 10 Gb | 124 | 125 | 125 | 127 | 126 | 130 | 151 | 544 | ^ 10 Gb optimized | 77 | 78 | 78 | 79 | 80 | 90 | 151 | 322 | ^ localhost | 24 | 24 | 24 | 24 | 25 | 25 | 27 | 104 | ^ 1 GB switched | 233 | 233 | 233 | 233 | 233 | 246 | 286 | 2676 |