View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update | 
|---|---|---|---|---|---|
| 0009033 | Taler | wallet (Android App) | public | 2024-07-31 18:59 | 2025-06-05 14:16 | 
| Reporter | avalos | Assigned To | |||
| Priority | low | Severity | minor | Reproducibility | have not tried | 
| Status | confirmed | Resolution | open | ||
| Product Version | git (master) | ||||
| Target Version | post-1.0 | ||||
| Summary | 0009033: Investigate wallet app performance | ||||
| Description | The Android app sometimes feels noticeably slower compared to iOS and the web extension. All major instances of slowness must be identified, documented here in detail, and fixed. | ||||
| Tags | performance, ux | ||||
| related to | 0009965 | feedback | Payment takes 10+ seconds for order with big amounts | 
| 
		 | 
	Here are some logs from a withdrawal from bank.test.taler.net that contains timestamps and useful info. | 
| 
		 | 
	Christian will provide Ivan with a slow Android tablet for testing. | 
| 
		 | 
	I've put an unlocked (just swipe) Android tablet with a horribly slow Taler wallet installed on your desk at the office. | 
| 
		 | 
	
	`getWithdrawalDetailsForAmount` seems to be particularly slow in this tablet, taking a whopping of 3 seconds and 661 milliseconds. (This is the request that runs every time the amount in the field is modified)  getWithdrawalDetailsForAmount.logcat (5,457 bytes)   
 
2025-04-09 15:54:17.266  2122-2149  BackendManager          net.taler.wallet.nightly             D  sending message:
                                                                                                    {
                                                                                                      "id": 12,
                                                                                                      "operation": "getWithdrawalDetailsForAmount",
                                                                                                      "args": {
                                                                                                        "exchangeBaseUrl": "https:\/\/exchange.taler-ops.ch\/",
                                                                                                        "amount": "CHF:0"
                                                                                                      }
                                                                                                    }
2025-04-09 15:54:17.276  2122-2148  BackendManager          net.taler.wallet.nightly             D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"getWithdrawalDetailsForAmount","requestId":12,"event":{"type":"request-start"}}}
2025-04-09 15:54:17.282  2122-2148  BackendManager          net.taler.wallet.nightly             D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"getWithdrawalDetailsForAmount","requestId":12,"event":{"type":"db-query-start","name":"<unknown>","location":"fetchAccount/fetchWithdrawalAccountInfo"}}}
2025-04-09 15:54:17.293  2122-2148  BackendManager          net.taler.wallet.nightly             D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"getWithdrawalDetailsForAmount","requestId":12,"event":{"type":"db-query-finish-success","name":"<unknown>","location":"fetchAccount/fetchWithdrawalAccountInfo"}}}
2025-04-09 15:54:17.298  2122-2148  BackendManager          net.taler.wallet.nightly             D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"getWithdrawalDetailsForAmount","requestId":12,"event":{"type":"db-query-start","name":"<unknown>","location":"updateWithdrawalDenomsForExchange/getExchangeWithdrawalInfo"}}}
2025-04-09 15:54:19.280  2122-2148  BackendManager          net.taler.wallet.nightly             D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"getWithdrawalDetailsForAmount","requestId":12,"event":{"type":"db-query-finish-success","name":"<unknown>","location":"updateWithdrawalDenomsForExchange/getExchangeWithdrawalInfo"}}}
2025-04-09 15:54:19.283  2122-2148  BackendManager          net.taler.wallet.nightly             D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"getWithdrawalDetailsForAmount","requestId":12,"event":{"type":"db-query-start","name":"<unknown>","location":"getWithdrawableDenoms/getExchangeWithdrawalInfo"}}}
2025-04-09 15:54:20.914  2122-2148  BackendManager          net.taler.wallet.nightly             D  message received: {"type":"response","operation":"getWithdrawalDetailsForAmount","id":12,"result":{"exchangeBaseUrl":"https://exchange.taler-ops.ch/","amountRaw":"CHF:0","amountEffective":"CHF:0","paytoUris":["payto://iban/CH6808573105529100001?receiver-name=Taler+Operations+AG&receiver-postal-code=2502&receiver-town=Biel-Bienne"],"tosAccepted":false,"withdrawalAccountsList":[{"status":"ok","paytoUri":"payto://iban/CH6808573105529100001?receiver-name=Taler%20Operations%20AG&receiver-postal-code=2502&receiver-town=Biel-Bienne&amount=CHF%3A0","transferAmount":"CHF:0","priority":0,"currencySpecification":{"name":"Swiss Francs","currency":"CHF","num_fractional_input_digits":2,"num_fractional_normal_digits":2,"num_fractional_trailing_zero_digits":2,"alt_unit_names":{"0":"Fr.","-2":"Rp."}},"creditRestrictions":[{"type":"regex","payto_regex":"payto://iban/CH.*","human_hint":"Swiss only","human_hint_i18n":{"de":"nur Schweizer Konten","fr":"Suisse uniquement"}}]}],"numCoins":0,"scopeInfo":{"currency":"CHF","type":"exchange","url":"https://exchange.taler-ops.ch/"},"kycHardLimit":"CHF:2500","kycSoftLimit":"CHF:1"}}
2025-04-09 15:54:20.918  2122-2148  BackendManager          net.taler.wallet.nightly             D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"getWithdrawalDetailsForAmount","requestId":12,"event":{"type":"db-query-finish-success","name":"<unknown>","location":"getWithdrawableDenoms/getExchangeWithdrawalInfo"}}}
2025-04-09 15:54:20.923  2122-2148  BackendManager          net.taler.wallet.nightly             D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"getWithdrawalDetailsForAmount","requestId":12,"event":{"type":"message","contents":"Deleting clientCancelKey undefined to [object Object]"}}}
2025-04-09 15:54:20.927  2122-2148  BackendManager          net.taler.wallet.nightly             D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"getWithdrawalDetailsForAmount","requestId":12,"event":{"type":"request-finish-success","durationMs":3644}}}
 | 
