Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Perf] User story 2: Minimize data consumption #2931

Closed
churik opened this issue Jan 5, 2018 · 7 comments
Closed

[Perf] User story 2: Minimize data consumption #2931

churik opened this issue Jan 5, 2018 · 7 comments

Comments

@churik
Copy link
Member

churik commented Jan 5, 2018

User Story

As a user, I want to use Status with cell network and don't care about huge traffic consumption.

Description

Type: Feature

Summary:
when smbd is using app on regular basis (open chat, send location, use group and public chats), so just daily tasks for chat, he doesn't expect a lot of traffic consumption so goal is to use data amount comparable with other apps during performing basic similar tasks

Expected behavior

less traffic usage

Actual behavior

206 MB (Status) vs 2.11 MB (Telegram)

Reproduction

  • Use status app and Telegram app as a chat during 1,5 hours;
  • Compare data consumption using any convenient tool (I used TrafficMonitor for Android);

Tasks and data consumption comparison is below:

Action Telegram Status Details / Comments
creating account <1 MB ~30 MB  
app in background <0,001 MB ~0,01 - 0,1 MB per sec depending on number of data
location(send current location) ~0,3 MB ~0,7 MB  
location (search for location) and send it ~0,1 MB ~1 MB  
chatting for 1 min (emoji/text) ~0,2 MB ~3-10 MB messages contains emojis, text, long messages pasted from clipboard
relaunch app ~0,03 MB ~6 MB  
relaunch app with bunch of unread messages ~0,02 MB ~25 MB syncing messages lasts 1-2 sec in Status
open link inside app ~0,1 MB ~0,5 MB google.com
group chat (messaging for 1 min) ~0,2 MB ~0,6 MB  
profile editing ~0,1 MB ~1 MB edit name / status
upload photo to profile ~0,3 MB ~1 MB same photo is used
public channel (creating + 2-4 messages) ~0,4 MB ~20 MB  
Total consumption for using app (1,5 h mostly in background) 2,11 MB 206,28 MB  

Additional Information

@0xc1c4da
Copy link
Contributor

0xc1c4da commented Jan 6, 2018

Hi @churik so the comparison between actions and data usage here shouldn't have a 1:1 relationship. Status is a decentralised application and what I suspect (although we should confirm) your actually measuring in all of these is blockchain synchronisation and whisper message passing, and therefore the amount for each action is time dependent on your ability to carry out that action.

For example, when you create an account all your doing is creating a private keypair client side. This is not uploaded to servers. However at the same time, this would also be the initial blockchain synchronisation.

However, what is surprising to me is the amount of data usage, as Ropsten with upstream RPC suggests there should be no blockchain synchronisation should be happening at all. Are we still syncing blockchain even though we shouldn't? Is this all whisper traffic? Have we somehow accidentally re-enabled Swarm?

@churik
Copy link
Member Author

churik commented Jan 8, 2018

Below are main wallet/balance actions available in Status and data usage for them:

Action Consumption Details / Comments
/faucet ~1,1 MB  
wallet: send ETH via QR scanning ~1,8 MB  
transaction details: wait 12 confirmations ~4 MB open 'Transaction details screen' several times in order to retrieve last data from etherscan.io
wallet: get STT tokens: send a 0 ETH transaction with Gas Limit 105000 ~3 MB  
wallet: send STT via QR (200) ~3 MB  
wallet: generete QR for request STT ~0,8 MB  
wallet: generete QR for request ETH ~0,8 MB  
1-1 chat: send ETH with default fee ~0,2 MB  
1-1 chat: send ETH with maximal fee ~0,3 MB  
1-1 chat: request ETH ~0,1 MB  
group chat: send ETH with default fee ~0,6 MB  
1-1 chat: send ETH with maximal fee ~1,3 MB  
group chat: request ETH ~2,5 MB  
network switching (Ropsten) ~1-3 MB per sec during sync; would be nice to warn users connect to WI-FI when he changed network
Total consumtion (approx. 1h): ~111 MB  

@jeluard
Copy link
Contributor

jeluard commented Jan 8, 2018

@churik Great stuff! Could you also track the time it took to perform the test ?

@churik
Copy link
Member Author

churik commented Jan 8, 2018

@jeluard I've updated a comment

@oskarth
Copy link
Contributor

oskarth commented Jan 9, 2018

@churik What about idle in foreground?

I'm in the process of cutting this issue up a bit into more manageable chunks. Starting with biggest wins.

Immediate goal as I see it: Get within order of magnitude of TG for most common cases, assuming there is repeatable 1-1 correspondence (see Jarrad's comment).

@ghost
Copy link

ghost commented Sep 24, 2018

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@ghost ghost added the stale label Sep 24, 2018
@oskarth
Copy link
Contributor

oskarth commented Sep 24, 2018

Data collected outdated since Whisper changes. Likely to change with LES etc.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants