AVicennA <tural.jalilov...@gmail.com> added the comment:

In short, here are different behaviours in increasing steps of values, which 
are (based on my researching) giving incorrect results in relation to each 
other.

Given example:

import functools
import cProfile

def decor(func):
    @functools.wraps(func)
    def wraps(*args, **kwargs):
        return func(*args, **kwargs)
    return wraps

@decor
def count(g_val):
    if g_val < 1:
        print("End")
    else:
        count(g_val - 1)
                
cProfile.run('count(VALUE)')
                

Below I wrote results by given values...

1) VALUE = 50

End                                                                             
                                                                                
                   
         106 function calls (6 primitive calls) in 0.000 seconds                
                                                                                
                   
                                                                                
                                                                                
                   
   Ordered by: standard name                                                    
                                                                                
                   
                                                                                
                                                                                
                   
   ncalls  tottime  percall  cumtime  percall filename:lineno(function)         
                                                                                
                   
        1    0.000    0.000    0.000    0.000 <string>:1(<module>)              
                                                                                
                   
     51/1    0.000    0.000    0.000    0.000 main.py:10(count)                 
                                                                                
                   
     51/1    0.000    0.000    0.000    0.000 main.py:5(wraps)                  
                                                                                
                   
        1    0.000    0.000    0.000    0.000 {built-in method exec}            
                                                                                
                   
        1    0.000    0.000    0.000    0.000 {built-in method print}           
                                                                                
                   
        1    0.000    0.000    0.000    0.000 {method 'disable' of 
'_lsprof.Profiler' objects}

                
2) VALUE = 45   
End                                                                             
                                                                                
                   
         96 function calls (6 primitive calls) in 0.062 seconds                 
                                                                                
                   
                                                                                
                                                                                
                   
   Ordered by: standard name                                                    
                                                                                
                   
                                                                                
                                                                                
                   
   ncalls  tottime  percall  cumtime  percall filename:lineno(function)         
                                                                                
                   
        1    0.000    0.000    0.062    0.062 <string>:1(<module>)              
                                                                                
                   
     46/1    0.000    0.000    0.061    0.061 main.py:10(count)                 
                                                                                
                   
     46/1    0.000    0.000    0.062    0.062 main.py:5(wraps)                  
                                                                                
                   
        1    0.000    0.000    0.062    0.062 {built-in method exec}            
                                                                                
                   
        1    0.061    0.061    0.061    0.061 {built-in method print}           
                                                                                
                   
        1    0.000    0.000    0.000    0.000 {method 'disable' of 
'_lsprof.Profiler' objects}
        
        
3) VALUE = 26           
End                                                                             
                                                                                
                   
         58 function calls (6 primitive calls) in 0.003 seconds                 
                                                                                
                   
                                                                                
                                                                                
                   
   Ordered by: standard name                                                    
                                                                                
                   
                                                                                
                                                                                
                   
   ncalls  tottime  percall  cumtime  percall filename:lineno(function)         
                                                                                
                   
        1    0.000    0.000    0.002    0.002 <string>:1(<module>)              
                                                                                
                   
     27/1    0.000    0.000    0.002    0.002 main.py:10(count)                 
                                                                                
                   
     27/1    0.000    0.000    0.002    0.002 main.py:5(wraps)                  
                                                                                
                   
        1    0.000    0.000    0.003    0.003 {built-in method exec}            
                                                                                
                   
        1    0.002    0.002    0.002    0.002 {built-in method print}           
                                                                                
                   
        1    0.000    0.000    0.000    0.000 {method 'disable' of 
'_lsprof.Profiler' objects}
                
As you see above samples are giving surprise results.. 50 - gave 0 sec., but 
how 26 - gave 0.003 sec or 45 - gave 0.062 sec. Instead of these results I 
expected increased seconds by linearly.

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue38993>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to