| 
		 | 
	
	The slow function is the DB transaction in `updateWithdrawalDenomsForExchange`, where there's this TODO: // FIXME: Use denom groups to speed this up.  | 
| 
		 | 
	Please also (re)try the initial denominations import, that was also super slow. | 
| 
		 | 
	Importing the database you mean? | 
| 
		 | 
	No, *initial* scan of the withdraw-exchange QR code when we add the TOPS-exchange for the very first time. You'll need to delete the exchange first. | 
| 
		 | 
	
	Yes, that's exactly what I did. It's in the withdrawal screen where this request is called both at startup and every time the input amount is edited by the user. As per the logs, it's the slow request, all the other ones only taking a few milliseconds.  | 
| 
		 | 
	Ok, but in that case it took like 30s, not the 3s for the withdraw calculation... So that should be a different code path that is also slow. | 
| 
		 | 
	It's certainly not 30s, I tested with your slow tablet. | 
| 
		 | 
	It was >> 3s though... | 
| 
		 | 
	
	Here's the full log file for an initial withdraw-exchange:  worse.logcat (30,771 bytes)   
 
2025-04-09 17:08:25.960  5218-5489  BackendManager          net.taler.wallet.fdroid              D  sending message:
                                                                                                    {
                                                                                                      "id": 45,
                                                                                                      "operation": "getBalances"
                                                                                                    }
2025-04-09 17:08:25.974  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"getBalances","requestId":45,"event":{"type":"request-start"}}}
2025-04-09 17:08:25.984  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"getBalances","requestId":45,"event":{"type":"db-query-start","name":"<unknown>","location":"getBalances/dispatchRequestInternal"}}}
2025-04-09 17:08:26.070  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"response","operation":"getBalances","id":45,"result":{"balances":[{"scopeInfo":{"currency":"KUDOS","type":"exchange","url":"https://exchange.demo.taler.net/"},"available":"KUDOS:30","pendingIncoming":"KUDOS:0","pendingOutgoing":"KUDOS:0","hasPendingTransactions":false,"requiresUserInput":false,"flags":[]}]}}
2025-04-09 17:08:26.074  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"getBalances","requestId":45,"event":{"type":"db-query-finish-success","name":"<unknown>","location":"getBalances/dispatchRequestInternal"}}}
2025-04-09 17:08:26.081  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"getBalances","requestId":45,"event":{"type":"request-finish-success","durationMs":103}}}
2025-04-09 17:08:26.259  5218-5489  BackendManager          net.taler.wallet.fdroid              D  sending message:
                                                                                                    {
                                                                                                      "id": 46,
                                                                                                      "operation": "listExchanges"
                                                                                                    }
