[NSWI176] Profilování (Graal) Python kódu

Jaroslav Tulach jaroslav.tulach at oracle.com
Wed Mar 2 17:11:08 CET 2022


Zdravím všechny a hlavně kolegu, který zkoušel použít GraalPython a 
potřeboval zjistit, proč je jeden jeho program pomalý. Příští úterý mohu 
předvést jak profilovat pomocí [VisualVM](https://visualvm.github.io/) a 
to jak Python kód, tak Java kód toho interpreteru. Také mi ale kolegové 
řekli, že GraalPython podporuje standardní cProfiler. Takže můžete 
upravit tento Python soubor 
https://github.com/jtulach/sieve/blob/master/python/sieve.py třeba takto:


diff --git a/python/sieve.py b/python/sieve.py
index 243a69e..3ae817c 100644
--- a/python/sieve.py
+++ b/python/sieve.py
@@ -1,6 +1,7 @@
import math
import time
import sys
+import cProfile

class Natural:
     n = 2
@@ -68,6 +69,6 @@ count = -1
if len(sys.argv) > 1:
     count = int(float(sys.argv[1]))
while count != 0:
-    took= measure(97, 100000)
+    took= cProfile.run("measure(97, 100000)")
     print("Hundred thousand prime numbers in " + ms(took) + " ms")
     count = count - 1

a pak jej spustit jak normálním, tak GraalVM Pythonem. V obou případech 
to vypíše nějaké statistiky. Můžeme si to ukázat na přednášce.

-jt







More information about the NSWI176 mailing list