[ https://issues.apache.org/jira/browse/RANGER-3395?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17412940#comment-17412940 ]
caozhiqiang edited comment on RANGER-3395 at 9/10/21, 3:39 AM: --------------------------------------------------------------- !3395-1.png|width=916,height=211! [~pradeep], above is a performance report from a java performance analyze tool. After removed Integer.toString() call, RangerDefaultAuditHandler.generateNextAuditEventId() would no longer appear in performance report. And I also use below code to test Integer.toString() performance: {code:java} int nextId = counter.getAndIncrement(); long startTime = System.currentTimeMillis(); for (int i = 0; i < 500000; i++){ ++nextId; String ret1 = UUID + Integer.toString(nextId); } long endTime = System.currentTimeMillis(); long totalTime = endTime - startTime; System.out.println(totalTime); long startTime2 = System.currentTimeMillis(); for (int i = 0; i < 500000; i++) { ++nextId; String ret2 = UUID + nextId; } long endTime2 = System.currentTimeMillis(); long totalTime2 = endTime2 - startTime2; System.out.println(totalTime2); {code} With Integer.toString() cost 64ms and without Integer.toString() only cost 16ms, which takes 4 times as much time as removing Integer.toString(). Thanks for your review. was (Author: caozhiqiang): !3395-1.png|width=916,height=211! [~pradeep], above is a performance report from a java performance analyze tool. After removed Integer.toString() call, RangerDefaultAuditHandler.generateNextAuditEventId() would no longer appear in performance report. And I also use below code to test Integer.toString() performance: {code:java} int nextId = counter.getAndIncrement(); long startTime = System.currentTimeMillis(); for (int i = 0; i < 500000; i++){ ++nextId; String ret1 = UUID + Integer.toString(nextId); } long endTime = System.currentTimeMillis(); long totalTime = endTime - startTime; System.out.println(totalTime); long startTime2 = System.currentTimeMillis(); for (int i = 0; i < 500000; i++) { ++nextId; String ret2 = UUID + nextId; } long endTime2 = System.currentTimeMillis(); long totalTime2 = endTime2 - startTime2; System.out.println(totalTime2); {code} With Integer.toString() cost 64ms and without Integer.toString() only cost 16ms, which case 1 takes 4 times as much time as case 2. Thanks for your review. > Unnecessary 'Integer.toString()' call which degrade performance > --------------------------------------------------------------- > > Key: RANGER-3395 > URL: https://issues.apache.org/jira/browse/RANGER-3395 > Project: Ranger > Issue Type: Improvement > Components: plugins > Affects Versions: 2.0.1 > Reporter: caozhiqiang > Assignee: caozhiqiang > Priority: Major > Attachments: 3395-1.png, RANGER-3395-branch-2.0.1.001.patch > > > There are several place used unnecessary Integer.toString() call and take to > much time in program running. these should be removed. -- This message was sent by Atlassian Jira (v8.3.4#803005)