2025-04-09 17:08:26.267  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"listExchanges","requestId":46,"event":{"type":"request-start"}}}
2025-04-09 17:08:26.273  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"listExchanges","requestId":46,"event":{"type":"db-query-start","name":"<unknown>","location":"listExchanges/dispatchRequestInternal"}}}
2025-04-09 17:08:26.297  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"response","operation":"listExchanges","id":46,"result":{"exchanges":[{"exchangeBaseUrl":"https://exchange.demo.taler.net/","masterPub":"F80MFRG8HVH6R9CQ47KRFQSJP3T6DBJ4K1D9B703RJY3Z39TBMJ0","noFees":false,"peerPaymentsDisabled":false,"currency":"KUDOS","exchangeUpdateStatus":"ready","exchangeEntryStatus":"used","tosStatus":"proposed","ageRestrictionOptions":[],"paytoUris":["payto://iban/DE159593?receiver-name=Sandcastle+Echange+Inc"],"lastUpdateTimestamp":{"t_s":1744210189,"off_us":547000},"scopeInfo":{"currency":"KUDOS","type":"exchange","url":"https://exchange.demo.taler.net/"}}]}}
2025-04-09 17:08:26.304  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"listExchanges","requestId":46,"event":{"type":"db-query-finish-success","name":"<unknown>","location":"listExchanges/dispatchRequestInternal"}}}
2025-04-09 17:08:26.308  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"listExchanges","requestId":46,"event":{"type":"request-finish-success","durationMs":31}}}
2025-04-09 17:08:26.386  5218-5489  BackendManager          net.taler.wallet.fdroid              D  sending message:
                                                                                                    {
                                                                                                      "id": 47,
                                                                                                      "operation": "prepareWithdrawExchange",
                                                                                                      "args": {
                                                                                                        "talerUri": "taler:\/\/withdraw-exchange\/exchange.taler-ops.ch\/"
                                                                                                      }
                                                                                                    }
