Skip to content
This repository has been archived by the owner on Jan 16, 2025. It is now read-only.

contact_list apdex: research and development cycle 3 #104

Closed
Tracked by #70
michaelkohn opened this issue Apr 21, 2024 · 3 comments · Fixed by medic/cht-core#9007
Closed
Tracked by #70

contact_list apdex: research and development cycle 3 #104

michaelkohn opened this issue Apr 21, 2024 · 3 comments · Fixed by medic/cht-core#9007
Assignees
Labels

Comments

@michaelkohn
Copy link

R&D Cycle 1
R&D Cycle 2

For cycle 3, the goal is to...

  • baseline loading contact_list on low spec device
  • make the code change to load only 25 rows
  • test again
  • determine whether it is worth the change
@github-project-automation github-project-automation bot moved this to Backlog in Care Teams Apr 21, 2024
@michaelkohn michaelkohn moved this from Backlog to This Week in Care Teams Apr 21, 2024
@Benmuiruri Benmuiruri moved this from This Week to In Progress in Care Teams Apr 24, 2024
@Benmuiruri
Copy link
Collaborator

I faced some challenges running the automated baseline tests on the Tecno phone (Slack discussion).
My plan is to simulate 30 interactions (manually) and use that as my baseline for testing loading of 50 vs 25 records. That should take about 1 - 1.30 hours.
The simulation will play out as follows

  1. Open app in Messages tab normally,
  2. Click on the contacts tab.
  3. Scroll to the bottom of the contacts to load all contacts
  4. Scroll back to the top and click one household
  5. Close the app and close it from background as well.
    6 Open the app again and repeat steps 1-5, 30 times in the same day, then sync.

With this manual simulation, at least we will have some data to compare to see whether it is a possible performance improvement. Then I will spare a couple of hours try and figure and make the Tecno run the automated tests,

@Benmuiruri
Copy link
Collaborator

I conducted the manual testing with fetching 50 records here is the telemetry data I will use as my baseline

"contact_list:load": {
      "sum": 267504,
      "min": 2092,
      "max": 162416,
      "count": 30,
      "sumsqr": 26868328860
    },
    "contact_list:load:apdex:frustrated": {
      "sum": 162416,
      "min": 162416,
      "max": 162416,
      "count": 1,
      "sumsqr": 26378957056
    },
    "contact_list:load:apdex:satisfied": {
      "sum": 42145,
      "min": 2092,
      "max": 2939,
      "count": 17,
      "sumsqr": 106401163
    },
    "contact_list:load:apdex:tolerable": {
      "sum": 62943,
      "min": 3008,
      "max": 8022,
      "count": 12,
      "sumsqr": 382970641
    },
    "contact_list:query": {
      "sum": 528342,
      "min": 1158,
      "max": 162013,
      "count": 113,
      "sumsqr": 41920686882
    },
    "contact_list:query:apdex:frustrated": {
      "sum": 298102,
      "min": 14690,
      "max": 162013,
      "count": 3,
      "sumsqr": 41201725470
    },
    "contact_list:query:apdex:satisfied": {
      "sum": 133062,
      "min": 1158,
      "max": 2897,
      "count": 90,
      "sumsqr": 208120866
    },
    "contact_list:query:apdex:tolerable": {
      "sum": 97178,
      "min": 3471,
      "max": 7512,
      "count": 20,
      "sumsqr": 510840546
    },
   

I faced some technical issues deploying the branch that fetches 25 records, but I will resolve that on Monday and conduct another round of manual testing.

@Benmuiruri
Copy link
Collaborator

Benmuiruri commented May 3, 2024

This research and development cycle 3 mainly focused on the development side, which included completing these tasks

  • baseline loading contact_list on low spec device
  • make the code change to load only 25 rows
  • test again
  • determine whether it is worth the change

Having established a baseline using the steps outlined above, I upgraded the test server to the 9006-improve-contact-list-apdex branch and tested with the reduced page_size to see whether there would be improvement to the apdex score.

The manual testing with the branch deployed in the test server showed improved performance as outlined in the final results

The manual testing was done on a Tecno Pop 7 phone with 2GB RAM

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
No open projects
Status: Done
Development

Successfully merging a pull request may close this issue.

2 participants