class PerfExample4 extends PerfExample3 {

    private static final Logger LOG = Log.logger(PerfExample3.class);

    /**
     * Main method
     *
     * @param args 3 arguments, 1st should be 1, meaning single thread,
     *             product of 2nd and 3rd is total number of "person" vertices
     * @throws InterruptedException
     */
    public static void main(String[] args) throws Exception {
        PerfExample4 tester = new PerfExample4();
        tester.test(args);

        // Stop daemon thread
        HugeFactory.shutdown(30L);
    }

    @Override
    protected void testQueryVertex(GraphManager graph,
                                   int threads,
                                   int thread,
                                   int multiple) {<FILL_FUNCTION_BODY>}

    protected static long elapsed(long start) {
        long current = System.currentTimeMillis();
        return current - start;
    }
}

        int total = threads * multiple * 100;
        for (int i = 1; i <= total; i *= 10) {
            LOG.info(">>>> limit {} <<<<", i);
            long current = System.currentTimeMillis();
            List<Vertex> persons = graph.traversal().V()
                                        .hasLabel("person")
                                        .limit(i).toList();
            assert persons.size() == i;
            LOG.info(">>>> query by label index, cost: {}ms", elapsed(current));

            current = System.currentTimeMillis();
            persons = graph.traversal().V()
                           .has("city", "Hongkong")
                           .limit(i)
                           .toList();
            assert persons.size() == i;
            LOG.info(">>>> query by secondary index, cost: {}ms",
                     elapsed(current));

            current = System.currentTimeMillis();
            persons = graph.traversal().V()
                           .has("age", 3)
                           .limit(i)
                           .toList();
            assert persons.size() == i;
            LOG.info(">>>> query by range index, cost: {}ms", elapsed(current));
        }
    
<methods>public non-sealed void <init>() ,public static void main(java.lang.String[]) throws java.lang.Exception<variables>private static final Logger LOG