Is there any way I can find the performance number of UPA, how many message/sec it can handle if client side just simply receive the message and do nothing, what's the latency it is from a message come into the API until it reaches the client.
You can find a detailed Performance comparison document for our Realtime APIs on the customer zone at the following location APIs 7.x Performance Test Results. The document details the test environment, test tools and configuration used for the testing.
As the tests were performed with v7.x APIs they will not fully reflect the performance of the latest v8 APIs.
However, for the described test environment the Maximum sustained throughput achieved was 1.6m updates per second for UPAC Consumer and 1.25m upd/s for UPA Java Consumer. Note that the Consumer does some processing as it needs to decode the payload, calculate the latency value and store the results required for the output report.
The update message latency is measured (in micro seconds) from the time immediately before an entire update message is encoded by the provider until the time the same update message has been completely decoded by the consumer - including the time taken for the message to pass through the ADH + ADS components & TREP backbone. As you will see from the results, Latency sampling at 10,000 upd/s yielded average values of 55μs for UPAC and 56μs for UPAJ. The latency added by the API itself at the Consumer application level should therefore be a fraction of these times.
The source code and documentation for the Performance test tools is included with the UPA package so you can perform the tests for yourself in your TREP environment. You can also use the Provider and Consumer test tools in direct connect mode - thereby eliminating the TREP latency from the figures. The PerfToolsGuide document includes a section on the Direct Connect testing.
I appreciate that the above does not answer the exact questions you asked, but I hope they will provide an indication of the performance capabilities of UPA.