Dear Mike,

sorry for not coping with preferred reply behavior..

On Donnerstag, 26. Juni 2014 15:26:02 Mike Bayer wrote:
> On 6/26/14, 3:07 PM, Hans-Peter Jansen wrote:
> > 
> > Obviously, some operation triggers the flush method with about the
> > same consequences..
> 
> OK, turn off autoflush - either Session(autoflush=False), or within the
> critical block, do "with session.no_autoflush:"

Okay, that makes a difference, shaving of about 40% of total runtime,
after dealing with identical records in one session..

Still, attributes is highest in profiles. I guess, this is, what you 
called overkill in your first response. A helper for dealing with this 
situation sounds interesting, though.

Thu Jun 26 20:41:50 2014    srelay.pstats

         55993702 function calls (54767154 primitive calls) in 533.479 seconds

   Ordered by: internal time
   List reduced from 1277 to 30 due to restriction <30>

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
    42160  292.536    0.007  292.910    0.007 
attributes.py:1321(from_collection)
    63209   39.185    0.001   39.294    0.001 attributes.py:1255(as_state)
       39   39.037    1.001   39.037    1.001 {time.sleep}
    45816   30.949    0.001   30.949    0.001 {method 'query' of 
'_mysql.connection' objects}
      392   30.039    0.077   30.039    0.077 {method 'recv' of 
'_socket.socket' objects}
    42240    9.870    0.000  302.804    0.007 attributes.py:871(get_history)
    21083    4.284    0.000    6.500    0.000 attributes.py:868(__copy)
    42158    2.230    0.000    2.252    0.000 collections.py:711(__len__)
    21043    1.466    0.000    1.851    0.000 topological.py:51(find_cycles)
  4159430    1.369    0.000    1.369    0.000 {isinstance}
    24683    1.330    0.000  391.984    0.016 session.py:1790(flush)
642077/24712    1.292    0.000   12.840    0.001 
visitors.py:74(_compiler_dispatch)
   197570    1.285    0.000    4.215    0.000 compiler.py:389(visit_label)
    45735    1.235    0.000    3.615    0.000 default.py:391(_init_compiled)
   246847    1.145    0.000    1.637    0.000 compiler.py:421(visit_column)
    24558    1.060    0.000  458.633    0.019 srelay.py:74(store_enos_rec)
    24636    1.048    0.000   12.709    0.001 compiler.py:1136(visit_select)
   197552    1.030    0.000    6.000    0.000 
compiler.py:1019(_label_select_column)
    24636    1.015    0.000    1.793    0.000 result.py:171(__init__)
    63126    0.939    0.000    3.202    0.000 
persistence.py:275(_collect_update_commands)
49200/49172    0.937    0.000    3.539    0.000 db_scheme.py:91(__repr__)
   147240    0.904    0.000    1.246    0.000 topological.py:15(sort_as_subsets)
   126514    0.814    0.000  348.487    0.003 unitofwork.py:411(execute)
    63191    0.771    0.000    1.984    0.000 
dependency.py:67(per_property_flush_actions)
   622925    0.751    0.000    0.973    0.000 attributes.py:308(__get__)
   699682    0.745    0.000    0.745    0.000 state.py:185(dict)
   189809    0.726    0.000  343.341    0.002 
unitofwork.py:177(get_attribute_history)
    73928    0.653    0.000    0.781    0.000 expression.py:3538(__init__)
    42170    0.648    0.000    0.648    0.000 {method 'clear' of 'dict' objects}
   126252    0.639    0.000    1.795    0.000 persistence.py:802(_sort_states)


Cheers,
Pete

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

Reply via email to