Skip to content

Commit 9848b78

Browse files
committed
[GR-60159] Fix java-register.py benchmark
* It was using builtins which expected more strict behavior from __getitem__() and exercising polyglot.ForeignList handling, which is not the focus of this benchmark. * Instead, we only call methods defined on JList in this benchmark and avoid calling any builtin on the JList.
1 parent acc45b3 commit 9848b78

File tree

1 file changed

+13
-13
lines changed
  • graalpython/com.oracle.graal.python.benchmarks/python/host_interop

1 file changed

+13
-13
lines changed

graalpython/com.oracle.graal.python.benchmarks/python/host_interop/java-register.py

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -41,21 +41,22 @@
4141
# This benchmark hits the GetRegisteredClassNodes as much as possible with one registration
4242

4343
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, LinkedList
4846

4947
@polyglot.interop_type(List)
5048
class 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
6566
def create_list(num: int, l: JList):
6667
for i in range(num):
67-
l.add(LinkedList())
68+
l.append(LinkedList())
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-
7576
def measure(num):
7677
j_list = LinkedList()
7778
create_list(num, j_list)
7879

79-
8080
def __benchmark__(num=2_000):
8181
measure(num)
8282

8383
if __name__ == '__main__':
84-
__benchmark__()
84+
__benchmark__(int(sys.argv[1]))

0 commit comments

Comments
 (0)