2025-04-09 17:08:26.395  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"prepareWithdrawExchange","requestId":47,"event":{"type":"request-start"}}}
2025-04-09 17:08:26.401  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"prepareWithdrawExchange","requestId":47,"event":{"type":"db-query-start","name":"<unknown>","location":"startUpdateExchangeEntry/fetchFreshExchange"}}}
2025-04-09 17:08:26.423  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"prepareWithdrawExchange","requestId":47,"event":{"type":"db-query-finish-success","name":"<unknown>","location":"startUpdateExchangeEntry/fetchFreshExchange"}}}
2025-04-09 17:08:26.429  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"exchange-state-transition","exchangeBaseUrl":"https://exchange.taler-ops.ch/","newExchangeState":{"exchangeEntryStatus":"ephemeral","exchangeUpdateStatus":"initial-update","tosStatus":"missing-tos"}}}
2025-04-09 17:08:26.434  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"prepareWithdrawExchange","requestId":47,"event":{"type":"db-query-start","name":"<unknown>","location":"startUpdateExchangeEntry"}}}
2025-04-09 17:08:26.462  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"prepareWithdrawExchange","requestId":47,"event":{"type":"db-query-finish-success","name":"<unknown>","location":"startUpdateExchangeEntry"}}}
2025-04-09 17:08:26.468  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"exchange-state-transition","exchangeBaseUrl":"https://exchange.taler-ops.ch/","newExchangeState":{"exchangeEntryStatus":"ephemeral","exchangeUpdateStatus":"initial-update","tosStatus":"missing-tos"},"oldExchangeState":{"exchangeEntryStatus":"ephemeral","exchangeUpdateStatus":"initial-update","tosStatus":"missing-tos"}}}
2025-04-09 17:08:26.473  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"prepareWithdrawExchange","requestId":47,"event":{"type":"declare-task-dependency","taskId":"exchange-update:https%3A%2F%2Fexchange.taler-ops.ch%2F"}}}
2025-04-09 17:08:26.480  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"prepareWithdrawExchange","requestId":47,"event":{"type":"task-reset","taskId":"exchange-update:https%3A%2F%2Fexchange.taler-ops.ch%2F"}}}
2025-04-09 17:08:26.509  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"exchange-state-transition","exchangeBaseUrl":"https://exchange.taler-ops.ch/","oldExchangeState":{"exchangeEntryStatus":"ephemeral","exchangeUpdateStatus":"initial-update","tosStatus":"missing-tos"},"newExchangeState":{"exchangeEntryStatus":"ephemeral","exchangeUpdateStatus":"initial-update","tosStatus":"missing-tos"}}}
2025-04-09 17:08:26.514  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"idle"}}
2025-04-09 17:08:26.521  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"task-observability-event","taskId":"exchange-update:https%3A%2F%2Fexchange.taler-ops.ch%2F","event":{"type":"db-query-start","name":"<unknown>","location":"updateExchangeFromUrlHandler/callOperationHandlerForTaskId"}}}
2025-04-09 17:08:26.529  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"prepareWithdrawExchange","requestId":47,"event":{"type":"db-query-start","name":"<unknown>","location":"checkState/genericWaitForState"}}}
2025-04-09 17:08:26.535  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"idle"}}
2025-04-09 17:08:26.556  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"task-observability-event","taskId":"exchange-update:https%3A%2F%2Fexchange.taler-ops.ch%2F","event":{"type":"db-query-finish-success","name":"<unknown>","location":"updateExchangeFromUrlHandler/callOperationHandlerForTaskId"}}}
2025-04-09 17:08:26.561  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"task-observability-event","taskId":"exchange-update:https%3A%2F%2Fexchange.taler-ops.ch%2F","event":{"id":"req-1002","when":{"t_ms":1744211306540},"type":"http-fetch-start","url":"https://exchange.taler-ops.ch/keys"}}}
2025-04-09 17:08:26.573  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"prepareWithdrawExchange","requestId":47,"event":{"type":"db-query-finish-success","name":"<unknown>","location":"checkState/genericWaitForState"}}}
2025-04-09 17:08:28.130  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"task-observability-event","taskId":"exchange-update:https%3A%2F%2Fexchange.taler-ops.ch%2F","event":{"id":"req-1002","when":{"t_ms":1744211307725},"type":"http-fetch-finish-success","url":"https://exchange.taler-ops.ch/keys","status":200}}}
2025-04-09 17:08:28.145  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"task-observability-event","taskId":"exchange-update:https%3A%2F%2Fexchange.taler-ops.ch%2F","event":{"type":"crypto-start","operation":"isValidGlobalFees"}}}
2025-04-09 17:08:28.153  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"task-observability-event","taskId":"exchange-update:https%3A%2F%2Fexchange.taler-ops.ch%2F","event":{"type":"crypto-finish-success","operation":"isValidGlobalFees"}}}
2025-04-09 17:08:28.157  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"task-observability-event","taskId":"exchange-update:https%3A%2F%2Fexchange.taler-ops.ch%2F","event":{"type":"crypto-start","operation":"isValidGlobalFees"}}}
2025-04-09 17:08:28.173  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"task-observability-event","taskId":"exchange-update:https%3A%2F%2Fexchange.taler-ops.ch%2F","event":{"type":"crypto-finish-success","operation":"isValidGlobalFees"}}}
2025-04-09 17:08:28.178  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"task-observability-event","taskId":"exchange-update:https%3A%2F%2Fexchange.taler-ops.ch%2F","event":{"id":"req-1003","when":{"t_ms":1744211308164},"type":"http-fetch-start","url":"https://exchange.taler-ops.ch/terms"}}}
2025-04-09 17:08:28.719  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"task-observability-event","taskId":"exchange-update:https%3A%2F%2Fexchange.taler-ops.ch%2F","event":{"id":"req-1003","when":{"t_ms":1744211308579},"type":"http-fetch-finish-success","url":"https://exchange.taler-ops.ch/terms","status":200}}}
2025-04-09 17:08:28.724  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"task-observability-event","taskId":"exchange-update:https%3A%2F%2Fexchange.taler-ops.ch%2F","event":{"type":"db-query-start","name":"<unknown>","location":"updateExchangeFromUrlHandler"}}}
2025-04-09 17:08:34.277  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"task-observability-event","taskId":"exchange-update:https%3A%2F%2Fexchange.taler-ops.ch%2F","event":{"type":"db-query-finish-success","name":"<unknown>","location":"updateExchangeFromUrlHandler"}}}
2025-04-09 17:08:34.281  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"task-observability-event","taskId":"exchange-update:https%3A%2F%2Fexchange.taler-ops.ch%2F","event":{"type":"db-query-start","name":"<unknown>","location":"updateWithdrawalDenomsForExchange/doAutoRefresh"}}}
2025-04-09 17:08:35.900  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"task-observability-event","taskId":"exchange-update:https%3A%2F%2Fexchange.taler-ops.ch%2F","event":{"type":"db-query-finish-success","name":"<unknown>","location":"updateWithdrawalDenomsForExchange/doAutoRefresh"}}}
2025-04-09 17:08:35.905  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"task-observability-event","taskId":"exchange-update:https%3A%2F%2Fexchange.taler-ops.ch%2F","event":{"type":"db-query-start","name":"<unknown>","location":"doAutoRefresh"}}}
2025-04-09 17:08:35.930  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"task-observability-event","taskId":"exchange-update:https%3A%2F%2Fexchange.taler-ops.ch%2F","event":{"type":"db-query-finish-success","name":"<unknown>","location":"doAutoRefresh"}}}
2025-04-09 17:08:35.935  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"exchange-state-transition","exchangeBaseUrl":"https://exchange.taler-ops.ch/","newExchangeState":{"exchangeEntryStatus":"ephemeral","exchangeUpdateStatus":"ready","tosStatus":"proposed"},"oldExchangeState":{"exchangeEntryStatus":"ephemeral","exchangeUpdateStatus":"initial-update","tosStatus":"missing-tos"}}}
2025-04-09 17:08:35.941  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"task-observability-event","taskId":"exchange-update:https%3A%2F%2Fexchange.taler-ops.ch%2F","event":{"type":"shepherd-task-result","resultType":"progress"}}}
2025-04-09 17:08:35.946  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"prepareWithdrawExchange","requestId":47,"event":{"type":"db-query-start","name":"<unknown>","location":"checkState/genericWaitForState"}}}
2025-04-09 17:08:35.956  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"task-observability-event","taskId":"exchange-update:https%3A%2F%2Fexchange.taler-ops.ch%2F","event":{"type":"db-query-start","name":"<unknown>","location":"updateExchangeFromUrlHandler/callOperationHandlerForTaskId"}}}
2025-04-09 17:08:35.970  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"response","operation":"prepareWithdrawExchange","id":47,"result":{"exchangeBaseUrl":"https://exchange.taler-ops.ch/"}}
2025-04-09 17:08:35.973  5218-5262  BackendManager          net.taler.wallet.fdroid              D  sending message:
                                                                                                    {
                                                                                                      "id": 48,
                                                                                                      "operation": "getExchangeEntryByUrl",
                                                                                                      "args": {
                                                                                                        "exchangeBaseUrl": "https:\/\/exchange.taler-ops.ch\/"
                                                                                                      }
                                                                                                    }
