You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
importmathimportrandomdefturn():
#costs 1 bytecode regardless of sizez="a,,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,aaa"#costs 3 bytcode regardless of string sizez=z.replace("a","thisIsATest")
#costs 5 byte code regardless of numbera=math.factorial(100000)
#costs 2 bytecode regardless of z sizef=z.split(",")
#costs 1 bytecode regardless of sizeordered="1,9,8,7,2,4,6,9,1,0,4,3,b,j,1,0,9,3,4,1,9,3,4,b,j,h,1,3,4,6,h,v,j,a,o,s,y,d,0,8,7,f,a,d,b,j,h,g,d,f,g,6,7,a,9,8,a,7,h,9,a,7,8,h,7,a,+,9,j,5,m,a,a,s,d,f,8,t,1,7,8,s,f,1,g,8,7,g,1,n,8,7,a,1,n,6,g,4,1,n,s,6,h,6,s,4,d,v,6,b,7,8,6,v,7,6,d,6,5,h,n,s,4,v,n,4,5,6,f,v,b,n,5,6,x,4,j,g,6,8,6,m,t,6,8,m,k,s,9,8,,,6,8,7,,,d,j,5,5,s,t,g,h,4,+,8,s,t,9,8,8,7,6,8,7,m,h,6,s,4,6,8,s,6,r,4,m,s,6,8,y,m,s,h,6,8,s,n,7,4,h,s,9,8,r,7,8,m,k,s,9,8,h,4,7,g,s,m,5,6,r,6,7,8,s,y,h,a,9,8,r,8,6,,,4,a,s,r,5,g,9,+,n,7,r,6,9,a,r,4,9,s,#"# cost 4 bytecode regardless of sizeif (ordered.find("X") ==-1): pass# cost 2 bytecode regardless of sizeordered=ordered.split(",")
#costs 2 bytcode regardless of ordered sizerandom.shuffle(ordered)
#costs 2 bytecode ordered.pop(0)
#costs 2 bytecode regardless of ordered sizea="".join(ordered)
#costs 2 bytecode regardless of sizea=ordered.index("#")
It seems that the bytecode counter fails to jump into python standard library calls. Thus many O(n) operations are seen as O(1). The above results are not exhaustive, many more string, dict, set, and list operations exist that potentially exhibit the same behavior. A user can do orders of magnitudes more expensive operations than instrumented and get away with it.
It seems that sorting behaves as expected for lists
Some more areas to consider listed below
Note: I did not yet test to see the time complexity of the following operations but I have strong suspicion that they misbehave.
The text was updated successfully, but these errors were encountered:
pashneal
changed the title
Python Library Function Produce Unexpected Engine Instrumentation
Python Library Calls Produce Unexpected Engine Instrumentation
Apr 18, 2020
It seems that the bytecode counter fails to jump into python standard library calls. Thus many O(n) operations are seen as O(1). The above results are not exhaustive, many more string, dict, set, and list operations exist that potentially exhibit the same behavior. A user can do orders of magnitudes more expensive operations than instrumented and get away with it.
It seems that sorting behaves as expected for lists
Some more areas to consider listed below
Note: I did not yet test to see the time complexity of the following operations but I have strong suspicion that they misbehave.
The text was updated successfully, but these errors were encountered: