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.
2
2
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
3
3
#
4
4
# The Universal Permissive License (UPL), Version 1.0
41
41
# This benchmark hits the GetRegisteredClassNodes as much as possible with one registration
42
42
43
43
import 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
48
46
49
47
@polyglot .interop_type (List )
50
48
class JList :
51
49
def append (self , value ):
52
50
self .add (value )
53
51
54
- # def __getitem__(self, item):
55
- # return self.get(item)
52
+ def __getitem__ (self , item ):
53
+ return self .get (item )
56
54
57
55
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
59
60
60
61
def length (self ):
61
62
return self .size ()
@@ -64,21 +65,20 @@ def length(self):
64
65
# igv: function_root_create_list_at
65
66
def create_list (num : int , l : JList ):
66
67
for i in range (num ):
67
- l .add ( LinkedList ())
68
+ l .append ( ArrayList ())
68
69
for j in range (i ):
69
- l [i ].add (j )
70
+ l [i ].append (j )
70
71
71
- for index , li in enumerate (l ):
72
+ for i in range (num ):
73
+ li = l [i ]
72
74
assert li .length () * (li .length () - 1 ) / 2 == li .get_value ()
73
75
74
-
75
76
def measure (num ):
76
- j_list = LinkedList ()
77
+ j_list = ArrayList ()
77
78
create_list (num , j_list )
78
79
79
-
80
80
def __benchmark__ (num = 2_000 ):
81
81
measure (num )
82
82
83
83
if __name__ == '__main__' :
84
- __benchmark__ ()
84
+ __benchmark__ (int ( sys . argv [ 1 ]) )
0 commit comments