2025-04-09 17:08:35.975  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"prepareWithdrawExchange","requestId":47,"event":{"type":"db-query-finish-success","name":"<unknown>","location":"checkState/genericWaitForState"}}}
2025-04-09 17:08:35.985  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"prepareWithdrawExchange","requestId":47,"event":{"type":"request-finish-success","durationMs":9579}}}
2025-04-09 17:08:35.996  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"getExchangeEntryByUrl","requestId":48,"event":{"type":"request-start"}}}
2025-04-09 17:08:36.001  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"getExchangeEntryByUrl","requestId":48,"event":{"type":"db-query-start","name":"<unknown>","location":"lookupExchangeByUri/dispatchRequestInternal"}}}
2025-04-09 17:08:36.008  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"task-observability-event","taskId":"exchange-update:https%3A%2F%2Fexchange.taler-ops.ch%2F","event":{"type":"db-query-finish-success","name":"<unknown>","location":"updateExchangeFromUrlHandler/callOperationHandlerForTaskId"}}}
2025-04-09 17:08:36.012  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"task-observability-event","taskId":"exchange-update:https%3A%2F%2Fexchange.taler-ops.ch%2F","event":{"type":"shepherd-task-result","resultType":"schedule-later"}}}
2025-04-09 17:08:36.028  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"response","operation":"getExchangeEntryByUrl","id":48,"result":{"exchangeBaseUrl":"https://exchange.taler-ops.ch/","masterPub":"9V0G82S7JQW2ZRYF7BMGKKQ1TNR1VNVXZJSNQ2VSDGWC80D9W0YG","noFees":true,"peerPaymentsDisabled":false,"currency":"CHF","exchangeUpdateStatus":"ready","exchangeEntryStatus":"ephemeral","tosStatus":"proposed","ageRestrictionOptions":[],"paytoUris":["payto://iban/CH6808573105529100001?receiver-name=Taler+Operations+AG&receiver-postal-code=2502&receiver-town=Biel-Bienne"],"lastUpdateTimestamp":{"t_s":1744211308,"off_us":730000},"scopeInfo":{"currency":"CHF","type":"exchange","url":"https://exchange.taler-ops.ch/"}}}
2025-04-09 17:08:36.033  5218-5262  BackendManager          net.taler.wallet.fdroid              D  sending message:
                                                                                                    {
                                                                                                      "id": 49,
                                                                                                      "operation": "getWithdrawalDetailsForAmount",
                                                                                                      "args": {
                                                                                                        "exchangeBaseUrl": "https:\/\/exchange.taler-ops.ch\/",
                                                                                                        "amount": "CHF:0"
                                                                                                      }
                                                                                                    }
