Skip to content

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
    • Help
    • Submit feedback
    • Contribute to GitLab
  • Sign in
haskell-gargantext
haskell-gargantext
  • Project
    • Project
    • Details
    • Activity
    • Releases
    • Cycle Analytics
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Charts
  • Issues 159
    • Issues 159
    • List
    • Board
    • Labels
    • Milestones
  • Merge Requests 9
    • Merge Requests 9
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
    • Charts
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Charts
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • gargantext
  • haskell-gargantexthaskell-gargantext
  • Merge Requests
  • !254

Merged
Opened 1 year ago by Alfredo Di Napoli@AlfredoDiNapoli
  • Report abuse
Report abuse

Improve Phylo's generation performance of another 30%

Following my previous MR, this one yields another 30% in performance by replacing the nub in the guts of relatedComponents with the nub from Data.Discrimination, which is linear in computational time.

From my tests we go from this:

Tue Feb 27 09:08 2024 Time and Allocation Profiling Report  (Final)¬

   gargantext-phylo-profile +RTS -N -p -RTS¬

total time  =       51.89 secs   (192246 ticks @ 1000 us, 8 processors)¬
total alloc = 25,728,468,632 bytes  (excludes profiling overheads)¬

to this:


Tue Feb 27 09:22 2024 Time and Allocation Profiling Report  (Final)¬

   gargantext-phylo-profile +RTS -N -p -RTS¬

total time  =       37.03 secs   (137203 ticks @ 1000 us, 8 processors)¬
total alloc = 44,612,631,968 bytes  (excludes profiling overheads)¬

In numbers, this MR will make relatedComponents 30% faster. The total alloc goes up, but if that doesn't cause problems to the stability of the server, it shouldn't be a problem per se -- we are merely trading time for memory, which I guess is fair.

This MR also adds some tests for the relatedComponents, to serve as a base for regression testing if we decided to further optimise it.

Check out, review, and merge locally

Step 1. Fetch and check out the branch for this merge request

git fetch origin
git checkout -b adinapoli/phylo-profile-3 origin/adinapoli/phylo-profile-3

Step 2. Review the changes locally

Step 3. Merge the branch and fix any conflicts that come up

git fetch origin
git checkout origin/dev
git merge --no-ff adinapoli/phylo-profile-3

Step 4. Push the result of the merge to GitLab

git push origin dev

Note that pushing to GitLab requires write access to this repository.

Tip: You can also checkout merge requests locally by following these guidelines.

Request to merge adinapoli/phylo-profile-3 into dev
  • Email patches
  • Plain diff
Pipeline #5660 failed for d23d746c on adinapoli/phylo-profile-3

          Merged by delanoe 1 year ago

          The changes were merged into dev with 2e77bfa5

          • Discussion 0
          • Commits 3
          • Pipelines 3
          • Changes 6
          • Loading...
          • You're only seeing other activity in the feed. To add a comment, switch to one of the following options.
          Please register or sign in to reply
          Assignee
          Assign to
          None
          Milestone
          None
          Assign milestone
          None
          Time tracking
          No estimate or time spent
          0
          Labels
          None
          Assign labels
          • View project labels
          Lock merge request
          Unlocked
          participants
          Reference: gargantext/haskell-gargantext!254

          Revert this merge request

          This will create a new commit in order to revert the existing changes.

          Switch branch
          Cancel
          A new branch will be created in your fork and a new merge request will be started.

          Cherry-pick this merge request

          Switch branch
          Cancel
          A new branch will be created in your fork and a new merge request will be started.