Please sign in to comment.
[REF] account: Performance improve unreconcile process (_reverse_move):
_reverse_move presents a critical performance issue when unreconcile moves with a lot of account_move_line. The issue is that `account.move` and `account.move.line` models are triggering computed fields/methods for each new `account.move.line` added, computing all lines again and again. Making a factorial performance issue. For each line the function try create cash basis entries for tax/base lines and this is combined with all the fields compute that exists on the model so this introduce a performance problem The issue is that `account.move` and `account.move.line` models are triggering computed fields/methods for each new `account.move.line` created isolated, computing all lines again and again. e.g. _compute_matched_percentage at https://github.com/odoo/odoo/blob/5e8289cfeaf52a1eac64bcc975b186f0b5f9594b/addons/account/models/account_move.py#L44-L62 Then for each line modified/created this compute is executed for all lines (not just the last one). Now by using self.env.norecompute() and self.recompute() the problem was reduced. Unreconciling an 'account.move' with 1576 lines with a payment takes almost 4 minutes when before this changes, the conciliation process seemed not to never end. Fix #30934
- Loading branch information...
Showing with 12 additions and 11 deletions.