2025-04-09 17:08:36.034  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"getExchangeEntryByUrl","requestId":48,"event":{"type":"db-query-finish-success","name":"<unknown>","location":"lookupExchangeByUri/dispatchRequestInternal"}}}
2025-04-09 17:08:36.042  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"getExchangeEntryByUrl","requestId":48,"event":{"type":"request-finish-success","durationMs":46}}}
2025-04-09 17:08:36.050  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"getWithdrawalDetailsForAmount","requestId":49,"event":{"type":"request-start"}}}
2025-04-09 17:08:36.054  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"getWithdrawalDetailsForAmount","requestId":49,"event":{"type":"db-query-start","name":"<unknown>","location":"fetchAccount/fetchWithdrawalAccountInfo"}}}
2025-04-09 17:08:36.070  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"getWithdrawalDetailsForAmount","requestId":49,"event":{"type":"db-query-finish-success","name":"<unknown>","location":"fetchAccount/fetchWithdrawalAccountInfo"}}}
2025-04-09 17:08:36.075  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"getWithdrawalDetailsForAmount","requestId":49,"event":{"type":"db-query-start","name":"<unknown>","location":"updateWithdrawalDenomsForExchange/getExchangeWithdrawalInfo"}}}
2025-04-09 17:08:37.614  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"getWithdrawalDetailsForAmount","requestId":49,"event":{"type":"db-query-finish-success","name":"<unknown>","location":"updateWithdrawalDenomsForExchange/getExchangeWithdrawalInfo"}}}
2025-04-09 17:08:37.619  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"getWithdrawalDetailsForAmount","requestId":49,"event":{"type":"db-query-start","name":"<unknown>","location":"getWithdrawableDenoms/getExchangeWithdrawalInfo"}}}
2025-04-09 17:08:39.142  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"response","operation":"getWithdrawalDetailsForAmount","id":49,"result":{"exchangeBaseUrl":"https://exchange.taler-ops.ch/","amountRaw":"CHF:0","amountEffective":"CHF:0","paytoUris":["payto://iban/CH6808573105529100001?receiver-name=Taler+Operations+AG&receiver-postal-code=2502&receiver-town=Biel-Bienne"],"tosAccepted":false,"withdrawalAccountsList":[{"status":"ok","paytoUri":"payto://iban/CH6808573105529100001?receiver-name=Taler%20Operations%20AG&receiver-postal-code=2502&receiver-town=Biel-Bienne&amount=CHF%3A0","transferAmount":"CHF:0","priority":0,"currencySpecification":{"name":"Swiss Francs","currency":"CHF","num_fractional_input_digits":2,"num_fractional_normal_digits":2,"num_fractional_trailing_zero_digits":2,"alt_unit_names":{"0":"Fr.","-2":"Rp."}},"creditRestrictions":[{"type":"regex","payto_regex":"payto://iban/CH.*","human_hint":"Swiss only","human_hint_i18n":{"de":"nur Schweizer Konten","fr":"Suisse uniquement"}}]}],"numCoins":0,"scopeInfo":{"currency":"CHF","type":"exchange","url":"https://exchange.taler-ops.ch/"},"kycHardLimit":"CHF:2500","kycSoftLimit":"CHF:1"}}
2025-04-09 17:08:39.147  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"getWithdrawalDetailsForAmount","requestId":49,"event":{"type":"db-query-finish-success","name":"<unknown>","location":"getWithdrawableDenoms/getExchangeWithdrawalInfo"}}}
2025-04-09 17:08:39.152  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"getWithdrawalDetailsForAmount","requestId":49,"event":{"type":"message","contents":"Deleting clientCancelKey undefined to [object Object]"}}}
2025-04-09 17:08:39.156  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"getWithdrawalDetailsForAmount","requestId":49,"event":{"type":"request-finish-success","durationMs":3103}}}
2025-04-09 17:08:39.273  5218-5262  BackendManager          net.taler.wallet.fdroid              D  sending message:
                                                                                                    {
                                                                                                      "id": 50,
                                                                                                      "operation": "getExchangeEntryByUrl",
                                                                                                      "args": {
                                                                                                        "exchangeBaseUrl": "https:\/\/exchange.taler-ops.ch\/"
                                                                                                      }
                                                                                                    }
2025-04-09 17:08:39.282  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"getExchangeEntryByUrl","requestId":50,"event":{"type":"request-start"}}}
2025-04-09 17:08:39.286  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"getExchangeEntryByUrl","requestId":50,"event":{"type":"db-query-start","name":"<unknown>","location":"lookupExchangeByUri/dispatchRequestInternal"}}}
2025-04-09 17:08:39.302  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"response","operation":"getExchangeEntryByUrl","id":50,"result":{"exchangeBaseUrl":"https://exchange.taler-ops.ch/","masterPub":"9V0G82S7JQW2ZRYF7BMGKKQ1TNR1VNVXZJSNQ2VSDGWC80D9W0YG","noFees":true,"peerPaymentsDisabled":false,"currency":"CHF","exchangeUpdateStatus":"ready","exchangeEntryStatus":"ephemeral","tosStatus":"proposed","ageRestrictionOptions":[],"paytoUris":["payto://iban/CH6808573105529100001?receiver-name=Taler+Operations+AG&receiver-postal-code=2502&receiver-town=Biel-Bienne"],"lastUpdateTimestamp":{"t_s":1744211308,"off_us":730000},"scopeInfo":{"currency":"CHF","type":"exchange","url":"https://exchange.taler-ops.ch/"}}}
2025-04-09 17:08:39.305  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"getExchangeEntryByUrl","requestId":50,"event":{"type":"db-query-finish-success","name":"<unknown>","location":"lookupExchangeByUri/dispatchRequestInternal"}}}
2025-04-09 17:08:39.309  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"getExchangeEntryByUrl","requestId":50,"event":{"type":"request-finish-success","durationMs":23}}}
 | 
