Results before optimization: TEST drawArc 10000 times: average 1477.3333333333333ms [641-1632] TEST drawImage 5000 times: average 844.3333333333334ms [394-1045] TEST drawLine 10000 times: average 1362.0833333333333ms [503-1583] TEST drawOval 10000 times: average 1469.75ms [583-1647] TEST drawPolygon 10000 times: average 1574.5ms [676-2018] TEST drawPolyline 10000 times: average 1582.75ms [662-2026] TEST drawRect 10000 times: average 1595.4166666666667ms [754-1873] TEST drawString 10000 times: average 1460.6666666666667ms [521-1614] TEST fillArc 10000 times: average 1479.25ms [603-1644] TEST fillOval 10000 times: average 1442.0833333333333ms [587-1598] TEST fillPolygon 10000 times: average 1747.6666666666667ms [993-1997] TEST fillRect 10000 times: average 1343.3333333333333ms [516-1572] TEST fillRoundRect 10000 times: average 2584.4166666666665ms [1584-2804] Results after optimization: TEST drawArc 10000 times: average 280.1666666666667ms [180-334] TEST drawImage 5000 times: average 279.5833333333333ms [167-437] TEST drawLine 10000 times: average 251.75ms [205-326] TEST drawOval 10000 times: average 280.3333333333333ms [164-349] TEST drawPolygon 10000 times: average 477.4166666666667ms [309-770] TEST drawPolyline 10000 times: average 482.25ms [315-766] TEST drawRect 10000 times: average 408.3333333333333ms [226-576] TEST drawString 10000 times: average 299.5833333333333ms [202-331] TEST fillArc 10000 times: average 272.0833333333333ms [179-322] TEST fillOval 10000 times: average 265.0833333333333ms [180-328] TEST fillPolygon 10000 times: average 542.0833333333334ms [258-701] TEST fillRect 10000 times: average 262.9166666666667ms [159-418] TEST fillRoundRect 10000 times: average 630.25ms [319-736] Results of Cairo-based peers: TEST drawArc 10000 times: average 3508.4166666666665ms [2024-5438] TEST drawImage 5000 times: average 567.0833333333334ms [135-1337] TEST drawLine 10000 times: average 1457.4166666666667ms [352-2855] TEST drawOval 10000 times: average 5972.583333333333ms [3494-9069] TEST drawPolygon 10000 times: average 5188.0ms [949-8755] TEST drawPolyline 10000 times: average 5198.583333333333ms [952-8709] TEST drawRect 10000 times: average 1669.5ms [397-3197] TEST drawString 10000 times: average 5349.666666666667ms [4119-7650] TEST fillArc 10000 times: average 2333.25ms [1276-3535] TEST fillOval 10000 times: average 3251.6666666666665ms [1728-5541] TEST fillPolygon 10000 times: average 3626.75ms [553-6321] TEST fillRect 10000 times: average 326.6666666666667ms [191-432] TEST fillRoundRect 10000 times: average 4409.166666666667ms [2768-6146] Results with JDK5: TEST drawArc 10000 times: average 165.16666666666666ms [50-302] TEST drawImage 5000 times: average 178.16666666666666ms [106-263] TEST drawLine 10000 times: average 128.66666666666666ms [39-217] TEST drawOval 10000 times: average 141.5ms [71-236] TEST drawPolygon 10000 times: average 214.66666666666666ms [101-534] TEST drawPolyline 10000 times: average 262.5ms [114-564] TEST drawRect 10000 times: average 85.91666666666667ms [33-158] TEST drawString 10000 times: average 176.75ms [40-309] TEST fillArc 10000 times: average 138.08333333333334ms [81-172] TEST fillOval 10000 times: average 160.16666666666666ms [36-268] TEST fillPolygon 10000 times: average 465.8333333333333ms [103-733] TEST fillRect 10000 times: average 111.66666666666667ms [36-223] TEST fillRoundRect 10000 times: average 252.83333333333334ms [109-405]