Skip to content

greatly optimize memory require size for diff -m mode; #427

@sisong

Description

@sisong

now -m diff:

  1. load old & new's data all to memory
  2. get cover lines by big match block
  3. remove some old & new's data by matched cover lines
  4. remaining datas, get cover lines by sstring(byte by byte) match
  5. merge the results(cover lines) of two match

new -m diff:

  1. now old & new only load as stream
  2. get cover lines by small or big match block (maybe slow)
  3. obtain the main matching path by analyzing the cover lines(The most difficult point determines whether the entire project can be completed or not.)
  4. remove some old & new's area by big matched cover lines (optional)
  5. according matching path, old data clip to multiple steps by limit size
  6. load every step data of old & new into memory, get cover lines by sstring(byte by byte) match
  7. merge the results(cover lines) of two match

Sub-issues

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions