1- # Copyright (c) 2024, 2024 , Oracle and/or its affiliates. All rights reserved.
1+ # Copyright (c) 2024, 2025 , Oracle and/or its affiliates. All rights reserved.
22# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
33#
44# The Universal Permissive License (UPL), Version 1.0
4141# This benchmark hits the GetRegisteredClassNodes as much as possible with one registration
4242
4343import polyglot
44- from java .util import LinkedList
45- from java .util import List
46-
47-
44+ import sys
45+ from java .util import List , ArrayList
4846
4947@polyglot .interop_type (List )
5048class JList :
5149 def append (self , value ):
5250 self .add (value )
5351
54- # def __getitem__(self, item):
55- # return self.get(item)
52+ def __getitem__ (self , item ):
53+ return self .get (item )
5654
5755 def get_value (self ):
58- return sum (self )
56+ sum = 0
57+ for i in range (self .length ()):
58+ sum += self [i ]
59+ return sum
5960
6061 def length (self ):
6162 return self .size ()
@@ -64,21 +65,20 @@ def length(self):
6465# igv: function_root_create_list_at
6566def create_list (num : int , l : JList ):
6667 for i in range (num ):
67- l .add ( LinkedList ())
68+ l .append ( ArrayList ())
6869 for j in range (i ):
69- l [i ].add (j )
70+ l [i ].append (j )
7071
71- for index , li in enumerate (l ):
72+ for i in range (num ):
73+ li = l [i ]
7274 assert li .length () * (li .length () - 1 ) / 2 == li .get_value ()
7375
74-
7576def measure (num ):
76- j_list = LinkedList ()
77+ j_list = ArrayList ()
7778 create_list (num , j_list )
7879
79-
8080def __benchmark__ (num = 2_000 ):
8181 measure (num )
8282
8383if __name__ == '__main__' :
84- __benchmark__ ()
84+ __benchmark__ (int ( sys . argv [ 1 ]) )
0 commit comments