| 
		 | 
	
	Analysing the full logs, it can be observed that: 1) Fetching the keys takes 1 second 569 milliseconds. 2) Fetching the contract terms takes no more than 541 milliseconds. 3) updateExchangeFromUrlHandler takes a monstruous 5 seconds 553 milliseconds. 4) updateWithdrawalDenomsForExchange/doAutoRefresh takes 1 second 619 milliseconds. 5) getWithdrawalDetailsForAmount takes a whopping 3 seconds 123 milliseconds. 6) Everything else is negligible. Notably, (1) is much slower than (2).  | 
| Date Modified | Username | Field | Change | 
|---|---|---|---|
| 2024-07-31 18:59 | avalos | New Issue | |
| 2024-07-31 18:59 | avalos | Status | new => assigned | 
| 2024-07-31 18:59 | avalos | Assigned To | => avalos | 
| 2024-08-30 10:10 | avalos | Note Added: 0023115 | |
| 2024-08-30 10:10 | avalos | File Added: withdrawal.logcat | |
| 2024-09-04 10:03 | Christian Grothoff | Product Version | => git (master) | 
| 2024-09-04 10:03 | Christian Grothoff | Target Version | 0.14 => 1.0 stretch goals | 
| 2024-12-27 14:56 | Christian Grothoff | Priority | normal => low | 
| 2025-04-04 13:31 | Christian Grothoff | Note Added: 0024398 | |
| 2025-04-04 13:31 | Christian Grothoff | Assigned To | avalos => Christian Grothoff | 
| 2025-04-09 10:45 | Christian Grothoff | Assigned To | Christian Grothoff => avalos | 
| 2025-04-09 10:45 | Christian Grothoff | Note Added: 0024464 | |
| 2025-04-09 16:08 | avalos | Note Added: 0024474 | |
| 2025-04-09 16:08 | avalos | File Added: getWithdrawalDetailsForAmount.logcat | |
| 2025-04-09 16:15 | avalos | Note Edited: 0024474 | |
| 2025-04-09 16:35 | avalos | Note Added: 0024475 | |
| 2025-04-09 16:39 | Christian Grothoff | Note Added: 0024476 | |
| 2025-04-09 16:41 | avalos | Note Added: 0024477 | |
| 2025-04-09 16:44 | Christian Grothoff | Note Added: 0024478 | |
| 2025-04-09 16:54 | avalos | Note Added: 0024479 | |
| 2025-04-09 16:56 | avalos | Note Edited: 0024479 | |
| 2025-04-09 16:57 | Christian Grothoff | Note Added: 0024480 | |
| 2025-04-09 16:57 | avalos | Note Edited: 0024479 | |
| 2025-04-09 16:58 | avalos | Note Added: 0024481 | |
| 2025-04-09 16:59 | Christian Grothoff | Note Added: 0024482 | |
| 2025-04-09 17:10 | avalos | Note Added: 0024485 | |
| 2025-04-09 17:10 | avalos | File Added: worse.logcat | |
| 2025-04-09 17:24 | avalos | Note Added: 0024487 | |
| 2025-04-17 22:11 | Christian Grothoff | Tag Attached: ux | |
| 2025-04-17 22:11 | Christian Grothoff | Target Version | 1.0 stretch goals => post-1.0 | 
| 2025-04-18 00:16 | Christian Grothoff | Tag Attached: performance | |
| 2025-04-24 01:05 | Christian Grothoff | Assigned To | avalos => | 
| 2025-04-24 01:05 | Christian Grothoff | Status | assigned => confirmed | 
| 2025-06-05 14:16 | avalos | Relationship added | related to 0009965 |