The taxi service systems in big cities are immensely complex due to the interaction and self-organization between taxi drivers and passengers. An inefficient taxi service system leads to more empty trips for drivers and longer waiting time for passengers, and introduces unnecessary congestion to road network. Although understanding the performance of urban taxi service system is important, the performance of the urban taxi service is rarely examined. In this experimental paper, we investigate the efficiency level of the taxi service system using real world large-scale taxi trip data. By assuming a hypothetical system-wide recommendation system, two approaches are proposed to find the theoretical optimal strategy that minimizes the cost of vacant trips, and results in minimum number of taxis required to satisfy all observed trips. The optimization problems are transformed into equivalent graph problems and solved using polynomial time algorithms. The taxi trip data in New York City is used to quantitatively examine the gap between the current system performance and the theoretically optimal system. The numerical results indicate that if a centralized system-wide recommendation scheme applied, it is possible to reduce 20% to 90% total vacant trip cost depending on different objectives, and 1/3 of all taxis that required to serve all observed trips. The huge performance gap obtained suggests an urgent need for the system reconsideration in taxi recommendation system design.